Repository navigation
feat(domain): explain why an element has its status - #32
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex security review |
00d389d to
784a0b3
Compare
|
@codex security review |
blockedBy followed an element's unfinished needs whatever its own status, so an element the overlay marked done ahead of its needs, or a skipped element consuming an artefact still to be made, reported blockers. Its contract says a done or skipped element is blocked by nothing; it now returns an empty list for both.
explainStatus names the rule of the status table that decided an element's status, the incoming transitions and consumed artefacts it was decided from, and the blocked-by chain: every unfinished need reached from the element with the needs each still waits on. The derivation records this basis as it derives each status, so an explanation never re-derives it and always agrees with deriveStatuses and blockedBy, which now share one waitingOn helper.
StatusBasis is the shape the derivation records for each element, and the fields of a status explanation are drawn from it, so a consumer can name it.
784a0b3 to
9279367
Compare
|
@codex security review |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
🎉 This PR is included in version 1.1.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Adds
explainStatus(model, overlay, facts, id)to graph-domain: the rule of the status table that decided an element's status, the incoming transitions and consumed artefacts it was decided from, and the blocked-by chain (every unfinished need reached from the element, each with what it still waits on). The derivation records this basis as it derives each status, so the explanation is never a second derivation and always agrees withderiveStatusesandblockedBy.The CLI's
why <id>command (the graph-cli PR stacked on this one) is built on it, and Switchboard can serve the same explanation without the CLI.Also fixes
blockedBy, which reported blockers for an element the overlay marked done ahead of its needs, and for a skipped element consuming an artefact still to be made; its contract already said both are blocked by nothing.