fix(desktop): unbreak release build + phase 2 parallel dispatch - #65
Merged
Conversation
The release workflow has been silently broken since v0.8.0: @electron/rebuild pins node-gyp 9.4.1, which predates Python 3.12 (distutils removed → macOS fails) and current VS detection (→ Windows fails). Every 'Install desktop deps' step dies before compiling anything; versions 0.8.1-0.8.11 never shipped through the feed. Scoped npm override forces node-gyp ^13 under @electron/rebuild only. Verified via workflow_dispatch dry-run (build-only) on this branch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…run-tabs (opt-in) When a project is busy, dispatch immediately under a tab alias <project>~<runId8> instead of queueing behind — every tab-keyed mechanism (PTY workspace, session file, sentinels, zellij tab, phase-1 worktree) composes unchanged. Gated by FLEETCROWN_PARALLEL_DISPATCH (default off). - src/lib/run-tab.ts: alias SSOT (derive/base/detect) shared by server+runner - run/route.ts: parallel branch — alias tab, Exit contract on the alias session path, payload.sessionTab; run keeps BASE projectKey for analytics - poller.ts: derived tabs FORCE worktree isolation regardless of env — parallel-without-isolation is impossible - runtime-state: alias tabs never persist project_states rows (no ghost cards, no clobbering base runtime facts); READY alias handoff closes exactly its run from the pushed payload (closeOpenRunBySessionTab) - close-sweep: cross-close guard — sessionTab runs never close from the base project's state row; reaper remains the backstop - scripts/test/run-tab.ts: 8-check net. 38/38 unit files, tsc, eslint green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The scoped node-gyp-13-under-rebuild-3.6.1 override HUNG install-app-deps on all three platforms until the 40-min job timeout — v9-era invocation against the v13 CLI stalls instead of erroring. rebuild 4.2.0 ships its own paired node-gyp ^12 (Python 3.12 + modern VS support) — the combination its authors actually test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…-2022 Third approach, the right one: the dep set (electron-builder 25 + rebuild 3.6.1 + node-gyp 9) was never broken — the runner images rotted under it after v0.8.0 (Python 3.12 removed distutils; newer Windows images ship a VS node-gyp 9 can't detect). Overriding node-gyp 13 under rebuild 3.6.1 HUNG (CLI mismatch); rebuild 4.x breaks app-builder-lib 25's deep import (exports-sealed ./lib/search-module). So: revert both overrides, pin setup-python 3.11 + windows-2022 in the workflow. Prod deps untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Two commits, one rollout train
1.
fix(desktop): node-gyp 13 override — unbreaks the release pipeline.The desktop-release workflow has been silently broken since v0.8.0 (node-gyp 9.4.1 predates Python 3.12 and current VS detection — every build died at "Install desktop deps"; 0.8.1–0.8.11 never shipped through the feed). Scoped npm override under
@electron/rebuild. Being proven right now by a workflow_dispatch dry-run build on this branch (all three platforms are past the old failure point).2.
feat(dispatch): phase 2 of worktree-per-agent — same-project parallel dispatch (opt-in).Busy project → dispatch immediately under a derived tab alias
<project>~<runId8>instead ofqueuedBehind. The loop is tab-keyed, so PTY/session/sentinels/zellij/worktree all compose unchanged. Alias-aware seams: dispatch route (Exit contract on alias session path,payload.sessionTab, base projectKey preserved for analytics), runner guard (derived tabs FORCE worktree isolation), ingestion (no ghost project cards; targeted run close from pushed payload), close-sweep (cross-close guard). Gated byFLEETCROWN_PARALLEL_DISPATCH, default off.8-check run-tab net + 38/38 unit files, tsc, eslint green. Docs:
docs/architecture/worktree-per-agent.md.🤖 Generated with Claude Code