Skip to content

A planned graph is executed without ever meeting the advisory sweeps — one auto run died on exactly what LintPlaceholders already names #244

Description

@jitokim

The advisory sweeps have one production caller: cmd/oh-my-graph/lint.go:120 (warnAdvisories, calling handoff.LintPlaceholders and its siblings at :120-124). internal/coordinator/ calls none of them, so a graph the planner emits under auto is executed unswept. The omission is deliberate for run — cmd/oh-my-graph/main.go:360-363 says the whole-graph sweeps are 'the pre-flight command's job' — but under auto nobody is left to run the pre-flight. It has already cost a run: 20260820-162555.890191000-1 quoted {{ artifacts.corpus }} without declaring the matching depends_on edges, and its state.json records 'artifact not available (its producing node has not completed)' (docs/measurements/0034b-independent-lane-failure-predicate.md:192). After the fact, go run ./cmd/oh-my-graph lint on that run's graph.json emits six 'not an ancestor of this node' warnings plus one success_check warning and still exits 0 (valid) — the engine could have said this before the money was spent. The decision is whether to run the sweeps right after planning (advisory, cheap) or to refuse only references that can never resolve.

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