# Live Report Synchronization

audience: AI coding agents first.

status: ACTIVE
worker: bounded worker in `/home/user/Projects/overdeck/.worktrees/live-report-integrate`
task IDs: #90, #125, #146
source request: Keep `/home/user/.local/share/overdeck/reports/2026-08-08-session-report.html` synchronized after every transition; owner needs one honest live view. Current request: implement the smallest robust automatic regeneration hooks for land, deploy, dispatch verdict, and incident transitions; run focused tests plus collector typecheck; commit locally without push or deploy.

## Outcome

Report is generated from authoritative events/plan receipts, not manually drifting prose, and reflects every installed transition, blocker, and active worker.

## Preserved progress

- Report exists and was manually refreshed during recovery.
- It records many prior incidents and candidate refs.
- Current report predates plan-registry, latest offload proof, stopped k3s worker, and registry reconciliation.
- Manual editing is transitional; deterministic generator now lives in `collector/src/live-report/` and `collector/scripts/generate-live-report.ts`.

## Acceptance criteria

- Every ACTIVE plan/worker and current blocker appears.
- Installed/runtime claims match receipts.
- Regeneration is deterministic from durable sources.
- Refresh occurs automatically on land/deploy/dispatch verdict/incident.

## Execution steps

1. Refresh current report from plan index and receipts.
2. Locate existing report generator/event schema.
3. Make index/receipts authoritative inputs.
4. Trigger regeneration on real transitions.
5. Browser-prove output.

## Current receipt

- Generator implemented: `od-live-report` / `bun run collector/scripts/generate-live-report.ts`.
- Authoritative inputs: `docs/plans/INDEX.md`, per-plan `## Current receipt`, optional `~/.local/state/agent-sessions`.
- Regenerated on harness seat `2026-08-10T05:58:00Z` at `/seat-home/.local/share/overdeck/reports/2026-08-08-session-report.html` (owner path `/home/user/.local/share/overdeck/reports/...` not writable on this seat).
- Surfaces 5 ACTIVE workers, 1 BLOCKED plan, and Flow-First index/file status mismatch.
- `bun test collector/src/live-report/` → 3/3 pass.
- Automatic refresh hooks added after successful land, deploy, remote dispatch verdict, and incident resolution. Refresh failure is reported but never rewrites the completed transition verdict.
- Verification: hook test 1/1, incident CLI 10/10, remote dispatch 16/16, live-report 3/3, collector typecheck clean.
- The installed helper failed after a successful Press.zone landing: the lexical `/home/user/.claude/bin/od-live-report` path traversed to `/`, yielding `//collector/scripts/generate-live-report.ts`, although the deployed generator exists at `/home/user/.local/share/overdeck/deploy/collector/scripts/generate-live-report.ts`. This is a path-resolution fault in the installed helper, not a plugin deployment fault. Source repair `bc682d2a90a0de3c72da665edd171fbb19a17822` now resolves the physical script path with `readlink -f`; direct and symlinked deployed-style regression coverage passes. Pre-land installation was correctly refused: `deckctl sync apply claude bin` accepts deploy-sourced `claude:bin` only from the deploy clone, preventing unlanded source from altering runtime. Land and the repository deployment procedure must install it before entrypoint proof.

## Next executable action

Repair `modules/workstation/claude/bin/od-live-report` so it derives its root from the physical resolved script path, add direct and symlink invocation coverage, install the repaired helper, invoke the installed entrypoint successfully, then land and deploy the source change.
