Skip to content

ci: repair fuzz smoke after decrating absorptions#83

Merged
EffortlessSteven merged 1 commit into
mainfrom
release/fuzz-smoke-repair
Apr 15, 2026
Merged

ci: repair fuzz smoke after decrating absorptions#83
EffortlessSteven merged 1 commit into
mainfrom
release/fuzz-smoke-repair

Conversation

@EffortlessSteven

Copy link
Copy Markdown
Member

Summary

Two fuzz targets still referenced the pre-decrating module layout, and the Fuzz Smoke CI step still invoked a target that no longer exists:

  • fuzz_targets/load_state.rs imported shipper::state::load_state, but the function moved to shipper::state::execution_state::load_state when the state module was split into sub-modules.
  • fuzz_targets/engine_parallel_chunks.rs imported the standalone shipper_engine_parallel crate, which was absorbed into shipper::engine::parallel. Added the explicit Vec<Vec<String>> return-type annotation that the absorbed signature now requires for the fuzz input to type-check.
  • .github/workflows/ci.yml still ran cargo fuzz run policy_effects, but that target was deleted when shipper-policy was absorbed into shipper::runtime::policy (54dbadf). Dropped the stale invocation.

Verification

  • cargo check --bins against a cleaned fuzz/target/ — all 29 fuzz binaries compile from scratch in ~36s.
  • Windows can't link the libfuzzer sanitizer runtime; real exercise happens in CI.

Test plan

  • Fuzz Smoke (PR) lane green
  • No "fuzz target not found: policy_effects" failure

This is PR 3 in the release-hardening sprint (audit → nextest → fuzz → package-truth → rehearsal → publish).

@coderabbitai

coderabbitai Bot commented Apr 15, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@EffortlessSteven has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 34 minutes and 4 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 34 minutes and 4 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 93a754f9-f6be-401b-8e31-474d1ee5959a

📥 Commits

Reviewing files that changed from the base of the PR and between 1a674bb and 93e9ebd.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • fuzz/fuzz_targets/engine_parallel_chunks.rs
  • fuzz/fuzz_targets/load_state.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/fuzz-smoke-repair

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request updates the import paths in the fuzz targets to align with the current project structure and adds an explicit type annotation in the engine_parallel_chunks fuzz target. I have no feedback to provide.

Two fuzz targets still imported from the old pre-decrating module paths
and from a crate that no longer exists:

- fuzz_targets/load_state.rs imported shipper::state::load_state, but the
  function now lives at shipper::state::execution_state::load_state after
  the state module was restructured into sub-modules.
- fuzz_targets/engine_parallel_chunks.rs imported the standalone
  shipper_engine_parallel crate, which was absorbed into
  shipper::engine::parallel. The return type of chunk_by_max_concurrent
  also needs an explicit annotation for the fuzz input to type-check.

The Fuzz Smoke CI step also still invoked `cargo fuzz run policy_effects`,
but that target was deleted when shipper-policy was absorbed into
shipper::runtime::policy (commit 54dbadf). Drop the stale invocation so
the job no longer fails on a missing target.

All fuzz binaries now compile cleanly from scratch.
@EffortlessSteven EffortlessSteven force-pushed the release/fuzz-smoke-repair branch from c31ac70 to 93e9ebd Compare April 15, 2026 21:17
@EffortlessSteven EffortlessSteven merged commit 6f46714 into main Apr 15, 2026
12 of 17 checks passed
@EffortlessSteven EffortlessSteven deleted the release/fuzz-smoke-repair branch April 15, 2026 21:43
EffortlessSteven added a commit that referenced this pull request Apr 15, 2026
Same class of stale reference as the PR Fuzz Smoke lane (#83): the
policy_effects fuzz target was deleted when shipper-policy was absorbed
into shipper::runtime::policy (commit 54dbadf), but the nightly fuzz.yml
matrix still lists it. Would fail every scheduled nightly run at 3 AM UTC.
EffortlessSteven added a commit that referenced this pull request Apr 15, 2026
* ci: restrict architecture-guard grep to .rs files

The architecture-guard job uses grep -rE to assert that lower layers
don't import upward. Without --include='*.rs', grep also scans the
per-layer CLAUDE.md files — which, for documentation purposes, explicitly
list the forbidden import patterns ('use crate::engine::...' etc.) as
examples of what NOT to do.

That's enough to flip the guard red on every push to main, even though
no .rs file actually violates the rule. Filter the grep to .rs files for
each of the four layer checks (ops, runtime, state, plan).

Verified locally that all four per-layer greps report clean on main.

* ci: drop policy_effects from nightly fuzz matrix

Same class of stale reference as the PR Fuzz Smoke lane (#83): the
policy_effects fuzz target was deleted when shipper-policy was absorbed
into shipper::runtime::policy (commit 54dbadf), but the nightly fuzz.yml
matrix still lists it. Would fail every scheduled nightly run at 3 AM UTC.
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