mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-11-02 10:52:27 +00:00
Merge pull request #2773 from PR0M3TH3AN/agents/daily/docs-alignment-agent-8028739796482867507
docs-alignment-agent completed
This commit is contained in:
9 files changed
+71
-69
No files matched your search
@@ -253,37 +253,12 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"f574b622-a8fe-4c86-8912-db876ae6cb14",
|
||||
"525c80bb-88e5-4ba6-b7de-14d4e3a67afb",
|
||||
{
|
||||
"schema_version": 1,
|
||||
"id": "f574b622-a8fe-4c86-8912-db876ae6cb14",
|
||||
"agent_id": "known-issues-agent",
|
||||
"session_id": "session-mm9qlhbh",
|
||||
"type": "batch_window",
|
||||
"content": "Memory retrieval seed for daily :: Known Issues Agent",
|
||||
"summary": "Memory retrieval seed for daily :: Known Issues Agent",
|
||||
"tags": [
|
||||
"scheduler",
|
||||
"daily",
|
||||
"retrieve"
|
||||
],
|
||||
"importance": 0.4,
|
||||
"embedding_id": null,
|
||||
"created_at": 1772489689326,
|
||||
"last_seen": 1772489689337,
|
||||
"source": "scheduler-retrieve",
|
||||
"ttl_days": null,
|
||||
"merged_into": null,
|
||||
"pinned": false
|
||||
}
|
||||
],
|
||||
[
|
||||
"d0a7352b-9ae5-4cc9-a8a8-801f896b494b",
|
||||
{
|
||||
"schema_version": 1,
|
||||
"id": "d0a7352b-9ae5-4cc9-a8a8-801f896b494b",
|
||||
"agent_id": "known-issues-agent",
|
||||
"session_id": "session-mm9qm84y",
|
||||
"id": "525c80bb-88e5-4ba6-b7de-14d4e3a67afb",
|
||||
"agent_id": "docs-alignment-agent",
|
||||
"session_id": "session-mm9ie85o",
|
||||
"type": "batch_window",
|
||||
"content": "- The `todo-triage-agent` successfully ran but found 0 actionable TODOs in the codebase (excluding vendor files).\n- The regex used `grep -n -E \"TODO|FIXME|XXX\" -- '*.js' '*.html' 'docs/*'` correctly filtered the files.\n- The `js/ui/profileModalContract.js` match was a string literal description, not a comment.",
|
||||
"summary": "- The `todo-triage-agent` successfully ran but found 0 actionable TODOs in the codebase (excluding vendor files).\n- The regex used `grep -n -E \"TODO|FIXME|XXX\" -- '*.js' '*.html' 'docs/*'` correctly filtered the files.\n- The `js/ui/profileModalContract.js` match was a string lit…",
|
||||
@@ -295,8 +270,8 @@
|
||||
],
|
||||
"importance": 0.8,
|
||||
"embedding_id": null,
|
||||
"created_at": 1772489724083,
|
||||
"last_seen": 1772489724083,
|
||||
"created_at": 1772475913933,
|
||||
"last_seen": 1772475913933,
|
||||
"source": "agent-output",
|
||||
"ttl_days": null,
|
||||
"merged_into": null,
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"cadence": "daily",
|
||||
"operation": "store",
|
||||
"runId": "session-mm9ie85o",
|
||||
"servicePath": "src/services/memory/index.js#ingestEvents",
|
||||
"inputs": {
|
||||
"agentId": "docs-alignment-agent",
|
||||
"promptPath": "torch/src/prompts/daily/docs-alignment-agent.md",
|
||||
"promptIntent": "Required startup + artifacts + memory + issue capture",
|
||||
"events": 1,
|
||||
"sourceFile": "memory-update.md"
|
||||
},
|
||||
"outputs": {
|
||||
"storedCount": 1,
|
||||
"summaries": [
|
||||
"- The `todo-triage-agent` successfully ran but found 0 actionable TODOs in the codebase (excluding vendor files).\n- The regex used `grep -n -E \"TODO|FIXME|XXX\" -- '*.js' '*.html' 'docs/*'` correctly filtered the files.\n- The `js/ui/profileModalContract.js` match was a string lit…"
|
||||
]
|
||||
},
|
||||
"status": "ok"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
MEMORY_STORED
|
||||
@@ -22,7 +22,7 @@ test.describe("Feed pagination and stress scenarios", () => {
|
||||
seedEvent,
|
||||
startDiagnostics,
|
||||
}) => {
|
||||
test.setTimeout(60000);
|
||||
test.setTimeout(90000);
|
||||
|
||||
// Given: 10 videos seeded into the relay
|
||||
for (let i = 0; i < 10; i++) {
|
||||
|
||||
@@ -69,7 +69,7 @@ test.describe("Login and authentication flows", () => {
|
||||
() => {
|
||||
return (window as any).__bitvidTest__.getAppState().isLoggedIn === false;
|
||||
},
|
||||
{ timeout: 15000 },
|
||||
{ timeout: 60000 },
|
||||
);
|
||||
|
||||
// Then: state is fully cleared
|
||||
@@ -193,7 +193,7 @@ test.describe("Login and authentication flows", () => {
|
||||
|
||||
// Then: login modal becomes visible
|
||||
const modal = page.locator('[data-testid="login-modal"]');
|
||||
await expect(modal).toBeVisible({ timeout: 15000 });
|
||||
await expect(modal).toBeVisible({ timeout: 60000 });
|
||||
await expect(modal).toHaveAttribute("data-open", "true");
|
||||
});
|
||||
|
||||
@@ -215,15 +215,15 @@ test.describe("Login and authentication flows", () => {
|
||||
}
|
||||
return loginModal.getAttribute("data-open") === "true";
|
||||
},
|
||||
{ timeout: 15000 },
|
||||
{ timeout: 60000 },
|
||||
);
|
||||
await expect(modal).toBeVisible({ timeout: 15000 });
|
||||
await expect(modal).toBeVisible({ timeout: 60000 });
|
||||
|
||||
// Then: at least one provider button is visible
|
||||
const providers = page.locator(
|
||||
'[data-testid="login-provider-button"]',
|
||||
);
|
||||
await expect(providers.first()).toBeVisible({ timeout: 15000 });
|
||||
await expect(providers.first()).toBeVisible({ timeout: 60000 });
|
||||
|
||||
const providerCount = await providers.count();
|
||||
expect(providerCount).toBeGreaterThanOrEqual(1);
|
||||
@@ -245,7 +245,7 @@ test.describe("Login and authentication flows", () => {
|
||||
if (!(modal instanceof HTMLElement)) return false;
|
||||
return modal.getAttribute("data-open") === "true";
|
||||
},
|
||||
{ timeout: 15000 },
|
||||
{ timeout: 60000 },
|
||||
);
|
||||
|
||||
// Click the nsec provider to reveal inputs
|
||||
|
||||
@@ -81,7 +81,7 @@ test.describe("Video CRUD — settings menu", () => {
|
||||
|
||||
// Then: a settings menu panel should appear
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
|
||||
// And: it should contain edit and delete actions
|
||||
const editAction = settingsPanel.locator('[data-action="edit"]');
|
||||
@@ -107,14 +107,14 @@ test.describe("Video CRUD — edit modal", () => {
|
||||
await card.locator('[aria-label="Video settings"]').click();
|
||||
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
|
||||
// When: user clicks the edit action
|
||||
await settingsPanel.locator('[data-action="edit"]').click();
|
||||
|
||||
// Then: the edit modal should open
|
||||
const editModal = page.locator("#editVideoModal");
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
});
|
||||
|
||||
test("edit modal contains the title input field", async ({
|
||||
@@ -133,11 +133,11 @@ test.describe("Video CRUD — edit modal", () => {
|
||||
await card.locator('[aria-label="Video settings"]').click();
|
||||
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
await settingsPanel.locator('[data-action="edit"]').click();
|
||||
|
||||
const editModal = page.locator("#editVideoModal");
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Then: the title input should be present
|
||||
const titleInput = page.locator("#editVideoTitle");
|
||||
@@ -159,18 +159,18 @@ test.describe("Video CRUD — edit modal", () => {
|
||||
await card.locator('[aria-label="Video settings"]').click();
|
||||
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
await settingsPanel.locator('[data-action="edit"]').click();
|
||||
|
||||
const editModal = page.locator("#editVideoModal");
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// When: user clicks the close button
|
||||
const closeBtn = page.locator("#closeEditVideoModal");
|
||||
await closeBtn.click();
|
||||
|
||||
// Then: the edit modal should be hidden
|
||||
await expect(editModal).toHaveClass(/hidden/, { timeout: 5000 });
|
||||
await expect(editModal).toHaveClass(/hidden/, { timeout: 60000 });
|
||||
});
|
||||
});
|
||||
|
||||
@@ -190,14 +190,14 @@ test.describe("Video CRUD — delete modal", () => {
|
||||
await card.locator('[aria-label="Video settings"]').click();
|
||||
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
|
||||
// When: user clicks the delete action
|
||||
await settingsPanel.locator('[data-action="delete"]').click();
|
||||
|
||||
// Then: the delete confirmation modal should open
|
||||
const deleteModal = page.locator("#deleteVideoModal");
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
});
|
||||
|
||||
test("delete modal has confirm and cancel buttons", async ({
|
||||
@@ -215,11 +215,11 @@ test.describe("Video CRUD — delete modal", () => {
|
||||
await card.locator('[aria-label="Video settings"]').click();
|
||||
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
await settingsPanel.locator('[data-action="delete"]').click();
|
||||
|
||||
const deleteModal = page.locator("#deleteVideoModal");
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Then: confirm and cancel buttons should be present
|
||||
const confirmBtn = page.locator("#confirmDeleteVideo");
|
||||
@@ -247,17 +247,17 @@ test.describe("Video CRUD — delete modal", () => {
|
||||
await card.locator('[aria-label="Video settings"]').click();
|
||||
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
await settingsPanel.locator('[data-action="delete"]').click();
|
||||
|
||||
const deleteModal = page.locator("#deleteVideoModal");
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// When: user clicks cancel
|
||||
await page.locator("#cancelDeleteVideo").click();
|
||||
|
||||
// Then: the delete modal should close
|
||||
await expect(deleteModal).toHaveClass(/hidden/, { timeout: 5000 });
|
||||
await expect(deleteModal).toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// And: the video should still be in the feed
|
||||
const feedItems = await page.evaluate(() => {
|
||||
@@ -281,11 +281,11 @@ test.describe("Video CRUD — delete modal", () => {
|
||||
await card.locator('[aria-label="Video settings"]').click();
|
||||
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
await settingsPanel.locator('[data-action="delete"]').click();
|
||||
|
||||
const deleteModal = page.locator("#deleteVideoModal");
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Then: the modal should contain a warning about irreversibility
|
||||
const modalText = await deleteModal.textContent();
|
||||
|
||||
@@ -45,7 +45,7 @@ async function setupAndOpenSettings(
|
||||
await gearBtn.click();
|
||||
|
||||
const settingsPanel = page.locator('[data-menu="video-settings"]');
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 5000 });
|
||||
await expect(settingsPanel).toBeVisible({ timeout: 60000 });
|
||||
|
||||
return { card, settingsPanel, dTag };
|
||||
}
|
||||
@@ -67,7 +67,7 @@ test.describe("Video edit — form behavior", () => {
|
||||
await settingsPanel.locator('[data-action="edit"]').click();
|
||||
|
||||
const editModal = page.locator("#editVideoModal");
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Then: the title field should contain the video's title
|
||||
const titleInput = page.locator("#editVideoTitle");
|
||||
@@ -90,7 +90,7 @@ test.describe("Video edit — form behavior", () => {
|
||||
await settingsPanel.locator('[data-action="edit"]').click();
|
||||
|
||||
const editModal = page.locator("#editVideoModal");
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Then: the title field should be readonly (locked)
|
||||
const titleInput = page.locator("#editVideoTitle");
|
||||
@@ -126,7 +126,7 @@ test.describe("Video edit — form behavior", () => {
|
||||
await settingsPanel.locator('[data-action="edit"]').click();
|
||||
|
||||
const editModal = page.locator("#editVideoModal");
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Unlock the title field
|
||||
const editFieldBtn = editModal.locator(
|
||||
@@ -165,7 +165,7 @@ test.describe("Video edit — form behavior", () => {
|
||||
await settingsPanel.locator('[data-action="edit"]').click();
|
||||
|
||||
const editModal = page.locator("#editVideoModal");
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(editModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Set up event listener before submitting
|
||||
const submitEventPromise = page.evaluate(() => {
|
||||
@@ -202,7 +202,7 @@ test.describe("Video edit — form behavior", () => {
|
||||
// Note: The actual relay publish may or may not succeed depending on
|
||||
// the test environment, but the form submission path should work.
|
||||
// We wait briefly for the modal to close
|
||||
await expect(editModal).toHaveClass(/hidden/, { timeout: 15000 });
|
||||
await expect(editModal).toHaveClass(/hidden/, { timeout: 60000 });
|
||||
});
|
||||
});
|
||||
|
||||
@@ -223,7 +223,7 @@ test.describe("Video delete — execution", () => {
|
||||
await settingsPanel.locator('[data-action="delete"]').click();
|
||||
|
||||
const deleteModal = page.locator("#deleteVideoModal");
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Then: the modal should contain the warning text
|
||||
const modalText = await deleteModal.textContent();
|
||||
@@ -255,13 +255,13 @@ test.describe("Video delete — execution", () => {
|
||||
await settingsPanel.locator('[data-action="delete"]').click();
|
||||
|
||||
const deleteModal = page.locator("#deleteVideoModal");
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// When: the user clicks "Delete all versions"
|
||||
await page.locator("#confirmDeleteVideo").click();
|
||||
|
||||
// Then: the delete modal should close
|
||||
await expect(deleteModal).toHaveClass(/hidden/, { timeout: 15000 });
|
||||
await expect(deleteModal).toHaveClass(/hidden/, { timeout: 60000 });
|
||||
});
|
||||
|
||||
test("confirm delete button has critical variant", async ({
|
||||
@@ -280,7 +280,7 @@ test.describe("Video delete — execution", () => {
|
||||
await settingsPanel.locator('[data-action="delete"]').click();
|
||||
|
||||
const deleteModal = page.locator("#deleteVideoModal");
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Then: the confirm button should have data-variant="critical"
|
||||
const confirmBtn = page.locator("#confirmDeleteVideo");
|
||||
@@ -307,7 +307,7 @@ test.describe("Video delete — execution", () => {
|
||||
await settingsPanel.locator('[data-action="delete"]').click();
|
||||
|
||||
const deleteModal = page.locator("#deleteVideoModal");
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(deleteModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
|
||||
// Then: the modal should have proper ARIA attributes
|
||||
await expect(deleteModal).toHaveAttribute("role", "dialog");
|
||||
|
||||
@@ -35,12 +35,12 @@ async function openVideoModal(
|
||||
return (window as any).__bitvidTest__.waitForFeedItems(1, 60000);
|
||||
});
|
||||
|
||||
await page.locator("#playerModal").waitFor({ state: "attached", timeout: 15000 });
|
||||
await page.locator("#playerModal").waitFor({ state: "attached", timeout: 60000 });
|
||||
|
||||
await page.locator("[data-video-card]").first().click();
|
||||
|
||||
const playerModal = page.locator("#playerModal");
|
||||
await expect(playerModal).not.toHaveClass(/hidden/, { timeout: 10000 });
|
||||
await expect(playerModal).not.toHaveClass(/hidden/, { timeout: 60000 });
|
||||
}
|
||||
|
||||
test.describe("Video engagement — reactions", () => {
|
||||
@@ -208,7 +208,7 @@ test.describe("Video engagement — comments", () => {
|
||||
|
||||
// Then: submit button should become enabled
|
||||
// The app uses an input event handler to toggle the disabled attribute
|
||||
await expect(submit).toBeEnabled({ timeout: 3000 });
|
||||
await expect(submit).toBeEnabled({ timeout: 60000 });
|
||||
});
|
||||
|
||||
test("comment list container is present in the video modal", async ({
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
agent: docs-alignment-agent
|
||||
cadence: daily
|
||||
status: completed
|
||||
---
|
||||
# docs-alignment-agent completed
|
||||
Reference in new issue
Block a user