Skip to content

test(ci): isolate notedeck_notebook snapshot tests on Windows - #1498

Merged
jb55 merged 1 commit into
masterfrom
fix/notebook-snapshot-windows-isolate
Aug 7, 2026
Merged

test(ci): isolate notedeck_notebook snapshot tests on Windows#1498
jb55 merged 1 commit into
masterfrom
fix/notebook-snapshot-windows-isolate

Conversation

@jb55

@jb55 jb55 commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Problem

The Test (Windows) / run job crashed with snapshot_tests-*.exe (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION) — a native process death, not a test panic: no assertion failed and no per-test result was printed. Linux and macOS were green (this is why PR #1497 was merged with Windows red — it's a non-required check).

Root cause

Concurrent execution inside the parallel cargo test --workspace step. notedeck_notebook's non-ignored snapshot_tests are heavyweight interactive egui_kittest e2e cases (drag, connect edges, create/edit longform, rename, delete) that each spin up a full Notedeck + Harness and loop run_ok + 25ms sleeps over asynchronous PNS-crypto nostrdb ingest.

That is the same class of suite already isolated for the other heavyweight harness crates, each fixed the same way:

  • notedeck_davec29f2d5 ("test(ci): isolate Dave tests on Windows")
  • notedeck_columns e2e — 36eb6b4 ("test(ci): isolate Columns e2e on Windows")
  • notedeck_messages e2e — fd311b2 ("Run messages E2E serially in CI")

notedeck_notebook was the last such suite still running inside the parallel workspace step. The lighter single-snapshot harness suites (chrome/dashboard/headway/horizon) finish in ms and don't hit the race window.

Fix

Exclude notedeck_notebook from the broad workspace test step and run it in its own --test-threads=1 step, matching the established Dave/Columns/Messages model. Coverage is unchanged — the lavapipe snapshot cases stay ignored.

Verified green locally on Linux: 28 lib + 7 non-ignored snapshot tests pass, 7 lavapipe tests ignored.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests
    • Updated automated testing to run the notedeck_notebook package separately and sequentially.
    • Adjusted workspace test coverage to prevent duplicate execution.

The notedeck_notebook snapshot_tests binary crashed on the Windows native
test job with exit code 0xc0000005 (STATUS_ACCESS_VIOLATION) — a native
process death, not a test panic: no assertion failed and no per-test result
was printed. Linux and macOS were green.

Its non-ignored tests are heavyweight interactive egui_kittest e2e cases
(drag, connect edges, create/edit longform, rename, delete) that each spin up
a full Notedeck plus Harness and loop run_ok + 25ms sleeps over asynchronous
PNS-crypto nostrdb ingest. That is the same class of suite already isolated
for notedeck_dave, notedeck_columns e2e, and notedeck_messages e2e, whose
concurrent execution inside the parallel workspace step crashed on Windows.
notedeck_notebook was the last such suite still running there.

Exclude notedeck_notebook from the broad workspace test step and run it in its
own one-thread step, matching the established Dave/Columns/Messages model.
Coverage is unchanged (the lavapipe snapshot cases stay ignored).

Changelog-None:

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e8d28e4c-777c-40b9-9486-2fb34d358f53

📥 Commits

Reviewing files that changed from the base of the PR and between e0e8cbb and c1cf9bb.

📒 Files selected for processing (1)
  • .github/workflows/build-and-test.yml

📝 Walkthrough

Walkthrough

The build workflow excludes notedeck_notebook from native workspace tests and adds a dedicated sequential test step with CI enabled.

Changes

CI testing

Layer / File(s) Summary
Separate notebook test execution
.github/workflows/build-and-test.yml
The native workspace test excludes notedeck_notebook. A dedicated single-threaded test step runs the package with CI enabled.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested reviewers: kernelkind

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes isolating notedeck_notebook snapshot tests in CI to prevent Windows test crashes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/notebook-snapshot-windows-isolate

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.

@jb55
jb55 merged commit 931c0ab into master Aug 7, 2026
13 checks passed
@jb55
jb55 deleted the fix/notebook-snapshot-windows-isolate branch August 7, 2026 18:17
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