Regression coverage for conditional action dependency manifests (3.14.5) - #387
Regression coverage for conditional action dependency manifests (3.14.5)#387leynos wants to merge 11 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
….14.5) Draft an execution plan for roadmap item 3.14.5: regression coverage for conditional action dependency manifests. The implementation (3.14.2-3.14.4) already exists, so the plan scopes test and documentation work only. The plan was developed with a planning agent team, reviewed and revised by a community-of-experts agent team (structural, contract/correctness, alternatives/DX, and reliability/ops lenses), and cross-checked against the codebase. It covers all four roadmap sub-bullets, frames the work through the manifest-time-expansion boundary (executable-discovery vs command-execution ports), and records open questions for the approver. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update the rebased plan for the current `rstest` version and remove the upstream-resolved backup-module question. Apply repository Markdown formatting and Oxford spelling so the plan passes the current documentation gates.
f4e21b1 to
d591a6d
Compare
Add the approved googletest and pretty-assertions development dependencies. Record the successful googletest/rstest interoperability spike and the confirmed test seams in the living execution plan before implementation.
Exercise the real command resolver with deterministic present and absent tool worlds. Verify complementary branches retain exactly one action and that action-level foreach expansion removes its control fields. Record the focused sabotage evidence and implementation findings in the living ExecPlan.
Assert that absent-tool fallback selection leaves the shared impurity marker clear. Pair it with a cross-platform shell-in-when control that proves the boundary observable is live during expansion. Record the focused sabotage evidence and findings in the ExecPlan.
Add a deterministic fixture combining complementary selection, action foreach expansion, and all three dependency classes. Verify selected actions and targets lower dependencies into the correct IR fields while filtered branches contribute no paths. Document direct-path isolation and the focused sabotage evidence.
Pin Ninja emission for selected foreach actions and the selected target, including explicit, implicit, and order-only dependency syntax. Validate the generated file with real Ninja queries, a harmless build, and a deterministic no-op second pass. Record snapshot and sabotage evidence in the ExecPlan.
Add one combined BDD scenario proving a selected foreach action retains its explicit and implicit dependencies through Ninja generation. Reuse the existing IR and Ninja steps to avoid expanding the matcher surface. Mark Stage B complete and record the behavioural sabotage evidence.
Explain complementary action selection and implicit dependency behaviour for users. Record deterministic resolver tests, assertion conventions, and the existing discovery-versus-execution boundary for maintainers. Mark roadmap item 3.14.5 complete and record why no ADR is required.
Mark Stage C complete after its full gate stack and CodeRabbit review passed, leaving only final branch-wide validation and publication.
Record the final branch-wide gate results, clean CodeRabbit review, and completed roadmap status after all implementation milestones passed.
There was a problem hiding this comment.
Gates Failed
Enforce advisory code health rules
(1 file with Complex Method)
Our agent can fix these. Install it.
Gates Passed
5 Quality Gates Passed
Reason for failure
| Enforce advisory code health rules | Violations | Code Health Impact | |
|---|---|---|---|
| ninja_snapshot_tests.rs | 1 advisory rule | 10.00 → 9.69 | Suppress |
Quality Gate Profile: Pay Down Tech Debt
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.
Summary
Adds regression coverage for roadmap item 3.14.5 — conditional action
dependency manifests. The change is test-and-documentation only; production
behaviour is unchanged.
The suite now proves:
whenandforeachwork together.command_available(...)resolution selects exactly one nextest orlegacy action in deterministic present and absent tool worlds.
selection, with a shell-in-
whencontrol proving the observable is live.depslower to IRimplicit_depsandNinja
|inputs, including{{ item }}substitution and||order-onlydependencies.
Coverage spans confined in-crate googletest/rstest cases, IR integration tests,
an Insta snapshot validated with real Ninja, and one combined BDD scenario.
The users' guide, developers' guide, design document, roadmap, and living
ExecPlan have been updated.
Validation
make fmtmake markdownlintmake nixiemake check-fmtmake typecheckmake lintINSTA_UPDATE=no make testcoderabbit review --agentafter every major milestone and for the finalbranch diff: zero actionable findings
Each new regression layer also passed a targeted sabotage check that produced
the expected assertion-level failure before the production line was restored.
References
docs/execplans/3-14-5-regression-coverage-for-conditional-action-dependency-manifests.mddocs/roadmap.md§3.14.5