diff --git a/.gemini/launchd/com.zeta.backlog-ready-notifier.plist b/.gemini/launchd/com.zeta.backlog-ready-notifier.plist index a3e8433a7..74e00a09e 100644 --- a/.gemini/launchd/com.zeta.backlog-ready-notifier.plist +++ b/.gemini/launchd/com.zeta.backlog-ready-notifier.plist @@ -4,7 +4,7 @@ Labelcom.zeta.backlog-ready-notifier + Update these paths manually for your local machine before running `launchctl load`. --> ProgramArguments /opt/homebrew/bin/bun /Users/acehack/Documents/src/repos/Zeta/tools/bg/backlog-ready-notifier.ts diff --git a/docs/backlog/P1/B-0441-backlog-row-ready-to-grind-notifier-background-service-2026-05-13.md b/docs/backlog/P1/B-0441-backlog-row-ready-to-grind-notifier-background-service-2026-05-13.md index db5ca8a95..3e2966a46 100644 --- a/docs/backlog/P1/B-0441-backlog-row-ready-to-grind-notifier-background-service-2026-05-13.md +++ b/docs/backlog/P1/B-0441-backlog-row-ready-to-grind-notifier-background-service-2026-05-13.md @@ -53,7 +53,7 @@ provides a less-ambiguous concrete claim — eliminating the - [ ] Tracks assignment history to avoid re-assigning same row within short window - [ ] Tests cover the readiness-detection heuristics -- [ ] Documented in `docs/AUTONOMOUS-LOOP.md` +- [x] Documented in `docs/AUTONOMOUS-LOOP.md` ## Design sketch @@ -169,9 +169,9 @@ Using the canonical per-service slice ordering from `tools/bg/README.md`: | 2 | Real detection signal #1 (backlog-row scan: status + deps satisfied) | ✅ shipped | — | | 3 | Queue-state guard wiring (`isAgentQueueEmpty` into `pollOnce`) | ✅ shipped | B-0500 | | 4 | Bus-publish wiring (`work-assignment` topic) | ✅ shipped | — | -| 5a | Assignment history dedup / cooldown (avoid re-assigning same row) | ❌ open | B-0501 | +| 5a | Assignment history dedup / cooldown (avoid re-assigning same row) | ✅ shipped | B-0501 | | 5.2 | Agent-side `work-assignment` subscriber handler (consume + act) | ❌ open | B-0460 | -| 6 | launchd plist + `docs/AUTONOMOUS-LOOP.md` wiring | ❌ open | B-0502 | +| 6 | launchd plist + `docs/AUTONOMOUS-LOOP.md` wiring | ✅ shipped | B-0502 | Slices 1, 2, 4 are live in `tools/bg/backlog-ready-notifier.ts` (per README "1+2+4 live"). B-0460 depends on B-0449 (subscriber library design pass); B-0500/B-0501/B-0502 are independent. diff --git a/docs/backlog/P1/B-0502-b0441-slice-6-launchd-plist-autonomous-loop-docs-2026-05-14.md b/docs/backlog/P1/B-0502-b0441-slice-6-launchd-plist-autonomous-loop-docs-2026-05-14.md index 46b1c58b8..9b08994ed 100644 --- a/docs/backlog/P1/B-0502-b0441-slice-6-launchd-plist-autonomous-loop-docs-2026-05-14.md +++ b/docs/backlog/P1/B-0502-b0441-slice-6-launchd-plist-autonomous-loop-docs-2026-05-14.md @@ -1,7 +1,7 @@ --- id: B-0502 priority: P1 -status: in-progress +status: shipped title: "B-0441 slice 6 — launchd plist for backlog-ready-notifier + AUTONOMOUS-LOOP.md update" tier: factory-infrastructure effort: XS @@ -35,7 +35,7 @@ covers the same gap for `standing-by-detector.ts`. ## Acceptance criteria -- [ ] `.gemini/launchd/com.zeta.backlog-ready-notifier.plist` created; follows the +- [x] `.gemini/launchd/com.zeta.backlog-ready-notifier.plist` created; follows the established pattern from `.gemini/launchd/com.zeta.missed-substrate-detector.plist`: - `Label`: `com.zeta.backlog-ready-notifier` - `ProgramArguments`: @@ -50,14 +50,14 @@ covers the same gap for `standing-by-detector.ts`. - `WorkingDirectory`: repo root (`/Users/acehack/Documents/src/repos/Zeta`) - Maintainer-note comment: paths are machine-specific (`/Users/acehack`, `/opt/homebrew`); update before `launchctl load` -- [ ] `docs/AUTONOMOUS-LOOP.md` §"Related artifacts" updated: +- [x] `docs/AUTONOMOUS-LOOP.md` §"Related artifacts" updated: - `backlog-ready-notifier.ts` listed as launchd-registered alongside `missed-substrate-detector.ts` (remove from "not yet wired to launchd" list) - Add note: "produces `work-assignment` bus envelopes; see B-0460 for the subscriber handler that consumes them" -- [ ] B-0441 acceptance criterion #2 ("Runs under existing launchd / cron +- [x] B-0441 acceptance criterion #2 ("Runs under existing launchd / cron infrastructure") ticked on the parent row -- [ ] `tools/bg/README.md` §"Current services" table updated: slice status for +- [x] `tools/bg/README.md` §"Current services" table updated: slice status for `backlog-ready-notifier.ts` changed from `1+2+4 live` to `1+2+3+4+6 live` (after B-0500 lands; if B-0500 is not yet merged, note it separately) diff --git a/tools/bg/README.md b/tools/bg/README.md index 92af23015..522e9dc20 100644 --- a/tools/bg/README.md +++ b/tools/bg/README.md @@ -29,7 +29,7 @@ so future readers don't overclaim. | Service | File | Slice status | Detection signal | Bus topic | |---------|------|--------------|------------------|-----------| | Standing-by detector | `standing-by-detector.ts` | 1+2+3+4 live | commit-history (HEAD) + PR-activity (repo) via `gh`/`git` | `infinite-backlog-nudge` | -| Backlog-ready notifier | `backlog-ready-notifier.ts` | 1+2+4+6 live (slice 3 pending B-0500) | backlog-row scan (status + deps satisfied) | `work-assignment` | +| Backlog-ready notifier | `backlog-ready-notifier.ts` | 1+2+3+4+5a+6 live (5.2 pending B-0460) | backlog-row scan (status + deps satisfied) | `work-assignment` | | Missed-substrate detector | `missed-substrate-detector.ts` | 1+2+3+4+5 live | merged-PR fetch via `gh`; real branch-vs-squash compare via `gh pr view --json headRefOid` + `git log ..origin/` (slice 3 landed 2026-05-13); auto-recovery via `--auto-recover` / `--recovery-dry-run` flags (slice 5 landed 2026-05-15) | `missed-substrate-cascade` | | Missed-substrate recovery (helper) | `missed-substrate-recovery.ts` | core function + adapter contract shipped 2026-05-15 (B-0503); wired into detector via `REAL_RECOVERY_ADAPTERS` (B-0504) | n/a (invoked by detector when `--auto-recover` set) | n/a (opens recovery PR directly via `gh pr create`) |