Skip to content

test: add Linux CI and require real recovery launches - #21

Merged
charliebarmore merged 1 commit into
mainfrom
codex/linux-ci-recovery
Sep 22, 2026
Merged

charliebarmore merged 1 commit into
mainfrom
codex/linux-ci-recovery

Conversation

@charliebarmore

Copy link
Copy Markdown
Owner

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):

  • Fresh clone, hash-pinned Python dependencies, npm ci, and fixture generation passed (31/31 spike checks).
  • npm run verify passed, including 5/5 strengthened recovery checks, Electron smoke, and live-agent checks.
  • node scripts/recovery-headless-check.mjs passed: neither launch nor Cancel falsely passed without a display.
  • npm run verify:viewers passed with pdfium and poppler.
  • Workflow YAML parsed and git diff --check passed.

Linux packaging and a manual desktop walkthrough remain unverified; this PR covers source execution only. Follow-up to #20.

@charliebarmore
charliebarmore merged commit 3b70422 into main Sep 22, 2026
7 checks passed
@charliebarmore
charliebarmore deleted the codex/linux-ci-recovery branch September 22, 2026 22:12
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