Skip to content

fix(ci): launch isolation gate waits for the V2 database - #171

Merged
NoahHendrickson merged 1 commit into
customfrom
fix/launch-isolation-statev2
Oct 10, 2026
Merged

NoahHendrickson merged 1 commit into
customfrom
fix/launch-isolation-statev2

Conversation

@NoahHendrickson

Copy link
Copy Markdown
Owner

The fork release gate (launch-isolation-check.sh) waits for the packaged app's server child to create ~/.t3-fork/userdata/state.sqlite before running its isolation sweep. The orchestrator-V2 sync (#167) moved the server's database to statev2.sqlite (apps/server/src/config.ts); state.sqlite is now only read as a V1 import source. The v0.1.41 release run therefore timed out after 180s with .t3-fork/userdata/statev2.sqlite already on disk and no upstream-named path anywhere, which is the condition the gate exists to prove.

Waits for statev2.sqlite instead and pins the name in forkDesktopRelease.test.ts.

Verified: the guard passes (6 tests). The real proof is the next fork-release.yml dispatch, which runs this gate against the built DMG.

Claude Fable 5.1 via Claude Code.

🤖 Generated with Claude Code

The orchestrator-V2 sync moved the server's database to statev2.sqlite;
state.sqlite is now only a V1 import source. The release gate still waited
for the old name, so v0.1.41's build timed out after 180s with the fork
state fully in place. Wait for statev2.sqlite and pin it in the guard.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS labels Oct 10, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No major structural issues.

The gate still waits for the file the server child owns — that is the proof the packaged process derived ~/.t3-fork. After the orchestrator-V2 sync that file is statev2.sqlite. On a fresh scratch HOME, initializeV2Database no-ops and layerFromPath creates dbPath; same readiness signal, new name. The guard pin tracks the executable path literal. A shared constant, *.sqlite glob, or a cross-file pin from config.ts would add machinery, not delete it.

Open in Web View Automation 

Sent by Cursor Automation: Thermo nuke 4.6

@github-actions

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

⚠️ The thread fixture changed, so impact percentages are not directly comparable to the main baseline.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 5.0 KiB — 6.8 KiB ✅
Codex Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Codex Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Codex Live turn WebSocket decoded — 20.9 KiB — 29.3 KiB ✅
Codex Live turn messages — 2 — 8 ✅
Claude Total thread wire — 5.0 KiB — 6.8 KiB ✅
Claude Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Claude Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Claude Live turn WebSocket decoded — 21.2 KiB — 29.3 KiB ✅
Claude Live turn messages — 2 — 8 ✅

Baseline: ef5d6a9 · PR result: 3ce539c · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@NoahHendrickson
NoahHendrickson merged commit d43b2e6 into custom Oct 10, 2026
26 checks passed
@NoahHendrickson
NoahHendrickson deleted the fix/launch-isolation-statev2 branch October 10, 2026 05:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants