Skip to content

Regression coverage for conditional action dependency manifests (3.14.5) - #387

Draft
leynos wants to merge 11 commits into
mainfrom
3-14-5-regression-coverage-for-conditional-action-dependency-manifests
Draft

Regression coverage for conditional action dependency manifests (3.14.5)#387
leynos wants to merge 11 commits into
mainfrom
3-14-5-regression-coverage-for-conditional-action-dependency-manifests

Conversation

@leynos

@leynos leynos commented Jun 15, 2026

Copy link
Copy Markdown
Owner

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:

  1. Action-level when and foreach work together.
  2. Real command_available(...) resolution selects exactly one nextest or
    legacy action in deterministic present and absent tool worlds.
  3. Absent-command fallback performs no impure stdlib operation during
    selection, with a shell-in-when control proving the observable is live.
  4. A conditionally selected action's deps lower to IR implicit_deps and
    Ninja | inputs, including {{ item }} substitution and || order-only
    dependencies.

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 fmt
  • make markdownlint
  • make nixie
  • make check-fmt
  • make typecheck
  • make lint
  • INSTA_UPDATE=no make test
  • coderabbit review --agent after every major milestone and for the final
    branch 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

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @leynos, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 9978f81c-03d4-4992-bcd6-e35b66f5e5ce

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 3-14-5-regression-coverage-for-conditional-action-dependency-manifests

Comment @coderabbitai help to get the list of available commands.

@leynos leynos changed the title Draft execplan: regression coverage for conditional action dependency manifests (3.14.5) Plan: Regression coverage for conditional action dependency manifests (3.14.5) Jun 19, 2026
leynos and others added 2 commits July 28, 2026 23:49
….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.
@lodyai
lodyai Bot force-pushed the 3-14-5-regression-coverage-for-conditional-action-dependency-manifests branch from f4e21b1 to d591a6d Compare July 28, 2026 21:57
codescene-access[bot]

This comment was marked as outdated.

@lodyai lodyai Bot changed the title Plan: Regression coverage for conditional action dependency manifests (3.14.5) Regression coverage for conditional action dependency manifests (3.14.5) Jul 28, 2026
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.
codescene-access[bot]

This comment was marked as outdated.

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.
codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

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.
codescene-access[bot]

This comment was marked as outdated.

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.
codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

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.
codescene-access[bot]

This comment was marked as outdated.

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.
codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

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.
codescene-access[bot]

This comment was marked as outdated.

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.

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

See analysis details in CodeScene

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.

codescene-access[bot]

This comment was marked as outdated.

codescene-access[bot]

This comment was marked as outdated.

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No quality gates enabled for this code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant