Skip to content

fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102) - #106

Merged
radroid merged 1 commit into
mainfrom
coil/verify-server-asar
Aug 14, 2026
Merged

fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102)#106
radroid merged 1 commit into
mainfrom
coil/verify-server-asar

Conversation

@radroid

@radroid radroid commented Aug 14, 2026

Copy link
Copy Markdown
Owner

The 2026-08-14 sync imported upstream's Windows server.asar split, which broke the release's bundle-verify gate in both directions at once — and red release run 31837711136 (publish skipped, nothing shipped) is the proof:

  • The server graph silently stopped being scanned on Windows. The gate read only app.asar (+ .unpacked), which now holds just the Electron main-process bundle — the entire server closure was unverified, with no signal.
  • A shippable build was failed on a phantom. node-pty appears in main.cjs only inside embedded WSL heredoc strings (the regex scanner cannot tell), and it genuinely lives in the sidecar for the WSL path — but the sidecar was invisible, so the gate reported MODULE_NOT_FOUND.

Fix:

  • verifyPackagedApp merges a sibling resources/server.asar (+ its .unpacked) into the packaged view: sidecar bundles are scanned again, and packages that live there resolve.
  • New floor: every FIRST_PARTY_BUNDLE_DIRS entry must contribute ≥1 scanned bundle, else the gate fails with a topology-changed error. A layer the checker cannot see can never silently pass again (the fix(coil): restore the release, and make two of its checks capable of failing #97 lesson, second occurrence).
  • Tests: sidecar-merge case (also proves sidecar bundles are scanned, not merely stored) and invisible-layer case; three existing fixtures gained the now-required second bundle dir.
  • Corrects three comments still teaching the disproven GITHUB_REPOSITORY=\"\" silencing mechanism, and the workflow step's stale topology claim.

Verified: scripts suite 318/318 green (with env -u ELECTRON_RUN_AS_NODE — the session env otherwise contaminates spawned-command assertions), repo typecheck 0 errors, fmt clean.

Fixes #102.

🤖 Generated with Claude Code

…annot see (#102)

Upstream's Windows server.asar split (this sync) broke the release's
bundle-verify gate both ways at once: the server graph silently stopped
being scanned, and node-pty — mentioned only inside main.cjs's embedded
WSL heredoc scripts, loadable from the sidecar where it genuinely lives —
was reported unresolvable, failing a shippable build (release run
31837711136, publish skipped).

The view now merges a sibling resources/server.asar (+ .unpacked) into
the packaged-file map, so sidecar bundles are scanned again and sidecar
packages resolve. And every FIRST_PARTY_BUNDLE_DIRS entry must contribute
at least one scanned bundle — a packaging-topology change that hides a
layer is now an error instead of an empty green result, which is the
'guard that cannot fail' shape #97 already taught us once.

Also corrects the three comments still teaching the disproven
GITHUB_REPOSITORY="" mechanism (main.ts, UpdateToast.tsx) and the
workflow step's stale Windows-topology claim.

Fixes #102.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@radroid
radroid merged commit f95a770 into main Aug 14, 2026
1 check passed
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: b6e40558-1994-4328-94ad-9516c67784fe

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@radroid
radroid deleted the coil/verify-server-asar branch August 14, 2026 20:41
radroid added a commit that referenced this pull request Aug 14, 2026
…hipped app cannot reach (#107)

The sidecar-aware gate (#102, PR #106) surfaced two more phantom
requirements on Windows: @effect/platform-bun and @effect/sql-sqlite-bun,
imported by the server bundle only behind Bun-runtime detection. The
shipped app always runs the server under Node (ELECTRON_RUN_AS_NODE), so
the branch is unreachable, and upstream's Windows sidecar deliberately
stages neither — their absence broke release run 31839839479 without
breaking anything real. The macOS artifact only carries them because its
staging installs the full production dependency set.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.

Release bundle verify checks the wrong layer on Windows since upstream's server.asar sidecar

1 participant