Skip to content

fix(planner): preserve unavailable all-target plans - #411

Merged
szmyty merged 2 commits into
mainfrom
fix/all-clean-host-fallback-410
Sep 15, 2026
Merged

szmyty merged 2 commits into
mainfrom
fix/all-clean-host-fallback-410

Conversation

@szmyty

@szmyty szmyty commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Context

Renderflow's post-#407 main run failed only test_all_without_transforms_uses_builtin_capability_registry: a clean Ubuntu host pruned every optional --all target by provider availability, then aborted before emitting the artifact-forest plan.

Changes

  • partition policy-allowed targets from provider-available targets explicitly;
  • retain unavailable-only --all branches solely to construct an inspectable dry-run plan;
  • keep those artifact-forest branches classified as unavailable;
  • preserve fail-closed execution preflight before any transform step or output;
  • make the clean-host regression deterministic with an empty PATH;
  • add pure coverage for mixed availability, zero availability, and required exact-target fallback;
  • add non-dry-run evidence for a failed run with zero steps and zero outputs;
  • correct CLI, overview, landing, and troubleshooting docs that still claimed graph planning always requires a transforms file.

Architecture impact

The planner now carries three distinct sets through resolution: requested/policy-allowed targets, provider-available targets, and pruned unavailable targets. Only provider-available targets are marked selected in the artifact forest. Unavailable targets are used as a planning fallback only when every branch is unavailable; the executor's existing provider preflight remains the authority and fails before work begins.

Provider registration, availability, policy permission, and selection remain separate claims. No schema, workflow, provider implementation, or sibling contract changed.

Pinned starting point

  • main: 1eafaf54d33a984377a7a3e327ee87382da73307
  • failing main run: https://github.com/egohygiene/renderflow/actions/runs/34775426178
  • final PR head: 9a83038fd90f82c49ddf438497445c59a116abe1
  • final tree: edbaf6c6a87fcb03e3c8cd600822dd9bbc666358
  • two commits, six focused files, zero commits behind the pinned base
  • no open Renderflow PRs at the pre-implementation check
  • dependency changes: none

Validation

All final-head hosted gates are green:

Those successful runs covered strict Clippy, build, complete Rust tests, both AUR package checks, Snap build/install, portable installer smoke, bundled dry-run and embedding examples, web format/lint/typecheck/tests/build, generated-doc/schema drift, strict MkDocs/Mike preview, and the hermetic conformance corpus.

Local validation included git diff --check and exact remote-tree comparison. This workspace does not expose a Rust toolchain, so the repository-pinned hosted jobs are the executable validation authority.

Rollout and review

The PR is intentionally unmerged. It references rather than auto-closes #410 so the issue can remain open through review, merge, and the required green resulting-main CI run. If resulting-main differs from the PR evidence, keep #410 open and investigate rather than retrying or weakening a gate.

Refs #410
Relates to #407
Relates to #367
Relates to egohygiene/flow#11

Roadmap-Step: REN-Q02

Keep --all dry runs inspectable when no providers are installed.
Retain fail-closed preflight and deterministic regression coverage.

Refs: #410
Roadmap-Step: REN-Q02
Document transform-free target discovery, unavailable dry-run branches, and fail-closed execution.

Refs: #410
Roadmap-Step: REN-Q02
@szmyty
szmyty force-pushed the fix/all-clean-host-fallback-410 branch from 7eeaa79 to 9a83038 Compare September 14, 2026 22:42
@szmyty
szmyty merged commit 170c3d5 into main Sep 15, 2026
20 checks passed
@szmyty
szmyty deleted the fix/all-clean-host-fallback-410 branch September 15, 2026 00:48
@devactivity-app

Copy link
Copy Markdown

Pull Request Summary by devActivity

Metrics

Cycle Time: 2h 41m

Achievements

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.

[CI] Fix builtin capability fallback for --all on clean hosts

1 participant