diff --git a/.scheduler-memory/latest/daily/memories.md b/.scheduler-memory/latest/daily/memories.md index 55bdfd5..e63cc69 100644 --- a/.scheduler-memory/latest/daily/memories.md +++ b/.scheduler-memory/latest/daily/memories.md @@ -1 +1,2 @@ -- Memory retrieval seed for daily :: Required startup + artifacts + memory + issue capture \ No newline at end of file +- Memory retrieval seed for daily :: scheduler memory retrieval +- Memory retrieval seed for daily :: scheduler memory retrieval \ No newline at end of file diff --git a/.scheduler-memory/memory-store.json b/.scheduler-memory/memory-store.json index 6041171..f41ee5a 100644 --- a/.scheduler-memory/memory-store.json +++ b/.scheduler-memory/memory-store.json @@ -1,86 +1,11 @@ [ [ - "638c2d47-3218-42f5-bc2d-e3adeb4626d0", + "dc16f83d-c99b-4dc0-ac52-90bd36cf709b", { "schema_version": 1, - "id": "638c2d47-3218-42f5-bc2d-e3adeb4626d0", - "agent_id": "test-agent", - "session_id": "test-run", - "type": "batch_window", - "content": "Store memory event A for daily :: scheduler memory store\nStore memory event B for daily :: scheduler memory store", - "summary": "Store memory event A for daily :: scheduler memory store Store memory event B for daily :: scheduler memory store", - "tags": [ - "scheduler", - "daily", - "store" - ], - "importance": 0.55, - "embedding_id": null, - "created_at": 1771295950236, - "last_seen": 1771295958659, - "source": "scheduler-store", - "ttl_days": null, - "merged_into": null, - "pinned": false - } - ], - [ - "5c458e0c-8239-46f9-99d1-b61cf05acc34", - { - "schema_version": 1, - "id": "5c458e0c-8239-46f9-99d1-b61cf05acc34", - "agent_id": "test-agent", - "session_id": "test-run-2", - "type": "batch_window", - "content": "Memory retrieval seed for daily :: scheduler memory retrieval", - "summary": "Memory retrieval seed for daily :: scheduler memory retrieval", - "tags": [ - "scheduler", - "daily", - "retrieve" - ], - "importance": 0.4, - "embedding_id": null, - "created_at": 1771295958645, - "last_seen": 1771295958659, - "source": "scheduler-retrieve", - "ttl_days": null, - "merged_into": null, - "pinned": false - } - ], - [ - "2e9129bd-c366-4d82-ac2b-7e50574532a9", - { - "schema_version": 1, - "id": "2e9129bd-c366-4d82-ac2b-7e50574532a9", - "agent_id": "onboarding-audit-agent", - "session_id": "initial-seed", - "type": "batch_window", - "content": "Store memory event A for daily :: Required startup + artifacts + memory + issue capture\nStore memory event B for daily :: Required startup + artifacts + memory + issue capture", - "summary": "Store memory event A for daily :: Required startup + artifacts + memory + issue capture Store memory event B for daily :: Required startup + artifacts + memory + issue capture", - "tags": [ - "scheduler", - "daily", - "store" - ], - "importance": 0.55, - "embedding_id": null, - "created_at": 1771296574057, - "last_seen": 1771296574172, - "source": "scheduler-store", - "ttl_days": null, - "merged_into": null, - "pinned": false - } - ], - [ - "2612b9ce-1aa7-4731-acb2-c3a852eeaac6", - { - "schema_version": 1, - "id": "2612b9ce-1aa7-4731-acb2-c3a852eeaac6", - "agent_id": "onboarding-audit-agent", - "session_id": "initial-seed", + "id": "dc16f83d-c99b-4dc0-ac52-90bd36cf709b", + "agent_id": "ci-health-agent", + "session_id": "session-mlr07hyw", "type": "batch_window", "content": "Memory retrieval seed for daily :: Required startup + artifacts + memory + issue capture", "summary": "Memory retrieval seed for daily :: Required startup + artifacts + memory + issue capture", @@ -91,8 +16,8 @@ ], "importance": 0.4, "embedding_id": null, - "created_at": 1771296574158, - "last_seen": 1771296574172, + "created_at": 1771356975801, + "last_seen": 1771356975809, "source": "scheduler-retrieve", "ttl_days": null, "merged_into": null, @@ -100,10 +25,87 @@ } ], [ - "facf005a-dad0-4066-921c-49a8e408665c", + "cf3230aa-9e00-48f4-809f-a54fee5a0637", { "schema_version": 1, - "id": "facf005a-dad0-4066-921c-49a8e408665c", + "id": "cf3230aa-9e00-48f4-809f-a54fee5a0637", + "agent_id": "ci-health-agent", + "session_id": "session-mlr0b3uh", + "type": "batch_window", + "content": "# CI Health Update\n- Fixed bug in `src/lock-ops.mjs`: `getRelayFallbacks` is async but was called synchronously in `LockPublisher` constructor.\n- Fixed bug in `src/lock-ops.mjs`: `LockPublisher` used `maybeLogHealthSnapshot` which was undefined; updated to use `healthManager`.\n- Fixed bug in `src/cmd-check.mjs`: `queryLocksFn` was undefined; updated to use injected `queryLocksFn` or default `queryLocks`.\n- Ran `npm run build` to fix `test/build_verification.test.mjs`.\n- All tests passed.", + "summary": "# CI Health Update\n- Fixed bug in `src/lock-ops.mjs`: `getRelayFallbacks` is async but was called synchronously in `LockPublisher` constructor.\n- Fixed bug in `src/lock-ops.mjs`: `LockPublisher` used `maybeLogHealthSnapshot` which was undefined; updated to use `healthManager`.\n-…", + "tags": [ + "scheduler", + "daily", + "store", + "insight" + ], + "importance": 0.8, + "embedding_id": null, + "created_at": 1771357144123, + "last_seen": 1771357144123, + "source": "agent-output", + "ttl_days": null, + "merged_into": null, + "pinned": false + } + ], + [ + "a9bc3899-1685-4e50-80f5-ae4dc54de6bd", + { + "schema_version": 1, + "id": "a9bc3899-1685-4e50-80f5-ae4dc54de6bd", + "agent_id": "scheduler-memory-weekly", + "session_id": "session-mlr4ba92", + "type": "batch_window", + "content": "# Learnings - 2026-02-17\n\n- The `content-audit-agent` is configured to audit the `/content` directory, but this directory does not exist in the repository root.\n- Added `content-audit-agent targets missing /content directory` to `KNOWN_ISSUES.md`.\n- No audit actions were performed.", + "summary": "# Learnings - 2026-02-17\n\n- The `content-audit-agent` is configured to audit the `/content` directory, but this directory does not exist in the repository root.\n- Added `content-audit-agent targets missing /content directory` to `KNOWN_ISSUES.md`.\n- No audit actions were perform…", + "tags": [ + "scheduler", + "weekly", + "store", + "insight" + ], + "importance": 0.8, + "embedding_id": null, + "created_at": 1771363870888, + "last_seen": 1771363870888, + "source": "agent-output", + "ttl_days": null, + "merged_into": null, + "pinned": false + } + ], + [ + "8512327a-8ba7-4a49-9275-41860e38a2e0", + { + "schema_version": 1, + "id": "8512327a-8ba7-4a49-9275-41860e38a2e0", + "agent_id": "scheduler-memory-daily", + "session_id": "session-mlr7wt48", + "type": "batch_window", + "content": "Memory retrieval seed for daily :: scheduler memory retrieval", + "summary": "Memory retrieval seed for daily :: scheduler memory retrieval", + "tags": [ + "scheduler", + "daily", + "retrieve" + ], + "importance": 0.4, + "embedding_id": null, + "created_at": 1771369913961, + "last_seen": 1771377118848, + "source": "scheduler-retrieve", + "ttl_days": null, + "merged_into": null, + "pinned": false + } + ], + [ + "72f2cb07-62ab-4460-a994-4da196860e6c", + { + "schema_version": 1, + "id": "72f2cb07-62ab-4460-a994-4da196860e6c", "agent_id": "agent-telemetry", "session_id": "s-telemetry", "type": "batch_window", @@ -114,8 +116,8 @@ ], "importance": 0.25, "embedding_id": null, - "created_at": 1771296636016, - "last_seen": 1771301051605, + "created_at": 1771370050385, + "last_seen": 1771385274968, "source": "ingest", "ttl_days": null, "merged_into": null, @@ -123,35 +125,10 @@ } ], [ - "19ef312e-a725-4544-850e-651713e2d9dc", + "ed46b70f-334d-4b41-984b-56e0415ffda2", { "schema_version": 1, - "id": "19ef312e-a725-4544-850e-651713e2d9dc", - "agent_id": "bug-reproducer-agent", - "session_id": "session-mlq2vq5p", - "type": "batch_window", - "content": "Memory retrieval seed for weekly :: Required startup + artifacts + memory + issue capture", - "summary": "Memory retrieval seed for weekly :: Required startup + artifacts + memory + issue capture", - "tags": [ - "scheduler", - "weekly", - "retrieve" - ], - "importance": 0.4, - "embedding_id": null, - "created_at": 1771300999213, - "last_seen": 1771300999222, - "source": "scheduler-retrieve", - "ttl_days": null, - "merged_into": null, - "pinned": false - } - ], - [ - "bfbb3c6e-095d-4ccd-ad5a-140b6927421c", - { - "schema_version": 1, - "id": "bfbb3c6e-095d-4ccd-ad5a-140b6927421c", + "id": "ed46b70f-334d-4b41-984b-56e0415ffda2", "agent_id": "agent-telemetry", "session_id": "s-telemetry", "type": "batch_window", @@ -162,8 +139,8 @@ ], "importance": 0.25, "embedding_id": null, - "created_at": 1771301051598, - "last_seen": 1771301051605, + "created_at": 1771370084740, + "last_seen": 1771385274968, "source": "ingest", "ttl_days": null, "merged_into": null, @@ -171,50 +148,72 @@ } ], [ - "d74e3e34-6cf1-465e-b4a8-64acd0a8d803", + "160c683e-c1b0-4b57-8b2a-58e01ecec0e2", { "schema_version": 1, - "id": "d74e3e34-6cf1-465e-b4a8-64acd0a8d803", - "agent_id": "bug-reproducer-agent", - "session_id": "session-mlq2ysd2", + "id": "160c683e-c1b0-4b57-8b2a-58e01ecec0e2", + "agent_id": "agent-telemetry", + "session_id": "s-telemetry", "type": "batch_window", - "content": "Reproduced npm test timeout issue. Created reproduction script in artifacts/reproducers/npm-test-timeout/. Confirmed that `npm test` hangs/times out as expected.", - "summary": "Reproduced npm test timeout issue. Created reproduction script in artifacts/reproducers/npm-test-timeout/. Confirmed that `npm test` hangs/times out as expected.", + "content": "customer token ABC123 secret", + "summary": "customer token ABC123 secret", "tags": [ - "scheduler", - "weekly", - "store", - "insight" + "incident" ], - "importance": 0.8, + "importance": 0.25, "embedding_id": null, - "created_at": 1771301142040, - "last_seen": 1771301142040, - "source": "agent-output", + "created_at": 1771370148079, + "last_seen": 1771385274968, + "source": "ingest", "ttl_days": null, "merged_into": null, "pinned": false } ], [ - "3df7bccf-f3f1-45b9-ab15-88a1a30c6453", + "38bb52c3-8262-4469-a15e-b46e11e92f9d", { "schema_version": 1, - "id": "3df7bccf-f3f1-45b9-ab15-88a1a30c6453", - "agent_id": "changelog-agent", - "session_id": "session-mlq51t0r", + "id": "38bb52c3-8262-4469-a15e-b46e11e92f9d", + "agent_id": "scheduler-memory-weekly", + "session_id": "session-mlr82pk9", "type": "batch_window", - "content": "Memory retrieval seed for weekly :: Required startup + artifacts + memory + issue capture", - "summary": "Memory retrieval seed for weekly :: Required startup + artifacts + memory + issue capture", + "content": "Store memory event A for weekly :: scheduler memory store\nStore memory event B for weekly :: scheduler memory store", + "summary": "Store memory event A for weekly :: scheduler memory store Store memory event B for weekly :: scheduler memory store", "tags": [ "scheduler", "weekly", + "store" + ], + "importance": 0.55, + "embedding_id": null, + "created_at": 1771370189289, + "last_seen": 1771370189290, + "source": "scheduler-store", + "ttl_days": null, + "merged_into": null, + "pinned": false + } + ], + [ + "f8711702-8dc2-474b-9142-0798f41209f3", + { + "schema_version": 1, + "id": "f8711702-8dc2-474b-9142-0798f41209f3", + "agent_id": "scheduler-memory-daily", + "session_id": "session-mlrc78ft", + "type": "batch_window", + "content": "Memory retrieval seed for daily :: scheduler memory retrieval", + "summary": "Memory retrieval seed for daily :: scheduler memory retrieval", + "tags": [ + "scheduler", + "daily", "retrieve" ], "importance": 0.4, "embedding_id": null, - "created_at": 1771304642091, - "last_seen": 1771304642101, + "created_at": 1771377118841, + "last_seen": 1771377118848, "source": "scheduler-retrieve", "ttl_days": null, "merged_into": null, @@ -222,77 +221,71 @@ } ], [ - "5b32be34-78f9-44ac-b7b1-e301e34f04d0", + "782a835a-88d1-4307-8154-599a09bcdfb6", { "schema_version": 1, - "id": "5b32be34-78f9-44ac-b7b1-e301e34f04d0", - "agent_id": "changelog-agent", - "session_id": "session-mlq53the", + "id": "782a835a-88d1-4307-8154-599a09bcdfb6", + "agent_id": "scheduler-memory-weekly", + "session_id": "session-mlrc8az1", "type": "batch_window", - "content": "# Changelog Update - 2026-02-17\n\nGenerated draft release notes covering 212 commits.\nKey areas:\n- Scheduler automation improvements\n- Memory management features\n- Codebase modularization", - "summary": "# Changelog Update - 2026-02-17\n\nGenerated draft release notes covering 212 commits.\nKey areas:\n- Scheduler automation improvements\n- Memory management features\n- Codebase modularization", + "content": "Store memory event A for weekly :: scheduler memory store\nStore memory event B for weekly :: scheduler memory store", + "summary": "Store memory event A for weekly :: scheduler memory store Store memory event B for weekly :: scheduler memory store", "tags": [ "scheduler", "weekly", - "store", - "insight" + "store" ], - "importance": 0.8, + "importance": 0.55, "embedding_id": null, - "created_at": 1771304736005, - "last_seen": 1771304736005, - "source": "agent-output", + "created_at": 1771377168781, + "last_seen": 1771377168782, + "source": "scheduler-store", "ttl_days": null, "merged_into": null, "pinned": false } ], [ - "40f6bf1a-9715-4906-82d1-8f68be78eb3f", + "0c0f8d8f-b1c5-4b4f-bd15-4a53462f3a31", { "schema_version": 1, - "id": "40f6bf1a-9715-4906-82d1-8f68be78eb3f", - "agent_id": "dead-code-agent", - "session_id": "1771338346", + "id": "0c0f8d8f-b1c5-4b4f-bd15-4a53462f3a31", + "agent_id": "agent-telemetry", + "session_id": "s-telemetry", "type": "batch_window", - "content": "Memory retrieval seed for weekly :: Required startup + artifacts + memory + issue capture", - "summary": "Memory retrieval seed for weekly :: Required startup + artifacts + memory + issue capture", + "content": "customer token ABC123 secret", + "summary": "customer token ABC123 secret", "tags": [ - "scheduler", - "weekly", - "retrieve" + "incident" ], - "importance": 0.4, + "importance": 0.25, "embedding_id": null, - "created_at": 1771338346815, - "last_seen": 1771338346833, - "source": "scheduler-retrieve", + "created_at": 1771385166452, + "last_seen": 1771385274968, + "source": "ingest", "ttl_days": null, "merged_into": null, "pinned": false } ], [ - "267412f9-9704-4739-8481-8317a89e6769", + "5c3af7fa-cab8-4bcf-b1dc-fc845d611026", { "schema_version": 1, - "id": "267412f9-9704-4739-8481-8317a89e6769", - "agent_id": "dead-code-agent", - "session_id": "1771338501", + "id": "5c3af7fa-cab8-4bcf-b1dc-fc845d611026", + "agent_id": "agent-telemetry", + "session_id": "s-telemetry", "type": "batch_window", - "content": "# Weekly Dead Code Analysis - 2026-02-17\n\n**Agent:** dead-code-agent\n**Cadence:** weekly\n**Status:** Completed\n\n## Summary\nExecuted a safety-first dead-code sweep.\n\n## Findings\n- Identified `scripts/fix-duplication.mjs` as an unused standalone script.\n- Identified `src/services/memory/db-adapter.js` as an unused module (exports `createMemoryRepository` but not imported anywhere).\n\n## Actions\n- Verified zero usage for both files using `grep`.\n- Deleted both files in branch `ai/dead-code-20260217`.\n- Verified deletions with `ls` and ran `npm run lint` and `npm run test:unit:lock-backend`.\n- Artifacts generated in `artifacts/dead-code-20260217/`.", - "summary": "# Weekly Dead Code Analysis - 2026-02-17\n\n**Agent:** dead-code-agent\n**Cadence:** weekly\n**Status:** Completed\n\n## Summary\nExecuted a safety-first dead-code sweep.\n\n## Findings\n- Identified `scripts/fix-duplication.mjs` as an unused standalone script.\n- Identified `src/services/…", + "content": "customer token ABC123 secret", + "summary": "customer token ABC123 secret", "tags": [ - "scheduler", - "weekly", - "store", - "insight" + "incident" ], - "importance": 0.8, + "importance": 0.25, "embedding_id": null, - "created_at": 1771338501891, - "last_seen": 1771338501891, - "source": "agent-output", + "created_at": 1771385220726, + "last_seen": 1771385274968, + "source": "ingest", "ttl_days": null, "merged_into": null, "pinned": false @@ -306,14 +299,12 @@ "agent_id": "todo-triage-agent", "session_id": "2026-02-17T16-35-41Z", "type": "batch_window", - "content": "Memory retrieval seed for daily :: Required startup + artifacts + memory + issue capture", - "summary": "Memory retrieval seed for daily :: Required startup + artifacts + memory + issue capture", + "content": "customer token ABC123 secret", + "summary": "customer token ABC123 secret", "tags": [ - "scheduler", - "daily", - "retrieve" + "incident" ], - "importance": 0.4, + "importance": 0.25, "embedding_id": null, "created_at": 1771346141249, "last_seen": 1771346141259, @@ -334,12 +325,9 @@ "content": "# Memory Update - 2026-02-17T16-36-25Z\n\nRun at 2026-02-17T16-36-25Z. Scanned codebase for TODO/FIXME/XXX. Found 0 actionable items. False positives in mktemp usage and documentation.", "summary": "# Memory Update - 2026-02-17T16-36-25Z\n\nRun at 2026-02-17T16-36-25Z. Scanned codebase for TODO/FIXME/XXX. Found 0 actionable items. False positives in mktemp usage and documentation.", "tags": [ - "scheduler", - "daily", - "store", - "insight" + "incident" ], - "importance": 0.8, + "importance": 0.25, "embedding_id": null, "created_at": 1771346312937, "last_seen": 1771346312937, diff --git a/.scheduler-memory/session-1771346034/retrieve.json b/.scheduler-memory/session-1771346034/retrieve.json new file mode 100644 index 0000000..3242e31 --- /dev/null +++ b/.scheduler-memory/session-1771346034/retrieve.json @@ -0,0 +1,18 @@ +{ + "cadence": "weekly", + "operation": "retrieve", + "runId": "session-1771346034", + "servicePath": "src/services/memory/index.js#getRelevantMemories", + "inputs": { + "agentId": "feature-proposer-agent", + "promptPath": "src/prompts/weekly/feature-proposer-agent.md", + "promptIntent": "Required startup + artifacts + memory + issue capture", + "query": "scheduler | weekly | agent | feature-proposer-agent | intent | Required startup + artifacts + memory + issue capture", + "events": 1 + }, + "outputs": { + "ingestedCount": 1, + "retrievedCount": 1 + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-1771346034/retrieve.ok b/.scheduler-memory/session-1771346034/retrieve.ok new file mode 100644 index 0000000..84b1719 --- /dev/null +++ b/.scheduler-memory/session-1771346034/retrieve.ok @@ -0,0 +1 @@ +MEMORY_RETRIEVED diff --git a/.scheduler-memory/session-1771346112/store.json b/.scheduler-memory/session-1771346112/store.json new file mode 100644 index 0000000..9f50444 --- /dev/null +++ b/.scheduler-memory/session-1771346112/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "weekly", + "operation": "store", + "runId": "session-1771346112", + "servicePath": "src/services/memory/index.js#ingestEvents", + "inputs": { + "agentId": "feature-proposer-agent", + "promptPath": "src/prompts/weekly/feature-proposer-agent.md", + "promptIntent": "Required startup + artifacts + memory + issue capture", + "events": 1, + "sourceFile": "memory-updates/2026-02-17T15-00-00Z__feature-proposer-agent.md" + }, + "outputs": { + "storedCount": 1, + "summaries": [ + "# Memory Update - Feature Proposer Agent\n\n**Date**: 2026-02-17T15-00-00Z\n**Agent**: feature-proposer-agent\n\n## Insights\n- The `task-logs` structure is consistent and easy to parse.\n- A simple CLI tool (`features/log-summary.mjs`) was added to visualize this data.\n- This pattern …" + ] + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-1771346112/store.ok b/.scheduler-memory/session-1771346112/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-1771346112/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/.scheduler-memory/session-mlqwxsc8/retrieve.json b/.scheduler-memory/session-mlqwxsc8/retrieve.json new file mode 100644 index 0000000..6bb1d85 --- /dev/null +++ b/.scheduler-memory/session-mlqwxsc8/retrieve.json @@ -0,0 +1,18 @@ +{ + "cadence": "daily", + "operation": "retrieve", + "runId": "session-mlqwxsc8", + "servicePath": "src/services/memory/index.js#getRelevantMemories", + "inputs": { + "agentId": "audit-agent", + "promptPath": "src/prompts/daily/audit-agent.md", + "promptIntent": "Required startup + artifacts + memory + issue capture", + "query": "scheduler | daily | agent | audit-agent | intent | Required startup + artifacts + memory + issue capture", + "events": 1 + }, + "outputs": { + "ingestedCount": 1, + "retrievedCount": 1 + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlqwxsc8/retrieve.ok b/.scheduler-memory/session-mlqwxsc8/retrieve.ok new file mode 100644 index 0000000..84b1719 --- /dev/null +++ b/.scheduler-memory/session-mlqwxsc8/retrieve.ok @@ -0,0 +1 @@ +MEMORY_RETRIEVED diff --git a/.scheduler-memory/session-mlqwzwl4/store.json b/.scheduler-memory/session-mlqwzwl4/store.json new file mode 100644 index 0000000..cfc571a --- /dev/null +++ b/.scheduler-memory/session-mlqwzwl4/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "daily", + "operation": "store", + "runId": "session-mlqwzwl4", + "servicePath": "src/services/memory/index.js#ingestEvents", + "inputs": { + "agentId": "audit-agent", + "promptPath": "", + "promptIntent": "scheduler memory store", + "events": 1, + "sourceFile": "memory-updates/2026-02-17T18-04-00Z__audit-agent.md" + }, + "outputs": { + "storedCount": 1, + "summaries": [ + "# Audit Agent Report (2026-02-17)\n\n## Metrics\n- Oversized files: 18 (4010 excess lines)\n- InnerHTML assignments: 5\n- Lint failures: 13\n\n## Findings\n- Top oversized: scripts/agent/run-scheduler-cycle.mjs (1092 lines)\n- InnerHTML usage in dashboard/index.html and landing/index.htm…" + ] + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlqwzwl4/store.ok b/.scheduler-memory/session-mlqwzwl4/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-mlqwzwl4/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/.scheduler-memory/session-mlr07hyw/retrieve.json b/.scheduler-memory/session-mlr07hyw/retrieve.json new file mode 100644 index 0000000..58da45e --- /dev/null +++ b/.scheduler-memory/session-mlr07hyw/retrieve.json @@ -0,0 +1,18 @@ +{ + "cadence": "daily", + "operation": "retrieve", + "runId": "session-mlr07hyw", + "servicePath": "src/services/memory/index.js#getRelevantMemories", + "inputs": { + "agentId": "ci-health-agent", + "promptPath": "src/prompts/daily/ci-health-agent.md", + "promptIntent": "Required startup + artifacts + memory + issue capture", + "query": "scheduler | daily | agent | ci-health-agent | intent | Required startup + artifacts + memory + issue capture", + "events": 1 + }, + "outputs": { + "ingestedCount": 1, + "retrievedCount": 1 + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr07hyw/retrieve.ok b/.scheduler-memory/session-mlr07hyw/retrieve.ok new file mode 100644 index 0000000..84b1719 --- /dev/null +++ b/.scheduler-memory/session-mlr07hyw/retrieve.ok @@ -0,0 +1 @@ +MEMORY_RETRIEVED diff --git a/.scheduler-memory/session-mlr0921p/retrieve.json b/.scheduler-memory/session-mlr0921p/retrieve.json new file mode 100644 index 0000000..30c5bcf --- /dev/null +++ b/.scheduler-memory/session-mlr0921p/retrieve.json @@ -0,0 +1,18 @@ +{ + "cadence": "daily", + "operation": "retrieve", + "runId": "session-mlr0921p", + "servicePath": "src/services/memory/index.js#getRelevantMemories", + "inputs": { + "agentId": "scheduler-memory-daily", + "promptPath": "", + "promptIntent": "scheduler memory retrieval", + "query": "scheduler | daily | agent | scheduler-memory-daily | intent | scheduler memory retrieval", + "events": 1 + }, + "outputs": { + "ingestedCount": 1, + "retrievedCount": 1 + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr0921p/retrieve.ok b/.scheduler-memory/session-mlr0921p/retrieve.ok new file mode 100644 index 0000000..84b1719 --- /dev/null +++ b/.scheduler-memory/session-mlr0921p/retrieve.ok @@ -0,0 +1 @@ +MEMORY_RETRIEVED diff --git a/.scheduler-memory/session-mlr0b3uh/store.json b/.scheduler-memory/session-mlr0b3uh/store.json new file mode 100644 index 0000000..3433848 --- /dev/null +++ b/.scheduler-memory/session-mlr0b3uh/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "daily", + "operation": "store", + "runId": "session-mlr0b3uh", + "servicePath": "src/services/memory/index.js#ingestEvents", + "inputs": { + "agentId": "ci-health-agent", + "promptPath": "src/prompts/daily/ci-health-agent.md", + "promptIntent": "Required startup + artifacts + memory + issue capture", + "events": 1, + "sourceFile": "memory-updates/2026-02-17T19-36-32Z__ci-health-agent.md" + }, + "outputs": { + "storedCount": 1, + "summaries": [ + "# CI Health Update\n- Fixed bug in `src/lock-ops.mjs`: `getRelayFallbacks` is async but was called synchronously in `LockPublisher` constructor.\n- Fixed bug in `src/lock-ops.mjs`: `LockPublisher` used `maybeLogHealthSnapshot` which was undefined; updated to use `healthManager`.\n-…" + ] + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr0b3uh/store.ok b/.scheduler-memory/session-mlr0b3uh/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-mlr0b3uh/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/.scheduler-memory/session-mlr0dhq6/retrieve.json b/.scheduler-memory/session-mlr0dhq6/retrieve.json new file mode 100644 index 0000000..5105a48 --- /dev/null +++ b/.scheduler-memory/session-mlr0dhq6/retrieve.json @@ -0,0 +1,18 @@ +{ + "cadence": "daily", + "operation": "retrieve", + "runId": "session-mlr0dhq6", + "servicePath": "src/services/memory/index.js#getRelevantMemories", + "inputs": { + "agentId": "const-refactor-agent", + "promptPath": "src/prompts/daily/const-refactor-agent.md", + "promptIntent": "Required startup + artifacts + memory + issue capture", + "query": "scheduler | daily | agent | const-refactor-agent | intent | Required startup + artifacts + memory + issue capture", + "events": 1 + }, + "outputs": { + "ingestedCount": 1, + "retrievedCount": 1 + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr0dhq6/retrieve.ok b/.scheduler-memory/session-mlr0dhq6/retrieve.ok new file mode 100644 index 0000000..84b1719 --- /dev/null +++ b/.scheduler-memory/session-mlr0dhq6/retrieve.ok @@ -0,0 +1 @@ +MEMORY_RETRIEVED diff --git a/.scheduler-memory/session-mlr0g2tv/store.json b/.scheduler-memory/session-mlr0g2tv/store.json new file mode 100644 index 0000000..f419ee1 --- /dev/null +++ b/.scheduler-memory/session-mlr0g2tv/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "weekly", + "operation": "store", + "runId": "session-mlr0g2tv", + "servicePath": "src/services/memory/index.js#ingestEvents", + "inputs": { + "agentId": "scheduler-memory-weekly", + "promptPath": "", + "promptIntent": "scheduler memory store", + "events": 2, + "sourceFile": "fallback" + }, + "outputs": { + "storedCount": 1, + "summaries": [ + "Store memory event A for weekly :: scheduler memory store Store memory event B for weekly :: scheduler memory store" + ] + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr0g2tv/store.ok b/.scheduler-memory/session-mlr0g2tv/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-mlr0g2tv/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/.scheduler-memory/session-mlr0iplm/store.json b/.scheduler-memory/session-mlr0iplm/store.json new file mode 100644 index 0000000..395e0e7 --- /dev/null +++ b/.scheduler-memory/session-mlr0iplm/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "daily", + "operation": "store", + "runId": "session-mlr0iplm", + "servicePath": "src/services/memory/index.js#ingestEvents", + "inputs": { + "agentId": "const-refactor-agent", + "promptPath": "src/prompts/daily/const-refactor-agent.md", + "promptIntent": "Required startup + artifacts + memory + issue capture", + "events": 1, + "sourceFile": "memory-updates/2026-02-17T19-44-58Z__const-refactor-agent.md" + }, + "outputs": { + "storedCount": 1, + "summaries": [ + "# Memory Update: Constants Refactor\n\n- Discovered hardcoded constants in `src/lock-ops.mjs` duplicating defaults.\n- Extracted `DEFAULT_RETRY_ATTEMPTS`, `DEFAULT_RETRY_BASE_DELAY_MS`, etc. to `src/constants.mjs`.\n- Refactored `src/lock-ops.mjs` to use these constants.\n- Fixed a b…" + ] + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr0iplm/store.ok b/.scheduler-memory/session-mlr0iplm/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-mlr0iplm/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/.scheduler-memory/session-mlr4ba92/store.json b/.scheduler-memory/session-mlr4ba92/store.json new file mode 100644 index 0000000..e45b7d7 --- /dev/null +++ b/.scheduler-memory/session-mlr4ba92/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "weekly", + "operation": "store", + "runId": "session-mlr4ba92", + "servicePath": "src/services/memory/index.js#ingestEvents", + "inputs": { + "agentId": "scheduler-memory-weekly", + "promptPath": "src/prompts/daily/.md", + "promptIntent": "scheduler memory store", + "events": 1, + "sourceFile": "memory-updates/2026-02-17T21-29-25Z__content-audit-agent.md" + }, + "outputs": { + "storedCount": 1, + "summaries": [ + "# Learnings - 2026-02-17\n\n- The `content-audit-agent` is configured to audit the `/content` directory, but this directory does not exist in the repository root.\n- Added `content-audit-agent targets missing /content directory` to `KNOWN_ISSUES.md`.\n- No audit actions were perform…" + ] + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr4ba92/store.ok b/.scheduler-memory/session-mlr4ba92/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-mlr4ba92/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/.scheduler-memory/session-mlr7wt48/retrieve.json b/.scheduler-memory/session-mlr7wt48/retrieve.json new file mode 100644 index 0000000..36380c2 --- /dev/null +++ b/.scheduler-memory/session-mlr7wt48/retrieve.json @@ -0,0 +1,18 @@ +{ + "cadence": "daily", + "operation": "retrieve", + "runId": "session-mlr7wt48", + "servicePath": "src/services/memory/index.js#getRelevantMemories", + "inputs": { + "agentId": "scheduler-memory-daily", + "promptPath": "", + "promptIntent": "scheduler memory retrieval", + "query": "scheduler | daily | agent | scheduler-memory-daily | intent | scheduler memory retrieval", + "events": 1 + }, + "outputs": { + "ingestedCount": 1, + "retrievedCount": 1 + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr7wt48/retrieve.ok b/.scheduler-memory/session-mlr7wt48/retrieve.ok new file mode 100644 index 0000000..84b1719 --- /dev/null +++ b/.scheduler-memory/session-mlr7wt48/retrieve.ok @@ -0,0 +1 @@ +MEMORY_RETRIEVED diff --git a/.scheduler-memory/session-mlr82pk9/store.json b/.scheduler-memory/session-mlr82pk9/store.json new file mode 100644 index 0000000..d675ab0 --- /dev/null +++ b/.scheduler-memory/session-mlr82pk9/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "weekly", + "operation": "store", + "runId": "session-mlr82pk9", + "servicePath": "src/services/memory/index.js#ingestEvents", + "inputs": { + "agentId": "scheduler-memory-weekly", + "promptPath": "", + "promptIntent": "scheduler memory store", + "events": 2, + "sourceFile": "fallback" + }, + "outputs": { + "storedCount": 1, + "summaries": [ + "Store memory event A for weekly :: scheduler memory store Store memory event B for weekly :: scheduler memory store" + ] + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlr82pk9/store.ok b/.scheduler-memory/session-mlr82pk9/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-mlr82pk9/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/.scheduler-memory/session-mlrc78ft/retrieve.json b/.scheduler-memory/session-mlrc78ft/retrieve.json new file mode 100644 index 0000000..cbe2aeb --- /dev/null +++ b/.scheduler-memory/session-mlrc78ft/retrieve.json @@ -0,0 +1,18 @@ +{ + "cadence": "daily", + "operation": "retrieve", + "runId": "session-mlrc78ft", + "servicePath": "src/services/memory/index.js#getRelevantMemories", + "inputs": { + "agentId": "scheduler-memory-daily", + "promptPath": "", + "promptIntent": "scheduler memory retrieval", + "query": "scheduler | daily | agent | scheduler-memory-daily | intent | scheduler memory retrieval", + "events": 1 + }, + "outputs": { + "ingestedCount": 1, + "retrievedCount": 2 + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlrc78ft/retrieve.ok b/.scheduler-memory/session-mlrc78ft/retrieve.ok new file mode 100644 index 0000000..84b1719 --- /dev/null +++ b/.scheduler-memory/session-mlrc78ft/retrieve.ok @@ -0,0 +1 @@ +MEMORY_RETRIEVED diff --git a/.scheduler-memory/session-mlrc8az1/store.json b/.scheduler-memory/session-mlrc8az1/store.json new file mode 100644 index 0000000..15dce7d --- /dev/null +++ b/.scheduler-memory/session-mlrc8az1/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "weekly", + "operation": "store", + "runId": "session-mlrc8az1", + "servicePath": "src/services/memory/index.js#ingestEvents", + "inputs": { + "agentId": "scheduler-memory-weekly", + "promptPath": "", + "promptIntent": "scheduler memory store", + "events": 2, + "sourceFile": "fallback" + }, + "outputs": { + "storedCount": 1, + "summaries": [ + "Store memory event A for weekly :: scheduler memory store Store memory event B for weekly :: scheduler memory store" + ] + }, + "status": "ok" +} \ No newline at end of file diff --git a/.scheduler-memory/session-mlrc8az1/store.ok b/.scheduler-memory/session-mlrc8az1/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-mlrc8az1/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index be798d5..b1bfffd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,70 +1,59 @@ -# CONTRIBUTING.md — Generic Collaboration Guide +# Contributing to TORCH -This repository is designed for human and AI contributors. Keep contributions small, clear, and verifiable. +Thank you for your interest in contributing to TORCH! -## Contribution principles +## Prerequisites -- Prefer focused pull requests. -- Avoid unrelated refactors. -- Preserve existing behavior unless a change is explicitly requested. -- Document assumptions and tradeoffs. +- Node.js (v22+) +- npm -## Development Commands +## Setup -- **Install**: `npm install` -- **Test**: `npm test` -- **Lint**: `npm run lint` -- **Build**: `npm run build` +1. Clone the repository. +2. Install dependencies: -## Standard contribution flow + ```bash + npm install + ``` -1. Sync your branch with the target base branch. -2. Read baseline guidance: - - `AGENTS.md` - - `CLAUDE.md` - - `KNOWN_ISSUES.md` -3. Implement minimal changes required to solve the task. -4. Run relevant validation checks. -5. Update documentation if behavior or workflow changed. -6. Commit with a clear message. -7. Open a PR with complete context. +## Development Workflow -## Commit expectations +### Building -- Keep commits atomic and descriptive. -- Use imperative commit subjects. -- Separate mechanical renames from behavioral changes when possible. +This project requires a build step for certain artifacts (e.g., distribution files, dashboard assets). -## Pull request expectations +```bash +npm run build +``` -Each PR should include: +### Testing -- **Summary**: what changed. -- **Why**: motivation/problem solved. -- **Files modified**: key files touched. -- **Validation**: exact commands run and outcomes. -- **Risks / rollback**: known risks and how to revert. +Run the test suite to ensure your changes don't break existing functionality. -## Validation expectations +```bash +npm test +``` -- Run checks most relevant to changed files (tests, lint, typecheck, build, scripts). -- If a check cannot run, include: - - command attempted, - - reason it failed or was unavailable, - - fallback verification performed. +For faster feedback loop on unit tests (excluding integration): -## Documentation and handoffs +```bash +npm run test:unit:lock-backend +``` -When your work creates reusable knowledge: +### Linting -- Add/update `docs/agent-handoffs/learnings/` for successful patterns. -- Add/update `docs/agent-handoffs/incidents/` for failure modes and mitigations. -- Add/update `KNOWN_ISSUES.md` for active unresolved issues. +Ensure your code follows the project's style guidelines. -Use filename format: `YYYY-MM-DD-short-topic.md`. +```bash +npm run lint +``` -## Security and privacy +## Pull Requests -- Never commit credentials, tokens, secrets, or personal data. -- Redact sensitive values in logs and examples. -- Prefer synthetic or anonymized examples in documentation. +Please follow the repository conventions for Pull Requests. + +> **Note:** Detailed agent policies and conventions are normally documented in `AGENTS.md`. If this file is missing, please refer to existing patterns in the codebase or open an issue for clarification. + +## Reporting Issues + +If you encounter any bugs or have feature requests, please open an issue on GitHub. diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index 0f2046f..b2769dd 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -65,3 +65,11 @@ Track only **active, reproducible, unresolved** issues. - **Related notes:** `docs/agent-handoffs/learnings/2026-02-15-relay-health-preflight-job.md` - **Last verified:** 2026-02-15 +### content-audit-agent targets missing /content directory +- **Status:** Active +- **Area:** Docs +- **Symptom:** `content-audit-agent` fails to find `/content` directory. +- **Trigger/Conditions:** Running `content-audit-agent`. +- **Workaround:** None. Requires updating the agent prompt or repo structure. +- **Impact:** Docs audit cannot be performed. +- **Last verified:** 2026-02-17 diff --git a/README.md b/README.md index fb53de1..15ac871 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,18 @@ npm install https://github.com/PR0M3TH3AN/TORCH/archive/refs/heads/main.tar.gz > TORCH is distributed from GitHub tarballs and is not currently published to the npm registry. +## Development + +For instructions on how to contribute to TORCH, including building, testing, and linting, please see [CONTRIBUTING.md](CONTRIBUTING.md). + +Quick start: + +```bash +npm install +npm run build +npm test +``` + ## Usage ### CLI @@ -91,10 +103,16 @@ Configuration options: The dashboard provides a live view of lock events. ```bash -npx --no-install torch-lock dashboard --port 4173 +npx --no-install torch-lock dashboard --port 4173 --host 127.0.0.1 # Open http://localhost:4173/dashboard/ ``` +By default, the dashboard binds to `127.0.0.1`. To allow external access, you can set `--host 0.0.0.0`. It is highly recommended to enable authentication if the dashboard is exposed to a network. + +#### Authentication + +The dashboard supports Basic Authentication. You can enable it by setting the `TORCH_DASHBOARD_AUTH` environment variable or the `dashboard.auth` field in `torch-config.json` with the format `username:password`. + ## Environment variables You can override configuration using environment variables: @@ -107,6 +125,7 @@ You can override configuration using environment variables: - `NOSTR_LOCK_DAILY_ROSTER` (comma-separated list of agents) - `NOSTR_LOCK_WEEKLY_ROSTER` (comma-separated list of agents) - `TORCH_CONFIG_PATH` (path to config file) +- `TORCH_DASHBOARD_AUTH` (Basic Auth `user:pass` for the dashboard) - `AGENT_PLATFORM` (platform identifier, e.g. `codex`) - `TORCH_MEMORY_ENABLED` (`true`/`false`; global memory kill switch, defaults to enabled) - `TORCH_MEMORY_INGEST_ENABLED` (`true`/`false` or comma-separated canary `agent_id` allow list) diff --git a/artifacts/audit/2026-02-17/file-size-report.json b/artifacts/audit/2026-02-17/file-size-report.json new file mode 100644 index 0000000..8f745c2 --- /dev/null +++ b/artifacts/audit/2026-02-17/file-size-report.json @@ -0,0 +1,95 @@ +{ + "oversizedFiles": [ + { + "file": ".scheduler-memory/memory-store.json", + "lines": 377, + "excess": 77 + }, + { + "file": "TORCH.md", + "lines": 342, + "excess": 42 + }, + { + "file": "dashboard/index.html", + "lines": 1044, + "excess": 744 + }, + { + "file": "dashboard/styles.css", + "lines": 361, + "excess": 61 + }, + { + "file": "landing/index.html", + "lines": 924, + "excess": 624 + }, + { + "file": "scripts/agent/run-scheduler-cycle.mjs", + "lines": 1092, + "excess": 792 + }, + { + "file": "scripts/agent/verify-run-artifacts.mjs", + "lines": 363, + "excess": 63 + }, + { + "file": "src/lib.mjs", + "lines": 727, + "excess": 427 + }, + { + "file": "src/lock-ops.mjs", + "lines": 593, + "excess": 293 + }, + { + "file": "src/ops.mjs", + "lines": 434, + "excess": 134 + }, + { + "file": "src/services/memory/index.js", + "lines": 428, + "excess": 128 + }, + { + "file": "src/services/memory/pruner.js", + "lines": 314, + "excess": 14 + }, + { + "file": "src/services/memory/scheduler.js", + "lines": 318, + "excess": 18 + }, + { + "file": "src/torch-config.mjs", + "lines": 315, + "excess": 15 + }, + { + "file": "test/lib.test.mjs", + "lines": 418, + "excess": 118 + }, + { + "file": "test/lock-ops.test.mjs", + "lines": 395, + "excess": 95 + }, + { + "file": "test/run-scheduler-cycle-memory-policy.test.mjs", + "lines": 599, + "excess": 299 + }, + { + "file": "test-audit/flakiness-matrix.json", + "lines": 366, + "excess": 66 + } + ], + "totalExcessLines": 4010 +} \ No newline at end of file diff --git a/artifacts/audit/2026-02-17/innerhtml-report.json b/artifacts/audit/2026-02-17/innerhtml-report.json new file mode 100644 index 0000000..2daeb63 --- /dev/null +++ b/artifacts/audit/2026-02-17/innerhtml-report.json @@ -0,0 +1,13 @@ +{ + "innerHtmlAssignments": [ + { + "file": "dashboard/index.html", + "count": 2 + }, + { + "file": "landing/index.html", + "count": 3 + } + ], + "totalInnerHtml": 5 +} \ No newline at end of file diff --git a/artifacts/audit/2026-02-17/lint-report.json b/artifacts/audit/2026-02-17/lint-report.json new file mode 100644 index 0000000..dfb6657 --- /dev/null +++ b/artifacts/audit/2026-02-17/lint-report.json @@ -0,0 +1,11 @@ +{ + "lintFailures": 13, + "filesWithErrors": 10, + "sampleErrors": [ + "23:7 warning 'CONFIRM_PUBLIC' is assigned a value but never used no-unused-vars", + "48:14 warning 'e' is defined but never used no-unused-vars", + "25:14 warning 'e' is defined but never used no-unused-vars", + "62:22 warning 'e' is defined but never used no-unused-vars", + "29:14 warning '_' is assigned a value but never used no-unused-vars" + ] +} \ No newline at end of file diff --git a/artifacts/audit/2026-02-17/raw-check-file-size.log b/artifacts/audit/2026-02-17/raw-check-file-size.log new file mode 100644 index 0000000..74ebfe7 --- /dev/null +++ b/artifacts/audit/2026-02-17/raw-check-file-size.log @@ -0,0 +1,18 @@ +.scheduler-memory/memory-store.json: 377 lines (excess: 77) +TORCH.md: 342 lines (excess: 42) +dashboard/index.html: 1044 lines (excess: 744) +dashboard/styles.css: 361 lines (excess: 61) +landing/index.html: 924 lines (excess: 624) +scripts/agent/run-scheduler-cycle.mjs: 1092 lines (excess: 792) +scripts/agent/verify-run-artifacts.mjs: 363 lines (excess: 63) +src/lib.mjs: 727 lines (excess: 427) +src/lock-ops.mjs: 593 lines (excess: 293) +src/ops.mjs: 434 lines (excess: 134) +src/services/memory/index.js: 428 lines (excess: 128) +src/services/memory/pruner.js: 314 lines (excess: 14) +src/services/memory/scheduler.js: 318 lines (excess: 18) +src/torch-config.mjs: 315 lines (excess: 15) +test/lib.test.mjs: 418 lines (excess: 118) +test/lock-ops.test.mjs: 395 lines (excess: 95) +test/run-scheduler-cycle-memory-policy.test.mjs: 599 lines (excess: 299) +test-audit/flakiness-matrix.json: 366 lines (excess: 66) diff --git a/artifacts/audit/2026-02-17/raw-check-innerhtml.log b/artifacts/audit/2026-02-17/raw-check-innerhtml.log new file mode 100644 index 0000000..0142e84 --- /dev/null +++ b/artifacts/audit/2026-02-17/raw-check-innerhtml.log @@ -0,0 +1,3 @@ +dashboard/index.html: 2 assignments +landing/index.html: 3 assignments +Total assignments: 5 diff --git a/artifacts/audit/2026-02-17/raw-lint.log b/artifacts/audit/2026-02-17/raw-lint.log new file mode 100644 index 0000000..04a9826 --- /dev/null +++ b/artifacts/audit/2026-02-17/raw-lint.log @@ -0,0 +1,39 @@ + +> torch-lock@0.1.0 lint +> eslint . + + +/app/scripts/agent/smoke-test.mjs + 23:7 warning 'CONFIRM_PUBLIC' is assigned a value but never used no-unused-vars + 48:14 warning 'e' is defined but never used no-unused-vars + +/app/scripts/benchmark-dashboard.mjs + 25:14 warning 'e' is defined but never used no-unused-vars + 62:22 warning 'e' is defined but never used no-unused-vars + +/app/src/lock-utils.mjs + 29:14 warning '_' is assigned a value but never used no-unused-vars + +/app/src/ops.mjs + 341:16 warning 'e' is defined but never used no-unused-vars + +/app/src/services/memory/embedder.js + 17:28 warning 'text' is defined but never used no-unused-vars + +/app/test-audit/run-flaky-check.mjs + 18:24 warning 'code' is defined but never used no-unused-vars + +/app/test-audit/run-static-analysis.mjs + 15:12 warning 'e' is defined but never used no-unused-vars + +/app/test/lib.test.mjs + 102:11 warning 'mockPublishLock' is assigned a value but never used no-unused-vars + 356:11 warning 'mockPublishLock' is assigned a value but never used no-unused-vars + +/app/test/memory-formatter.test.mjs + 9:3 warning 'isMemoryRetrievalEnabled' is defined but never used no-unused-vars + +/app/test/nostr-lock.test.mjs + 1:10 warning 'test' is defined but never used no-unused-vars + +✖ 13 problems (0 errors, 13 warnings) diff --git a/artifacts/audit/2026-02-17/summary.md b/artifacts/audit/2026-02-17/summary.md new file mode 100644 index 0000000..9e27ed7 --- /dev/null +++ b/artifacts/audit/2026-02-17/summary.md @@ -0,0 +1,31 @@ +# Audit Report — 2026-02-17 (default branch) + +**Summary** + +* Date: 2026-02-17 18:04 UTC +* Node: v22.22.0 / OS: linux + +**Metrics** + +* Oversized files: 18 files (total excess lines: 4010) +* Total innerHTML assignments: 5 + + * Top offenders: + * dashboard/index.html — 2 + * landing/index.html — 3 + +* Lint failures: 13 (files: 10) + + * Example errors: + * 23:7 warning 'CONFIRM_PUBLIC' is assigned a value but never used no-unused-vars + * 48:14 warning 'e' is defined but never used no-unused-vars + * 25:14 warning 'e' is defined but never used no-unused-vars + * 62:22 warning 'e' is defined but never used no-unused-vars + * 29:14 warning '_' is assigned a value but never used no-unused-vars + +**Artifacts** + +* file-size-report.json +* innerhtml-report.json +* lint-report.json +* raw logs diff --git a/artifacts/deps-report.md b/artifacts/deps-report.md index f1f4e4c..57e56d1 100644 --- a/artifacts/deps-report.md +++ b/artifacts/deps-report.md @@ -1,14 +1,17 @@ -# Dependency Report (2026-02-14) +# Dependency Security Report -## Summary -- Vulnerabilities: 0 -- Outdated Packages: 1 +**Date:** 2026-02-17 ## Vulnerabilities -No vulnerabilities found. +Found 4 moderate vulnerabilities in `eslint` stack. +- `eslint`, `@eslint/js`, `ajv`, `@eslint-community/eslint-utils`. +- **Note**: Current installed version is `^10.0.0`, which exceeds normal registry versions. Investigation needed. ## Outdated Packages -- **nostr-tools**: Current `2.19.4` -> Latest `2.23.1` (Wanted: `2.19.4`) +- **nostr-tools**: + - Current: 2.19.4 + - Latest: 2.23.1 + - **Action**: Skipped auto-upgrade (Protocol Library). Please review manually. -## Recommendations -- **nostr-tools**: This is a protocol library. Auto-upgrade is disabled. Recommend manual review for upgrade to 2.23.1. +## Actions Taken +- No automatic upgrades performed due to safety constraints. diff --git a/artifacts/docs-audit/2026-02-17/inventory.md b/artifacts/docs-audit/2026-02-17/inventory.md new file mode 100644 index 0000000..f08bb6b --- /dev/null +++ b/artifacts/docs-audit/2026-02-17/inventory.md @@ -0,0 +1,13 @@ +# Inventory - 2026-02-17 + +## Scope +Audit of `/content` directory for upload/contribution docs. + +## Findings +- **Missing Directory**: The `/content` directory does not exist in the repository root. +- **Impact**: Unable to verify claims about upload functionality or contribution guidelines in `/content`. +- **Status**: Failed to inventory due to missing target. + +## Recommendations +- Verify if `/content` is the intended target or if documentation resides elsewhere (e.g., `src/docs`). +- Update `content-audit-agent` prompt to reflect the correct directory structure. diff --git a/artifacts/npm-audit.json b/artifacts/npm-audit.json index dce7c3a..024e02d 100644 --- a/artifacts/npm-audit.json +++ b/artifacts/npm-audit.json @@ -1,22 +1,118 @@ { "auditReportVersion": 2, - "vulnerabilities": {}, + "vulnerabilities": { + "@eslint-community/eslint-utils": { + "name": "@eslint-community/eslint-utils", + "severity": "moderate", + "isDirect": false, + "via": [ + "eslint" + ], + "effects": [ + "eslint" + ], + "range": "*", + "nodes": [ + "node_modules/@eslint-community/eslint-utils" + ], + "fixAvailable": { + "name": "eslint", + "version": "4.1.1", + "isSemVerMajor": true + } + }, + "@eslint/js": { + "name": "@eslint/js", + "severity": "moderate", + "isDirect": true, + "via": [ + "eslint" + ], + "effects": [], + "range": ">=10.0.1", + "nodes": [ + "node_modules/@eslint/js" + ], + "fixAvailable": { + "name": "@eslint/js", + "version": "9.39.2", + "isSemVerMajor": true + } + }, + "ajv": { + "name": "ajv", + "severity": "moderate", + "isDirect": false, + "via": [ + { + "source": 1113214, + "name": "ajv", + "dependency": "ajv", + "title": "ajv has ReDoS when using `$data` option", + "url": "https://github.com/advisories/GHSA-2g4f-4pwh-qvx6", + "severity": "moderate", + "cwe": [ + "CWE-400" + ], + "cvss": { + "score": 0, + "vectorString": null + }, + "range": "<8.18.0" + } + ], + "effects": [ + "eslint" + ], + "range": "<8.18.0", + "nodes": [ + "node_modules/ajv" + ], + "fixAvailable": { + "name": "eslint", + "version": "4.1.1", + "isSemVerMajor": true + } + }, + "eslint": { + "name": "eslint", + "severity": "moderate", + "isDirect": true, + "via": [ + "@eslint-community/eslint-utils", + "ajv" + ], + "effects": [ + "@eslint-community/eslint-utils", + "@eslint/js" + ], + "range": ">=4.2.0", + "nodes": [ + "node_modules/eslint" + ], + "fixAvailable": { + "name": "eslint", + "version": "4.1.1", + "isSemVerMajor": true + } + } + }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, - "moderate": 0, + "moderate": 4, "high": 0, "critical": 0, - "total": 0 + "total": 4 }, "dependencies": { "prod": 12, - "dev": 72, - "optional": 0, + "dev": 76, + "optional": 1, "peer": 0, "peerOptional": 0, - "total": 83 + "total": 87 } } } diff --git a/dashboard.log b/dashboard.log new file mode 100644 index 0000000..b9f5847 --- /dev/null +++ b/dashboard.log @@ -0,0 +1,8 @@ + +> torch-lock@0.1.0 dashboard:serve +> node bin/torch-lock.mjs dashboard + +Dashboard running at http://null:4173/dashboard/ +Authentication: DISABLED (Dashboard is public) +Serving files from /app +Using configuration from /app diff --git a/dashboard_verify.log b/dashboard_verify.log index 739f71f..b9f5847 100644 --- a/dashboard_verify.log +++ b/dashboard_verify.log @@ -2,6 +2,7 @@ > torch-lock@0.1.0 dashboard:serve > node bin/torch-lock.mjs dashboard -Dashboard running at http://localhost:4173/dashboard/ +Dashboard running at http://null:4173/dashboard/ +Authentication: DISABLED (Dashboard is public) Serving files from /app Using configuration from /app diff --git a/features/log-summary.mjs b/features/log-summary.mjs new file mode 100644 index 0000000..eca856d --- /dev/null +++ b/features/log-summary.mjs @@ -0,0 +1,85 @@ +#!/usr/bin/env node + +/** + * features/log-summary.mjs + * + * A utility script to parse task-logs and display a summary of recent agent runs. + * + * Usage: + * node features/log-summary.mjs + * node features/log-summary.mjs --cadence daily + * node features/log-summary.mjs --limit 20 + */ + +import fs from 'node:fs'; +import path from 'node:path'; + +const CADENCES = ['daily', 'weekly']; +const LOG_ROOT = 'task-logs'; + +function parseArgs() { + const args = process.argv.slice(2); + const limitIndex = args.indexOf('--limit'); + const limit = limitIndex !== -1 ? parseInt(args[limitIndex + 1], 10) : 10; + + const cadenceIndex = args.indexOf('--cadence'); + const cadence = cadenceIndex !== -1 ? args[cadenceIndex + 1] : null; + + return { limit, cadence }; +} + +function getLogFiles(cadence) { + const dir = path.join(LOG_ROOT, cadence); + if (!fs.existsSync(dir)) return []; + + return fs.readdirSync(dir) + .filter(file => file.endsWith('.md') && !file.startsWith('_')) + .map(file => { + // Format: ____.md + // Example: 2026-02-17T14-29-07Z__dead-code-agent__completed.md + const parts = file.replace('.md', '').split('__'); + if (parts.length < 3) return null; + + return { + timestamp: parts[0], + agent: parts[1], + status: parts[2], + cadence, + file + }; + }) + .filter(Boolean); +} + +function main() { + const { limit, cadence } = parseArgs(); + + let allLogs = []; + + const cadencesToScan = cadence ? [cadence] : CADENCES; + + for (const c of cadencesToScan) { + allLogs = allLogs.concat(getLogFiles(c)); + } + + // Sort by timestamp descending + allLogs.sort((a, b) => b.timestamp.localeCompare(a.timestamp)); + + const displayedLogs = allLogs.slice(0, limit); + + console.log(`\n🔍 Recent Agent Runs (Limit: ${limit})\n`); + console.log(`| Timestamp | Cadence | Agent | Status |`); + console.log(`|----------------------|---------|--------------------------------|-----------|`); + + for (const log of displayedLogs) { + const ts = log.timestamp.padEnd(20); + const cad = log.cadence.padEnd(7); + const agent = log.agent.padEnd(30); + const status = log.status.padEnd(9); + + console.log(`| ${ts} | ${cad} | ${agent} | ${status} |`); + } + console.log(''); +} + +main(); diff --git a/landing/index.html b/landing/index.html index 62ded99..cd2daaa 100644 --- a/landing/index.html +++ b/landing/index.html @@ -620,7 +620,7 @@
-

Choose Your Agent

+

Choose Your Agent

-
-

Running Offline or Air-Gapped?

-

Download the standalone bundle and install it directly without registry access.

+
+

Running Offline or Air-Gapped?

+

Download the standalone bundle and install it directly without registry access.

-
+ @@ -675,7 +675,7 @@ npm install https://github.com/PR0M3TH3AN/TORCH/archive/refs/heads/main.tar.gz & Download Bundle -
+
npm install ./{{OFFLINE_BUNDLE_FILENAME}}