Sub-project 1 (orchestrator ingests inferred edges, soft-gates dispatch — spec: `docs/superpowers/specs/2026-08-04-unified-dependency-graph-design.md`) shipped with four items explicitly deferred at final review. Recording them so they survive the merge; none block it.
M2 — inferred gating is invisible to heartbeat / LiveOps blocked counts
`cmd/itervox/heartbeat.go` (dependency summary) counts only `DependencyAudit` statuses. An issue held solely by `inferred_blocked_by:` reports "Blocked: 0" in HEARTBEAT.md and in the LiveOpsStrip dependency tile. It IS visible in issue detail (ineligible-reason string) and as Deps-tab badges — an accounting gap, not mishandling.
Defer rationale: sub-project 2 (ready-set/critical-path ordering) reworks exactly this surface; counting now would be churn.
M3 — tracker-edge row `Gating` can lag live dispatch by one audit-refresh window
`cmd/itervox/snapshot_rows.go` derives tracker-edge `Gating` from the async `DependencyAudit` rows, while dispatch checks fresh `issue.BlockedBy`. Within one refresh window the dashboard can badge an edge "gating" for an issue that already dispatched. Converges automatically; cosmetic.
Two test-coverage minors (from task reviews)
- `internal/config`: no test covers an int-typed YAML literal (`confidence_threshold: 1`). `toFloat` handles it (`case int`), verified empirically at review time — but nothing pins it.
- `toFloat` carries a `case float32` branch unreachable from yaml.v3 decoding. Dead defensive code; removal is pure churn.
Also observed during the final fix round (pre-existing, unrelated)
`TestWorkerCompletedLogHasCorrectTokenValues` (`internal/orchestrator/token_log_test.go`) flaked once under a loaded `make verify` — cross-test `slog.SetDefault` bleed, documented in that file's own comments. Reproduced clean 3/3 in isolation. Worth its own small fix (route the assertion through an injected handler instead of the global default).
🤖 Generated with Claude Code
Sub-project 1 (orchestrator ingests inferred edges, soft-gates dispatch — spec: `docs/superpowers/specs/2026-08-04-unified-dependency-graph-design.md`) shipped with four items explicitly deferred at final review. Recording them so they survive the merge; none block it.
M2 — inferred gating is invisible to heartbeat / LiveOps blocked counts
`cmd/itervox/heartbeat.go` (dependency summary) counts only `DependencyAudit` statuses. An issue held solely by `inferred_blocked_by:` reports "Blocked: 0" in HEARTBEAT.md and in the LiveOpsStrip dependency tile. It IS visible in issue detail (ineligible-reason string) and as Deps-tab badges — an accounting gap, not mishandling.
Defer rationale: sub-project 2 (ready-set/critical-path ordering) reworks exactly this surface; counting now would be churn.
M3 — tracker-edge row `Gating` can lag live dispatch by one audit-refresh window
`cmd/itervox/snapshot_rows.go` derives tracker-edge `Gating` from the async `DependencyAudit` rows, while dispatch checks fresh `issue.BlockedBy`. Within one refresh window the dashboard can badge an edge "gating" for an issue that already dispatched. Converges automatically; cosmetic.
Two test-coverage minors (from task reviews)
Also observed during the final fix round (pre-existing, unrelated)
`TestWorkerCompletedLogHasCorrectTokenValues` (`internal/orchestrator/token_log_test.go`) flaked once under a loaded `make verify` — cross-test `slog.SetDefault` bleed, documented in that file's own comments. Reproduced clean 3/3 in isolation. Worth its own small fix (route the assertion through an injected handler instead of the global default).
🤖 Generated with Claude Code