From 57f6675c642c31a28e942b94467b53bd36d79b6b Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 15:22:04 +0000 Subject: [PATCH] Weekly fuzz-agent run: fixes and execution Co-authored-by: PR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> --- .scheduler-memory/memory-store.json | 133 +++++++++++++++++- .../session-mls6alda/retrieve.json | 18 +++ .../session-mls6alda/retrieve.ok | 1 + .scheduler-memory/session-mls6alf7/store.json | 20 +++ .scheduler-memory/session-mls6alf7/store.ok | 1 + .../fuzz-report-lock-event-20260218.json | 6 + src/ops.mjs | 2 +- src/roster.mjs | 4 +- ...-02-18T17-25-00Z__fuzz-agent__completed.md | 23 +++ test/utils.test.mjs | 4 +- 10 files changed, 201 insertions(+), 11 deletions(-) create mode 100644 .scheduler-memory/session-mls6alda/retrieve.json create mode 100644 .scheduler-memory/session-mls6alda/retrieve.ok create mode 100644 .scheduler-memory/session-mls6alf7/store.json create mode 100644 .scheduler-memory/session-mls6alf7/store.ok create mode 100644 artifacts/fuzz-report-lock-event-20260218.json create mode 100644 task-logs/weekly/2026-02-18T17-25-00Z__fuzz-agent__completed.md diff --git a/.scheduler-memory/memory-store.json b/.scheduler-memory/memory-store.json index 7c6d438..510f291 100644 --- a/.scheduler-memory/memory-store.json +++ b/.scheduler-memory/memory-store.json @@ -94,7 +94,7 @@ "importance": 0.4, "embedding_id": null, "created_at": 1771369913961, - "last_seen": 1771377118848, + "last_seen": 1771427664054, "source": "scheduler-retrieve", "ttl_days": null, "merged_into": null, @@ -117,7 +117,7 @@ "importance": 0.25, "embedding_id": null, "created_at": 1771370050385, - "last_seen": 1771384958445, + "last_seen": 1771427562318, "source": "ingest", "ttl_days": null, "merged_into": null, @@ -140,7 +140,7 @@ "importance": 0.25, "embedding_id": null, "created_at": 1771370084740, - "last_seen": 1771384958445, + "last_seen": 1771427562318, "source": "ingest", "ttl_days": null, "merged_into": null, @@ -163,7 +163,7 @@ "importance": 0.25, "embedding_id": null, "created_at": 1771370148079, - "last_seen": 1771384958445, + "last_seen": 1771427562318, "source": "ingest", "ttl_days": null, "merged_into": null, @@ -262,7 +262,7 @@ "importance": 0.25, "embedding_id": null, "created_at": 1771384842151, - "last_seen": 1771384958445, + "last_seen": 1771427562318, "source": "ingest", "ttl_days": null, "merged_into": null, @@ -285,7 +285,7 @@ "importance": 0.25, "embedding_id": null, "created_at": 1771384870483, - "last_seen": 1771384958445, + "last_seen": 1771427562318, "source": "ingest", "ttl_days": null, "merged_into": null, @@ -308,11 +308,130 @@ "importance": 0.25, "embedding_id": null, "created_at": 1771384958439, - "last_seen": 1771384958445, + "last_seen": 1771427562318, "source": "ingest", "ttl_days": null, "merged_into": null, "pinned": false } + ], + [ + "014476d4-ea5f-4376-b1f5-580ae60659ca", + { + "schema_version": 1, + "id": "014476d4-ea5f-4376-b1f5-580ae60659ca", + "agent_id": "agent-telemetry", + "session_id": "s-telemetry", + "type": "batch_window", + "content": "customer token ABC123 secret", + "summary": "customer token ABC123 secret", + "tags": [ + "incident" + ], + "importance": 0.25, + "embedding_id": null, + "created_at": 1771427339704, + "last_seen": 1771427562318, + "source": "ingest", + "ttl_days": null, + "merged_into": null, + "pinned": false + } + ], + [ + "49d14ded-6843-45d6-b113-768b8db36fa7", + { + "schema_version": 1, + "id": "49d14ded-6843-45d6-b113-768b8db36fa7", + "agent_id": "agent-telemetry", + "session_id": "s-telemetry", + "type": "batch_window", + "content": "customer token ABC123 secret", + "summary": "customer token ABC123 secret", + "tags": [ + "incident" + ], + "importance": 0.25, + "embedding_id": null, + "created_at": 1771427363420, + "last_seen": 1771427562318, + "source": "ingest", + "ttl_days": null, + "merged_into": null, + "pinned": false + } + ], + [ + "b0e84cd8-8da7-4677-a032-a72407557898", + { + "schema_version": 1, + "id": "b0e84cd8-8da7-4677-a032-a72407557898", + "agent_id": "agent-telemetry", + "session_id": "s-telemetry", + "type": "batch_window", + "content": "customer token ABC123 secret", + "summary": "customer token ABC123 secret", + "tags": [ + "incident" + ], + "importance": 0.25, + "embedding_id": null, + "created_at": 1771427562303, + "last_seen": 1771427562318, + "source": "ingest", + "ttl_days": null, + "merged_into": null, + "pinned": false + } + ], + [ + "db266f5c-9cd2-4444-840e-775eea3697b3", + { + "schema_version": 1, + "id": "db266f5c-9cd2-4444-840e-775eea3697b3", + "agent_id": "scheduler-memory-daily", + "session_id": "session-mls6alda", + "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": 1771427664046, + "last_seen": 1771427664054, + "source": "scheduler-retrieve", + "ttl_days": null, + "merged_into": null, + "pinned": false + } + ], + [ + "7f142e9b-e95a-4d53-ac98-874a1e3f395f", + { + "schema_version": 1, + "id": "7f142e9b-e95a-4d53-ac98-874a1e3f395f", + "agent_id": "scheduler-memory-weekly", + "session_id": "session-mls6alf7", + "type": "batch_window", + "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": 1771427664115, + "last_seen": 1771427664116, + "source": "scheduler-store", + "ttl_days": null, + "merged_into": null, + "pinned": false + } ] ] \ No newline at end of file diff --git a/.scheduler-memory/session-mls6alda/retrieve.json b/.scheduler-memory/session-mls6alda/retrieve.json new file mode 100644 index 0000000..58b6dc7 --- /dev/null +++ b/.scheduler-memory/session-mls6alda/retrieve.json @@ -0,0 +1,18 @@ +{ + "cadence": "daily", + "operation": "retrieve", + "runId": "session-mls6alda", + "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-mls6alda/retrieve.ok b/.scheduler-memory/session-mls6alda/retrieve.ok new file mode 100644 index 0000000..84b1719 --- /dev/null +++ b/.scheduler-memory/session-mls6alda/retrieve.ok @@ -0,0 +1 @@ +MEMORY_RETRIEVED diff --git a/.scheduler-memory/session-mls6alf7/store.json b/.scheduler-memory/session-mls6alf7/store.json new file mode 100644 index 0000000..8de5094 --- /dev/null +++ b/.scheduler-memory/session-mls6alf7/store.json @@ -0,0 +1,20 @@ +{ + "cadence": "weekly", + "operation": "store", + "runId": "session-mls6alf7", + "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-mls6alf7/store.ok b/.scheduler-memory/session-mls6alf7/store.ok new file mode 100644 index 0000000..1e40bb6 --- /dev/null +++ b/.scheduler-memory/session-mls6alf7/store.ok @@ -0,0 +1 @@ +MEMORY_STORED diff --git a/artifacts/fuzz-report-lock-event-20260218.json b/artifacts/fuzz-report-lock-event-20260218.json new file mode 100644 index 0000000..63d16c4 --- /dev/null +++ b/artifacts/fuzz-report-lock-event-20260218.json @@ -0,0 +1,6 @@ +{ + "target": "parseLockEvent", + "seed": 12345, + "iterations": 10000, + "failures": [] +} diff --git a/src/ops.mjs b/src/ops.mjs index 7e9fe68..541508a 100644 --- a/src/ops.mjs +++ b/src/ops.mjs @@ -152,7 +152,7 @@ function validateInstallDir(dir) { // Strict validation to prevent command injection // Only allow alphanumeric, hyphens, underscores, slashes, and periods. - if (!/^[a-zA-Z0-9_\-\/\.]+$/.test(dir)) { + if (!/^[a-zA-Z0-9_\-./]+$/.test(dir)) { throw new Error(`Invalid directory name: "${dir}". Only alphanumeric characters, hyphens, underscores, slashes, and periods are allowed.`); } } diff --git a/src/roster.mjs b/src/roster.mjs index 72f7f9b..8bdf6f3 100644 --- a/src/roster.mjs +++ b/src/roster.mjs @@ -70,7 +70,7 @@ const FALLBACK_ROSTER = { let cachedCanonicalRoster = null; -function loadCanonicalRoster(fsModule = fs) { +function loadCanonicalRoster() { if (cachedCanonicalRoster) return cachedCanonicalRoster; let rosterPath = ROSTER_FILE; @@ -120,7 +120,7 @@ export async function getRoster(cadence) { const config = await deps.loadTorchConfig(); const dailyFromEnv = parseEnvRoster(process.env.NOSTR_LOCK_DAILY_ROSTER); const weeklyFromEnv = parseEnvRoster(process.env.NOSTR_LOCK_WEEKLY_ROSTER); - const canonical = loadCanonicalRoster(fsModule); + const canonical = loadCanonicalRoster(); const dailyFromConfig = config.nostrLock.dailyRoster; const weeklyFromConfig = config.nostrLock.weeklyRoster; diff --git a/task-logs/weekly/2026-02-18T17-25-00Z__fuzz-agent__completed.md b/task-logs/weekly/2026-02-18T17-25-00Z__fuzz-agent__completed.md new file mode 100644 index 0000000..e71e405 --- /dev/null +++ b/task-logs/weekly/2026-02-18T17-25-00Z__fuzz-agent__completed.md @@ -0,0 +1,23 @@ +# Weekly Fuzz Agent Completion + +**Agent:** `fuzz-agent` +**Cadence:** `weekly` +**Status:** `completed` +**Date:** `2026-02-18` + +## Summary +Executed `scripts/agent/fuzz-lock-event.mjs` targeting `parseLockEvent`. +Ran 10,000 iterations with SEED=12345. +No failures found. + +## Artifacts +- `artifacts/fuzz-report-lock-event-20260218.json` + +## Fixes +- Fixed a bug in `src/roster.mjs` where `fsModule` was undefined. +- Fixed `test/utils.test.mjs` missing imports (`fs`, `path`, `ensureDir`). +- Fixed lint errors in `src/ops.mjs`. + +## Verification +- `npm run lint`: Passed. +- `npm run test:unit:lock-backend`: Passed. diff --git a/test/utils.test.mjs b/test/utils.test.mjs index 757d352..29f3526 100644 --- a/test/utils.test.mjs +++ b/test/utils.test.mjs @@ -1,6 +1,8 @@ import { describe, it, after } from 'node:test'; import assert from 'node:assert'; -import { getIsoWeekStr, todayDateStr, nowUnix } from '../src/utils.mjs'; +import fs from 'node:fs'; +import path from 'node:path'; +import { getIsoWeekStr, todayDateStr, nowUnix, ensureDir } from '../src/utils.mjs'; describe('Date Utilities', () => { describe('todayDateStr', () => {