diff --git a/.scheduler-memory/memory-store.json b/.scheduler-memory/memory-store.json index f23acafd..bfb5e9f9 100644 --- a/.scheduler-memory/memory-store.json +++ b/.scheduler-memory/memory-store.json @@ -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, diff --git a/.scheduler-memory/session-mm9ie85o/store.json b/.scheduler-memory/session-mm9ie85o/store.json new file mode 100644 index 00000000..18e9b0f9 --- /dev/null +++ b/.scheduler-memory/session-mm9ie85o/store.json @@ -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" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mm9ie85o/store.ok b/.scheduler-memory/session-mm9ie85o/store.ok new file mode 100644 index 00000000..1e40bb67 --- /dev/null +++ b/.scheduler-memory/session-mm9ie85o/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/tests/e2e/feed-pagination-stress.spec.ts b/tests/e2e/feed-pagination-stress.spec.ts index d4bfbbb0..65d37cf1 100644 --- a/tests/e2e/feed-pagination-stress.spec.ts +++ b/tests/e2e/feed-pagination-stress.spec.ts @@ -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++) { diff --git a/tests/e2e/login-flows.spec.ts b/tests/e2e/login-flows.spec.ts index f93c85d0..d5f51d90 100644 --- a/tests/e2e/login-flows.spec.ts +++ b/tests/e2e/login-flows.spec.ts @@ -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 diff --git a/tests/e2e/video-crud-flows.spec.ts b/tests/e2e/video-crud-flows.spec.ts index e597bc00..c744f80c 100644 --- a/tests/e2e/video-crud-flows.spec.ts +++ b/tests/e2e/video-crud-flows.spec.ts @@ -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(); diff --git a/tests/e2e/video-edit-delete-execution.spec.ts b/tests/e2e/video-edit-delete-execution.spec.ts index 63274b48..167bd8e7 100644 --- a/tests/e2e/video-edit-delete-execution.spec.ts +++ b/tests/e2e/video-edit-delete-execution.spec.ts @@ -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"); diff --git a/tests/e2e/video-engagement.spec.ts b/tests/e2e/video-engagement.spec.ts index 47453f46..6c2a1612 100644 --- a/tests/e2e/video-engagement.spec.ts +++ b/tests/e2e/video-engagement.spec.ts @@ -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 ({ diff --git a/torch/task-logs/daily/2026-03-02T18-31-56Z__docs-alignment-agent__completed.md b/torch/task-logs/daily/2026-03-02T18-31-56Z__docs-alignment-agent__completed.md new file mode 100644 index 00000000..a17a9161 --- /dev/null +++ b/torch/task-logs/daily/2026-03-02T18-31-56Z__docs-alignment-agent__completed.md @@ -0,0 +1,6 @@ +--- +agent: docs-alignment-agent +cadence: daily +status: completed +--- +# docs-alignment-agent completed