Potentially Fix Pipeline (Kani issues)#109
Conversation
📝 Changelog ReminderThis PR does not appear to update If this PR includes user-facing changes, please consider adding an entry to the changelog under the appropriate section:
You can skip this reminder by adding one of these labels: When is a changelog entry needed?A changelog entry is typically needed for:
A changelog entry is typically NOT needed for:
This is an automated reminder. The PR will not be blocked by this check. |
There was a problem hiding this comment.
Pull request overview
This PR aims to make the Kani verification pipeline more reliable in CI by reducing proof state-space, adding explicit unwind bounds, and improving Kani tooling feedback so timeouts/unwind-related failures are easier to diagnose.
Changes:
- Tighten/adjust several Kani proofs (smaller symbolic ranges, smaller constructed structures) and add explicit
#[kani::unwind(N)]in a few places. - Add per-proof timeout handling and extra “quick mode default unwind” guidance to
verify-kani.sh. - Add an advisory scan for proofs missing
#[kani::unwind(N)]in both the shell and Python Kani coverage checkers; update Kani guidance docs accordingly.
Reviewed changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
src/time_sync.rs |
Narrows proof input ranges and adds explicit unwind bounds to improve Kani tractability/CI stability. |
src/sync_layer/mod.rs |
Reduces proof construction complexity (1 player/window) and lowers unwind to target the invariant being proven. |
src/input_queue/mod.rs |
Makes non-sequential proof deterministic (concrete skip) and increases unwind to match proof operations. |
scripts/verify-kani.sh |
Wraps Kani invocations with a timeout and prints clearer guidance for quick-mode unwind failures. |
scripts/check-kani-coverage.sh |
Adds an advisory check for missing #[kani::unwind(N)] attributes in proofs. |
scripts/check-kani-coverage.py |
Adds cross-platform advisory detection for proofs missing #[kani::unwind(N)] (with optional verbosity). |
loom-tests/tests/loom_saved_states.rs |
Cleans up imports (no behavior change). |
CLAUDE.md |
Replaces long instructions with concise reminders pointing to .llm/context.md. |
AGENTS.md |
Same as above: slimmed instructions, points to .llm/context.md. |
.llm/skills/kani-verification.md |
Documents CI --quick / default unwind behavior and adds guidance/allowlist marker. |
.llm/context.md |
Clarifies CI failure conditions and reiterates Kani unwind implications in quick mode. |
.github/copilot-instructions.md |
Slimmed instructions to defer to .llm/context.md. |
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Fortress Rollback Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.50.
| Benchmark suite | Current: 60bd197 | Previous: 55d1aef | Ratio |
|---|---|---|---|
Frame arithmetic/add/1 |
1 ns/iter (± 0) |
0 ns/iter (± 0) |
+∞ |
Frame arithmetic/add/10 |
1 ns/iter (± 0) |
0 ns/iter (± 0) |
+∞ |
Frame arithmetic/add/100 |
1 ns/iter (± 0) |
0 ns/iter (± 0) |
+∞ |
Frame arithmetic/add/1000 |
1 ns/iter (± 0) |
0 ns/iter (± 0) |
+∞ |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 40 out of 126 changed files in this pull request and generated 6 comments.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 41 out of 129 changed files in this pull request and generated 3 comments.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 42 out of 132 changed files in this pull request and generated 4 comments.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 42 out of 132 changed files in this pull request and generated 1 comment.
You can also share your feedback on Copilot code review. Take the survey.
Description
Type of Change
Checklist
Required
unwrap()in production codeexpect()in production codepanic!()ortodo!()Resultcargo fmt && cargo clippy --all-targetswith no warningscargo nextest runand all tests passIf Applicable
CHANGELOG.mdfor user-facing changesexamples/directoryTesting
Tests added/modified:
Manual testing performed:
Related Issues