Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .seeds/issues.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -757,7 +757,7 @@
{"id":"warren-882e","title":"ratchetwatch tightening: 2026-06-16","status":"open","type":"task","priority":3,"createdAt":"2026-06-16T10:44:01.390Z","updatedAt":"2026-06-16T10:56:50.995Z","labels":["audit","ratchetwatch"],"plan_id":"pl-2b5e"}
{"id":"warren-7a15","title":"Decompose src/diagnostics/checks.test.ts (653 lines) below the 500-line global limit. Extract the shared helper captureSpawnCalls plus the imports it needs (SpawnFn from ../projects/clone.ts) into a new sibling src/diagnostics/checks.test-helpers.ts and export it; import it from each resulting test file (keep ONE copy — do NOT duplicate, or jscpd check:dups will flag it). Split the 10 top-level describe blocks along their existing seams into sibling files under src/diagnostics/ so every resulting file is < 500 lines: keep checks.test.ts for checkBwrap/checkCanopyClone/checkCanopyClean; create checks.config.test.ts for checkWarrenConfig/checkWarrenConfigDeprecations/checkWarrenDb/checkDatabaseReachable; create checks.preview.test.ts for checkPreviewPortAllocator/checkPreviewMaxLive/checkPreviewAuthStrength. Each file imports the checks under test from ./checks.ts and the shared helper from ./checks.test-helpers.ts. Do not alter any test body or assertion. Verify: each of `wc -l src/diagnostics/checks.test.ts src/diagnostics/checks.config.test.ts src/diagnostics/checks.preview.test.ts src/diagnostics/checks.test-helpers.ts` shows < 500 AND `bun test src/diagnostics/checks.test.ts src/diagnostics/checks.config.test.ts src/diagnostics/checks.preview.test.ts` reports 53 pass / 0 fail (same total as before) AND `bun run typecheck` is clean AND `bun run check:dups` exits 0.","status":"closed","type":"task","priority":2,"plan_step_index":0,"description":"<!-- seeds:plan-backref:start -->\nStep 1 of plan pl-2b5e.\n\nParent seed: warren-882e — ratchetwatch tightening: 2026-06-16\nPlan template: refactor\nPlan approach: Split src/diagnostics/checks.test.ts (653 lines, 10 top-level describe blocks, 53 tests) along its existing describe seams into sibling test files under src/diagnostics/, each comfortably under the 500-line threshold. Hoist the single…\n\nRun `sd plan show pl-2b5e` for the full plan (context, alternatives, sibling steps, acceptance criteria).\n<!-- seeds:plan-backref:end -->","createdAt":"2026-06-16T10:44:38.043Z","updatedAt":"2026-06-16T10:52:14.841Z","labels":["ratchetwatch"],"plan_id":"pl-2b5e","blocks":["warren-2c73","warren-882e"],"extensions":{"role":"pi","lastRunId":"run_h8cb2nadsngr","lastRunAt":"2026-06-16T10:46:58.027Z"},"closedAt":"2026-06-16T10:52:14.841Z"}
{"id":"warren-2c73","title":"Remove the \"src/diagnostics/checks.test.ts\": 653 entry from scripts/file-size-budgets.json (delete that single line). Do NOT add budget entries for the new sibling files (checks.config.test.ts, checks.preview.test.ts, checks.test-helpers.ts) — they must default-pass under the 500-line threshold (confirm `wc -l` for each shows < 500). Per docs/CONSTITUTION.md Article VI, before declaring done run a repo-wide search for the old path across ALL file types — `grep -rn \"diagnostics/checks.test\" --include='*' . | grep -v node_modules` (or `git grep -n \"diagnostics/checks.test\"`) PLUS an explicit sweep of Dockerfile, docker-compose.yml, .github/workflows/*.yml, src/supervisor/ spawn/config strings, scripts/acceptance/, and docs/ — and fix any stale reference (file moves have broken production here before; encode the check, do not assume it). Verify: `bun run check:size` exits 0 AND `bun run check:all` is fully green (every gate stays green; the removed entry leaves all resulting files default-passing under the 500-line threshold).","status":"closed","type":"task","priority":2,"plan_step_index":1,"description":"<!-- seeds:plan-backref:start -->\nStep 2 of plan pl-2b5e.\n\nParent seed: warren-882e — ratchetwatch tightening: 2026-06-16\nPlan template: refactor\nPlan approach: Split src/diagnostics/checks.test.ts (653 lines, 10 top-level describe blocks, 53 tests) along its existing describe seams into sibling test files under src/diagnostics/, each comfortably under the 500-line threshold. Hoist the single…\n\nRun `sd plan show pl-2b5e` for the full plan (context, alternatives, sibling steps, acceptance criteria).\n<!-- seeds:plan-backref:end -->","createdAt":"2026-06-16T10:44:38.043Z","updatedAt":"2026-06-16T10:56:50.995Z","labels":["ratchetwatch"],"plan_id":"pl-2b5e","blocks":["warren-882e"],"closedAt":"2026-06-16T10:56:50.995Z"}
{"id":"warren-1c0d","title":"ratchetwatch tightening: 2026-06-17","status":"open","type":"task","priority":3,"createdAt":"2026-06-17T10:45:50.559Z","updatedAt":"2026-06-17T10:46:21.709Z","description":"Per docs/CONSTITUTION.md Article II (ratchets only tighten). Patrol 2026-06-17 measurements:\n- Coverage: functions 88.96% (floor 88.60%, slack 0.36pt), lines 91.74% (floor 91.54%, slack 0.20pt) — both under the 0.75pt threshold; no floor raise.\n- Bundle: net +460 B gzip JS over trailing 7d (raises summed ~2.6KB); under ~20KB; no finding.\n- Debt-marker allowlist: empty (last touched 2026-05-27); no finding.\n- File-size grandfather list: no entry has dropped below the 500-line global limit (no removals); no new entry in last 24h (only removal of checks.test.ts in 4e157b16). bridge.test.ts grandfather-at-birth already tracked (warren-889a).\n- Decomposition (one per patrol): src/server/handlers/plot-plan-runs.test.ts at 640 lines is the furthest-over grandfathered file NOT already covered by an open seed (pr.ts 659 is covered by warren-db9a/warren-70d7). Plan below decomposes it and removes its budget entry.","labels":["audit","ratchetwatch"],"plan_id":"pl-7c4f","blockedBy":["warren-59db","warren-e304"]}
{"id":"warren-59db","title":"Decompose src/server/handlers/plot-plan-runs.test.ts (640 lines, furthest-over grandfathered file not under an open seed) below the 500-line global limit. Extract the file-local helper/fixture group into a new sibling src/server/handlers/plot-plan-runs.test-helpers.ts and export each symbol: silentLogger, stubFetch, jsonRes, poolFor, makeSdSpawn, planShowResult, seedShowResult, makeAttachment, makePlotReader, makePlotResolver, makeSynthesizer, depsFor, tcpUrl, plus their helper-local types (SdCall, SynthesizeCall, BuildDepsInput). Carry the imports those helpers need into the helpers file (Attachment from @os-eco/plot-cli, BurrowClient/BurrowClientPool, openDatabase/WarrenDb, createRepos/Repos, ProjectRow, the plan-run/plot/synthesizer types, SpawnFn/SpawnOptions/SpawnResult, RunEventBroker, NO_AUTH, createBridgeRegistry, startServer, server types). Keep ONE copy of every helper and import it — do NOT duplicate, or jscpd check:dups will flag it. Split the 9 tests in the single describe(\"POST /plot-plan-runs\") block along theme seams into two sibling test files, each importing from ./plot-plan-runs.test-helpers.ts: keep plot-plan-runs.test.ts for the happy-path + filter tests ('happy path: synthesizes plan + persists plan-run + emits Plot dispatch event' and 'filters closed seeds + sd_plan attachments before synthesis'); create plot-plan-runs.validation.test.ts for the 7 validation/error tests (malformed plot_id 400, no .plot/ 400, no .seeds/ 400, plot_id not in project 400, zero dispatchable attachments 400, 404 project missing, synthesizer error 500). Do not alter any test body, assertion, stub, or fixture. Mirror the precedent of src/diagnostics/checks.test-helpers.ts (warren-7a15) and src/server/handlers/projects.test-helpers.ts (warren-a715). Verify: each of `wc -l src/server/handlers/plot-plan-runs.test.ts src/server/handlers/plot-plan-runs.validation.test.ts src/server/handlers/plot-plan-runs.test-helpers.ts` shows < 500 AND `bun test src/server/handlers/plot-plan-runs.test.ts src/server/handlers/plot-plan-runs.validation.test.ts` reports 9 pass / 0 fail (same total as before) AND `bun run typecheck` is clean AND `bun run check:dups` exits 0.","status":"open","type":"task","priority":2,"plan_step_index":0,"description":"<!-- seeds:plan-backref:start -->\nStep 1 of plan pl-7c4f.\n\nParent seed: warren-1c0d — ratchetwatch tightening: 2026-06-17\nPlan template: refactor\nPlan approach: Extract the file-local helper/fixture block (the ~16 helpers spanning silentLogger, stubFetch, jsonRes, poolFor, makeSdSpawn, planShowResult, seedShowResult, makeAttachment, makePlotReader, makePlotResolver, makeSynthesizer, depsFor,…\n\nRun `sd plan show pl-7c4f` for the full plan (context, alternatives, sibling steps, acceptance criteria).\n<!-- seeds:plan-backref:end -->","createdAt":"2026-06-17T10:46:21.709Z","updatedAt":"2026-06-17T10:46:21.709Z","labels":["ratchetwatch"],"plan_id":"pl-7c4f","blocks":["warren-e304","warren-1c0d"]}
{"id":"warren-e304","title":"Remove the \"src/server/handlers/plot-plan-runs.test.ts\": 640 entry from scripts/file-size-budgets.json (delete that single line). Do NOT add budget entries for the new sibling files (plot-plan-runs.validation.test.ts, plot-plan-runs.test-helpers.ts) — they must default-pass under the 500-line threshold (confirm `wc -l` for each shows < 500). Per docs/CONSTITUTION.md Article VI, before declaring done run a repo-wide search for the old path across ALL file types — `rg -n \"plot-plan-runs.test\" --hidden -g '!node_modules' .` (or `git grep -n \"plot-plan-runs.test\"`) PLUS an explicit sweep of Dockerfile, docker-compose.yml, .github/workflows/*.yml, src/supervisor/ spawn/config strings, scripts/acceptance/, and docs/ — and fix any stale reference (file moves have broken production here before; encode the check, do not assume it). Verify: `bun run check:size` exits 0 AND `bun run check:all` is fully green (every gate stays green; the removed entry leaves all resulting files default-passing under the 500-line threshold).","status":"open","type":"task","priority":2,"plan_step_index":1,"description":"<!-- seeds:plan-backref:start -->\nStep 2 of plan pl-7c4f.\n\nParent seed: warren-1c0d — ratchetwatch tightening: 2026-06-17\nPlan template: refactor\nPlan approach: Extract the file-local helper/fixture block (the ~16 helpers spanning silentLogger, stubFetch, jsonRes, poolFor, makeSdSpawn, planShowResult, seedShowResult, makeAttachment, makePlotReader, makePlotResolver, makeSynthesizer, depsFor,…\n\nRun `sd plan show pl-7c4f` for the full plan (context, alternatives, sibling steps, acceptance criteria).\n<!-- seeds:plan-backref:end -->","createdAt":"2026-06-17T10:46:21.709Z","updatedAt":"2026-06-17T10:46:21.709Z","labels":["ratchetwatch"],"plan_id":"pl-7c4f","blockedBy":["warren-59db"],"blocks":["warren-1c0d"]}
{"id":"warren-1c0d","title":"ratchetwatch tightening: 2026-06-17","status":"open","type":"task","priority":3,"createdAt":"2026-06-17T10:45:50.559Z","updatedAt":"2026-06-17T10:54:35.710Z","description":"Per docs/CONSTITUTION.md Article II (ratchets only tighten). Patrol 2026-06-17 measurements:\n- Coverage: functions 88.96% (floor 88.60%, slack 0.36pt), lines 91.74% (floor 91.54%, slack 0.20pt) — both under the 0.75pt threshold; no floor raise.\n- Bundle: net +460 B gzip JS over trailing 7d (raises summed ~2.6KB); under ~20KB; no finding.\n- Debt-marker allowlist: empty (last touched 2026-05-27); no finding.\n- File-size grandfather list: no entry has dropped below the 500-line global limit (no removals); no new entry in last 24h (only removal of checks.test.ts in 4e157b16). bridge.test.ts grandfather-at-birth already tracked (warren-889a).\n- Decomposition (one per patrol): src/server/handlers/plot-plan-runs.test.ts at 640 lines is the furthest-over grandfathered file NOT already covered by an open seed (pr.ts 659 is covered by warren-db9a/warren-70d7). Plan below decomposes it and removes its budget entry.","labels":["audit","ratchetwatch"],"plan_id":"pl-7c4f","blockedBy":["warren-e304"]}
{"id":"warren-59db","title":"Decompose src/server/handlers/plot-plan-runs.test.ts (640 lines, furthest-over grandfathered file not under an open seed) below the 500-line global limit. Extract the file-local helper/fixture group into a new sibling src/server/handlers/plot-plan-runs.test-helpers.ts and export each symbol: silentLogger, stubFetch, jsonRes, poolFor, makeSdSpawn, planShowResult, seedShowResult, makeAttachment, makePlotReader, makePlotResolver, makeSynthesizer, depsFor, tcpUrl, plus their helper-local types (SdCall, SynthesizeCall, BuildDepsInput). Carry the imports those helpers need into the helpers file (Attachment from @os-eco/plot-cli, BurrowClient/BurrowClientPool, openDatabase/WarrenDb, createRepos/Repos, ProjectRow, the plan-run/plot/synthesizer types, SpawnFn/SpawnOptions/SpawnResult, RunEventBroker, NO_AUTH, createBridgeRegistry, startServer, server types). Keep ONE copy of every helper and import it — do NOT duplicate, or jscpd check:dups will flag it. Split the 9 tests in the single describe(\"POST /plot-plan-runs\") block along theme seams into two sibling test files, each importing from ./plot-plan-runs.test-helpers.ts: keep plot-plan-runs.test.ts for the happy-path + filter tests ('happy path: synthesizes plan + persists plan-run + emits Plot dispatch event' and 'filters closed seeds + sd_plan attachments before synthesis'); create plot-plan-runs.validation.test.ts for the 7 validation/error tests (malformed plot_id 400, no .plot/ 400, no .seeds/ 400, plot_id not in project 400, zero dispatchable attachments 400, 404 project missing, synthesizer error 500). Do not alter any test body, assertion, stub, or fixture. Mirror the precedent of src/diagnostics/checks.test-helpers.ts (warren-7a15) and src/server/handlers/projects.test-helpers.ts (warren-a715). Verify: each of `wc -l src/server/handlers/plot-plan-runs.test.ts src/server/handlers/plot-plan-runs.validation.test.ts src/server/handlers/plot-plan-runs.test-helpers.ts` shows < 500 AND `bun test src/server/handlers/plot-plan-runs.test.ts src/server/handlers/plot-plan-runs.validation.test.ts` reports 9 pass / 0 fail (same total as before) AND `bun run typecheck` is clean AND `bun run check:dups` exits 0.","status":"closed","type":"task","priority":2,"plan_step_index":0,"description":"<!-- seeds:plan-backref:start -->\nStep 1 of plan pl-7c4f.\n\nParent seed: warren-1c0d — ratchetwatch tightening: 2026-06-17\nPlan template: refactor\nPlan approach: Extract the file-local helper/fixture block (the ~16 helpers spanning silentLogger, stubFetch, jsonRes, poolFor, makeSdSpawn, planShowResult, seedShowResult, makeAttachment, makePlotReader, makePlotResolver, makeSynthesizer, depsFor,…\n\nRun `sd plan show pl-7c4f` for the full plan (context, alternatives, sibling steps, acceptance criteria).\n<!-- seeds:plan-backref:end -->","createdAt":"2026-06-17T10:46:21.709Z","updatedAt":"2026-06-17T10:54:35.710Z","labels":["ratchetwatch"],"plan_id":"pl-7c4f","blocks":["warren-e304","warren-1c0d"],"extensions":{"role":"pi","lastRunId":"run_gwekz26ek6vm","lastRunAt":"2026-06-17T10:49:16.505Z"},"closedAt":"2026-06-17T10:54:35.710Z"}
{"id":"warren-e304","title":"Remove the \"src/server/handlers/plot-plan-runs.test.ts\": 640 entry from scripts/file-size-budgets.json (delete that single line). Do NOT add budget entries for the new sibling files (plot-plan-runs.validation.test.ts, plot-plan-runs.test-helpers.ts) — they must default-pass under the 500-line threshold (confirm `wc -l` for each shows < 500). Per docs/CONSTITUTION.md Article VI, before declaring done run a repo-wide search for the old path across ALL file types — `rg -n \"plot-plan-runs.test\" --hidden -g '!node_modules' .` (or `git grep -n \"plot-plan-runs.test\"`) PLUS an explicit sweep of Dockerfile, docker-compose.yml, .github/workflows/*.yml, src/supervisor/ spawn/config strings, scripts/acceptance/, and docs/ — and fix any stale reference (file moves have broken production here before; encode the check, do not assume it). Verify: `bun run check:size` exits 0 AND `bun run check:all` is fully green (every gate stays green; the removed entry leaves all resulting files default-passing under the 500-line threshold).","status":"open","type":"task","priority":2,"plan_step_index":1,"description":"<!-- seeds:plan-backref:start -->\nStep 2 of plan pl-7c4f.\n\nParent seed: warren-1c0d — ratchetwatch tightening: 2026-06-17\nPlan template: refactor\nPlan approach: Extract the file-local helper/fixture block (the ~16 helpers spanning silentLogger, stubFetch, jsonRes, poolFor, makeSdSpawn, planShowResult, seedShowResult, makeAttachment, makePlotReader, makePlotResolver, makeSynthesizer, depsFor,…\n\nRun `sd plan show pl-7c4f` for the full plan (context, alternatives, sibling steps, acceptance criteria).\n<!-- seeds:plan-backref:end -->","createdAt":"2026-06-17T10:46:21.709Z","updatedAt":"2026-06-17T10:54:35.710Z","labels":["ratchetwatch"],"plan_id":"pl-7c4f","blocks":["warren-1c0d"]}
{"id":"warren-f248","title":"Auditor sandboxes lack WARREN_API_TOKEN — warden-conversation delivery (POST /conversations/:id/messages) returns 401 for gatewatch/ratchetwatch/tastewatch","status":"open","type":"bug","priority":2,"createdAt":"2026-06-17T10:47:09.663Z","updatedAt":"2026-06-17T10:47:09.663Z","description":"Evidence (ratchetwatch patrol 2026-06-17):\n- The warren API is reachable from the auditor burrow at http://localhost:8080 (e.g. GET/POST /conversations responds), but every request returns: {\"error\":{\"code\":\"unauthorized\",\"message\":\"missing Authorization header\"}}.\n- src/server/auth.ts requires a bearer token from WARREN_API_TOKEN; that env var is NOT present in the auditor sandbox (env shows only ANTHROPIC_API_KEY and WARREN_QUALITY_GATE). No token file is mounted (~/.warren absent; /data unreadable; no *.token anywhere outside node_modules).\n- Result: the operating contract added by warren-7f62 (post each finding to the standing 'Audit Warden' conversation over POST /conversations/:id/messages, 202 steering channel) cannot be fulfilled by ANY auditor — gatewatch, ratchetwatch, tastewatch — because they cannot authenticate or even resolve the conversation id (GET /conversations is also 401-gated).\n- This is a runtime/provisioning gap, not a prompt gap: warren-7f62 wired the prompts but the auditor runs are not given a credential (or a loopback no-auth exemption, or a pre-resolved conversation id) to reach the channel.\nSuggested fix directions (for a human/operator to choose): inject a scoped WARREN_API_TOKEN into auditor burrow env via composeRunEnv, OR expose a loopback no-auth path for the conversation-message endpoint, OR pass the resolved warden conversation id + token through the rendered agent context. Until then, auditors file seeds/plans correctly (this patrol filed warren-1c0d + plan pl-7c4f) but the warden transcript stays empty.","labels":["audit","warden"]}
Loading