mirror of
https://github.com/coder/coder.git
synced 2026-10-16 14:48:56 +08:00
feat(agent): add outcome-aware unit dependencies Extend the unit manager for declarative script ordering without changing existing status dependencies or `coder exp sync` behavior. - Add a separate conditional dependency graph with `success` and `completion` requirements, outcome tracking, and runnable, skipped, or waiting decisions. - Failed, timed-out, or skipped prerequisites skip `success` dependents but satisfy `completion`. Canceled or unregistered prerequisites keep dependents waiting. - Add context-cancelable waiting with no built-in timeout and sorted unmet prerequisites for logging. Callers remain responsible for recording skips. - Enforce immutable final outcomes, reject cycles and conflicting edge requirements, and accept identical duplicate edges. - Add race-tested coverage for outcome semantics, validation, graph isolation, cancellation, and concurrent waiters. No callers yet; script-runner integration follows in PLAT-549. Refs PLAT-546.