Repository navigation
test: add Linux CI and require real recovery launches - #21
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linux source verification was a one-off manual run, and the recovery harness could report a successful launch or Cancel check when Electron never started. Require a recorded recovery-prompt choice and a fresh rendered-window capture before either launch passes, and gate the Cancel preservation assertion on that evidence. Preserve timeout diagnostics and report spawn failures.
Add Linux CI on Ubuntu 22.04, Node 22, and Python 3.12: install the hash-pinned engine dependencies, generate synthetic fixtures, run the complete application suite under Xvfb with Electron sandboxing enabled, and verify PDF output with pdfium and poppler. A Linux-only negative test removes display variables and requires both recovery launches and the Cancel assertion to fail. Failure screenshots and negative-test logs are retained for three days.
Validation on Omarchy / Arch Linux (Node 26.7.0, Python 3.14.7):
npm ci, and fixture generation passed (31/31 spike checks).npm run verifypassed, including 5/5 strengthened recovery checks, Electron smoke, and live-agent checks.node scripts/recovery-headless-check.mjspassed: neither launch nor Cancel falsely passed without a display.npm run verify:viewerspassed with pdfium and poppler.git diff --checkpassed.Linux packaging and a manual desktop walkthrough remain unverified; this PR covers source execution only. Follow-up to #20.