Parent
#4
What to build
A batch of small, individually-below-the-bar follow-ups from the #4 branch review. Each should be resolved or explicitly declined in the PR.
- Adjacency duplication: the scheduler rebuilds dependents/in-degree from the workflow, duplicating the graph walk the ordering layer already performs (and calls), and its raw
len(needs) omits the ordering layer's known-reference filter. Extract one shared adjacency helper so the kernel's graph topology has a single definition.
record_node_skipped robustness: it is a bare INSERT with no conflict handling; skip-safety lives entirely in the scheduler's seen-sets. A future resume/retry caller skipping a node that already has a row would raise an unhandled integrity error. Make the store path defensive (or document the precondition).
- Test cleanups: the peak-concurrency test hand-rolls an O_EXCL mkdir mutex + counter files with a sleep window (timing/portability flake risk) where the barrier-based tests already prove the contract both ways; and two concurrency tests inline raw workflow dicts because the shared
shell_workflow helper cannot set concurrency — extend the helper and dedupe.
- definition_checksum includes concurrency: decide whether a pure scheduling knob belongs in the checksummed definition-of-work (same family as the earlier "checksum is version-internal" finding; no current consumer reads it back). Record the decision.
Acceptance criteria
Blocked by
None - can start immediately
Parent
#4
What to build
A batch of small, individually-below-the-bar follow-ups from the #4 branch review. Each should be resolved or explicitly declined in the PR.
len(needs)omits the ordering layer's known-reference filter. Extract one shared adjacency helper so the kernel's graph topology has a single definition.record_node_skippedrobustness: it is a bare INSERT with no conflict handling; skip-safety lives entirely in the scheduler's seen-sets. A future resume/retry caller skipping a node that already has a row would raise an unhandled integrity error. Make the store path defensive (or document the precondition).shell_workflowhelper cannot set concurrency — extend the helper and dedupe.Acceptance criteria
_started, with a regression test.Blocked by
None - can start immediately