Regression coverage for conditional action dependency manifests (3.14.5) - #387
Draft
leynos wants to merge 23 commits into
Draft
Regression coverage for conditional action dependency manifests (3.14.5)#387leynos wants to merge 23 commits into
leynos wants to merge 23 commits into
Conversation
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Your free Security trial is over. An organization admin can activate Security or dismiss this notice. Comment |
lodyai
Bot
force-pushed
the
3-14-5-regression-coverage-for-conditional-action-dependency-manifests
branch
from
July 28, 2026 21:57
f4e21b1 to
d591a6d
Compare
leynos
force-pushed
the
3-14-5-regression-coverage-for-conditional-action-dependency-manifests
branch
from
August 14, 2026 21:59
87a0993 to
cbad3ac
Compare
leynos
force-pushed
the
3-14-5-regression-coverage-for-conditional-action-dependency-manifests
branch
from
August 16, 2026 22:25
cbad3ac to
a857fde
Compare
….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.
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.
Rebuild `Cargo.lock` from the rebased manifests and preserve the existing time-offset contract against the updated dependency set. Update affected rendered-boolean assertions and apply the current Rust lint policy, including capability-scoped fixture filesystem access, so the rebased branch remains fully validated.
Retain the current development dependency declarations, regenerate `Cargo.lock`, and make the resulting test diagnostics compatible with the current lint rules.
Cover the minimal and duplicate-rule fixtures through one shared test so their expected graph cardinalities remain explicit and consistent.
Regenerate `Cargo.lock` from the merged manifest and keep the refreshed toolchain's diagnostic assertions lint-clean.
Keep the real-Ninja regression workflow intact while isolating workspace, command, selection, timestamp, and no-op responsibilities.
Regenerate `Cargo.lock` from the merged manifest and retain `main`'s Unix-only policy for native Ninja execution while preserving the conditional dependency regression coverage.
Use the path display representation in the upstream ladder assertion so the target's strict Clippy configuration accepts the rebased test suite.
Preserve the existing UTF-8 conversion context while rendering invalid temporary paths with their display representation for strict Clippy.
Regenerate `Cargo.lock` from the merged manifest and update the upstream runner test diagnostic for the target branch's strict Clippy policy.
Format non-UTF-8 temporary paths through `Display` and compile the executable-permission helper only where the test needs it.
Rebuild the dependency lockfile from the main-side manifest after the rebase so it records the current compatible resolver output.
leynos
force-pushed
the
3-14-5-regression-coverage-for-conditional-action-dependency-manifests
branch
from
August 29, 2026 11:55
96fbbf8 to
63ddd89
Compare
Owner
Author
|
@coderabbitai Please investigate the cause of the following issue using codegraph exploration and research, identify a fix and provide an AI coding agent prompt for the fix: https://github.com/leynos/netsuke/actions/runs/33251236690/job/99097151318?pr=387 |
This comment was marked as resolved.
This comment was marked as resolved.
Expect MiniJinja's rendered Boolean spelling while retaining the assertion that the excluded command is unavailable.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.5Summary by Sourcery
Add comprehensive regression coverage and documentation for conditional action dependency manifests without changing production behaviour.
Enhancements:
when/foreach, real command-availability resolution, and selection-time purity.Build:
Documentation:
Tests:
Chores: