From e5c5feaa8dd7fdc7ecc007cc86ade57b7ab4f327 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sun, 3 May 2026 17:32:46 -0400 Subject: [PATCH] fix(workflows): pin clippy and fmt to nightly-2026-04-14 The smoke and implement-plan workflows ran cargo clippy without a toolchain prefix, so on the Daytona snapshot they fell through to the baked-in stable toolchain. clippy.toml now uses allow-unwrap-types (added in clippy 1.95), which the stable in fabro-v7 doesn't recognize. Pin every fmt and clippy invocation to nightly-2026-04-14 so they match .github/workflows/rust.yml. Also update the public repl-handoff example to keep the documented template consistent. Co-Authored-By: Claude Opus 4.7 (1M context) --- .fabro/workflows/implement-plan/workflow.fabro | 6 +++--- .fabro/workflows/smoke/workflow.fabro | 2 +- docs/public/examples/repl-handoff.mdx | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.fabro/workflows/implement-plan/workflow.fabro b/.fabro/workflows/implement-plan/workflow.fabro index d30ea3c37..2d53bb7b7 100644 --- a/.fabro/workflows/implement-plan/workflow.fabro +++ b/.fabro/workflows/implement-plan/workflow.fabro @@ -12,14 +12,14 @@ digraph ImplementPlan { toolchain [label="Toolchain", shape=parallelogram, script="command -v cargo >/dev/null || { curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && sudo ln -sf $HOME/.cargo/bin/* /usr/local/bin/; }; cargo --version 2>&1", max_retries=0] preflight_compile [label="Preflight Compile", shape=parallelogram, script="cargo check -q --workspace 2>&1", max_retries=0] - preflight_lint [label="Preflight Lint", shape=parallelogram, script="cargo clippy -q --workspace -- -D warnings 2>&1", max_retries=0] + preflight_lint [label="Preflight Lint", shape=parallelogram, script="cargo +nightly-2026-04-14 clippy -q --workspace -- -D warnings 2>&1", max_retries=0] fix_lints [label="Fix Lints", prompt="The preflight lint step failed. Read the build output from context and fix all clippy lint warnings.", max_visits=3] implement [label="Implement", prompt="Read the plan file referenced in the goal and implement every step. Make all the code changes described in the plan. Use red/green TDD."] simplify_opus [label="Simplify (Opus)", prompt="@prompts/simplify.md"] simplify_gpt [label="Simplify (GPT-54)", prompt="@prompts/simplify.md", model="gpt-54"] - verify [label="Verify", shape=parallelogram, script="cargo clippy -q --workspace -- -D warnings 2>&1 && cargo nextest run --cargo-quiet --workspace --status-level fail 2>&1", goal_gate=true, retry_target="fixup"] + verify [label="Verify", shape=parallelogram, script="cargo +nightly-2026-04-14 clippy -q --workspace -- -D warnings 2>&1 && cargo nextest run --cargo-quiet --workspace --status-level fail 2>&1", goal_gate=true, retry_target="fixup"] fixup [label="Fixup", prompt="The verify step failed. Read the build output from context and fix all clippy lint warnings and test failures.", max_visits=3] - fmt [label="Format", shape=parallelogram, script="cargo fmt --all 2>&1", max_retries=0] + fmt [label="Format", shape=parallelogram, script="cargo +nightly-2026-04-14 fmt --all 2>&1", max_retries=0] start -> toolchain toolchain -> preflight_compile [condition="outcome=succeeded"] diff --git a/.fabro/workflows/smoke/workflow.fabro b/.fabro/workflows/smoke/workflow.fabro index 75d9be4a0..0b17afb17 100644 --- a/.fabro/workflows/smoke/workflow.fabro +++ b/.fabro/workflows/smoke/workflow.fabro @@ -8,7 +8,7 @@ digraph Smoke { toolchain [label="Toolchain", shape=parallelogram, script="rustc --version && cargo --version && bun --version 2>&1", goal_gate=true] compile_rust [label="Compile Rust", shape=parallelogram, script="cargo check -q --workspace 2>&1", goal_gate=true] compile_typescript [label="Compile TypeScript", shape=parallelogram, script="cd apps/fabro-web && bun install && bun run typecheck 2>&1", goal_gate=true] - lint_rust [label="Lint Rust", shape=parallelogram, script="cargo +nightly fmt --check --all 2>&1 && cargo clippy -q --workspace -- -D warnings 2>&1", goal_gate=true] + lint_rust [label="Lint Rust", shape=parallelogram, script="cargo +nightly-2026-04-14 fmt --check --all 2>&1 && cargo +nightly-2026-04-14 clippy -q --workspace -- -D warnings 2>&1", goal_gate=true] test_rust [label="Test Rust", shape=parallelogram, script="ulimit -n 4096 && cargo nextest run --cargo-quiet --workspace --status-level fail 2>&1", goal_gate=true] test_typescript [label="Test TypeScript", shape=parallelogram, script="cd apps/fabro-web && bun test 2>&1", goal_gate=true] diff --git a/docs/public/examples/repl-handoff.mdx b/docs/public/examples/repl-handoff.mdx index c02eca25d..a89942013 100644 --- a/docs/public/examples/repl-handoff.mdx +++ b/docs/public/examples/repl-handoff.mdx @@ -35,15 +35,15 @@ digraph ImplementAndSimplify { toolchain [label="Toolchain", shape=parallelogram, script="command -v cargo >/dev/null || { curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && sudo ln -sf $HOME/.cargo/bin/* /usr/local/bin/; }; cargo --version 2>&1", max_retries=0] preflight_compile [label="Preflight Compile", shape=parallelogram, script="cargo check -q --workspace 2>&1", max_retries=0] - preflight_lint [label="Preflight Lint", shape=parallelogram, script="cargo clippy -q --workspace -- -D warnings 2>&1", max_retries=0] + preflight_lint [label="Preflight Lint", shape=parallelogram, script="cargo +nightly-2026-04-14 clippy -q --workspace -- -D warnings 2>&1", max_retries=0] fix_lints [label="Fix Lints", prompt="The preflight lint step failed. Read the build output from context and fix all clippy lint warnings.", max_visits=3] implement [label="Implement", prompt="Read the plan file referenced in the goal and implement every step. Make all the code changes described in the plan. Use red/green TDD."] simplify_opus [label="Simplify (Opus)", prompt="@prompts/simplify.md"] simplify_gemini [label="Simplify (Gemini)", prompt="@prompts/simplify.md", model="gemini-3.1-pro-preview-customtools"] simplify_gpt [label="Simplify (GPT-54)", prompt="@prompts/simplify.md", model="gpt-54"] - verify [label="Verify", shape=parallelogram, script="cargo clippy -q --workspace -- -D warnings 2>&1 && cargo nextest run --cargo-quiet --workspace --status-level fail 2>&1", goal_gate=true, retry_target="fixup"] + verify [label="Verify", shape=parallelogram, script="cargo +nightly-2026-04-14 clippy -q --workspace -- -D warnings 2>&1 && cargo nextest run --cargo-quiet --workspace --status-level fail 2>&1", goal_gate=true, retry_target="fixup"] fixup [label="Fixup", prompt="The verify step failed. Read the build output from context and fix all clippy lint warnings and test failures.", max_visits=3] - fmt [label="Format", shape=parallelogram, script="cargo fmt --all 2>&1", goal_gate=true, max_retries=0] + fmt [label="Format", shape=parallelogram, script="cargo +nightly-2026-04-14 fmt --all 2>&1", goal_gate=true, max_retries=0] start -> toolchain toolchain -> preflight_compile [condition="outcome=succeeded"] @@ -167,7 +167,7 @@ simplify_gpt [prompt="@prompts/simplify.md", model="gpt-54"] The `verify` node runs clippy and the full test suite: ```sh -cargo clippy -q --workspace -- -D warnings 2>&1 && \ +cargo +nightly-2026-04-14 clippy -q --workspace -- -D warnings 2>&1 && \ cargo nextest run --cargo-quiet --workspace --status-level fail 2>&1 ```