Skip to content

Unified dependency graph (sub-project 1): agreed deferrals from the final branch review #50

Description

@vnovick

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions