Stacked features 4: separate builds and allow test to run standalone#415
Merged
graydawnc merged 4 commits intoJul 15, 2026
Merged
Conversation
This was referenced Jul 13, 2026
AmagiDDmxh
marked this pull request as draft
July 13, 2026 20:48
AmagiDDmxh
force-pushed
the
feat/build-native-isolation
branch
2 times, most recently
from
July 14, 2026 16:04
b303c9c to
299fc2e
Compare
AmagiDDmxh
force-pushed
the
feat/build-native-isolation
branch
from
July 15, 2026 04:59
299fc2e to
5ecf7b5
Compare
AmagiDDmxh
marked this pull request as ready for review
July 15, 2026 05:00
The packaging split removed the app's build:mac/build:linux one-shots, but scripts/dev-install-mac.sh (and README) still invoked them, so the local DMG install flow died at the build step. Route it through the root package:mac orchestration instead — same artifact path, and the second run now benefits from turbo caching. Also scope the packaging build to the app's dependency graph (turbo build --filter=@spool/app...) and have release.yml call the root package scripts. Desktop releases no longer depend on @spool/landing or @spool/share-web building — landing is excluded from PR CI by paths-ignore, so a breakage there would otherwise first surface mid-release. Verified: pnpm run package:mac produces packages/app/dist/mac-arm64/Spool.app + DMG on a warm tree in ~3min, and restores the node ABI afterwards. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 15, 2026
bet4it
pushed a commit
to bet4it/spool
that referenced
this pull request
Jul 16, 2026
…rboytm#426) The July 2026 optimization stack (paperboytm#412-paperboytm#418) shipped, which turns its 441-line plan into a completed one — and completed plans rot: the doc went stale twice during the stack's own lifetime (feature-flag removals, find semantics). Git history and the PR descriptions now carry the full rationale and verification notes permanently. Keep what stays useful: - The verification matrix moves to CONTRIBUTING as a living 'Verifying changes' section, including the packaged-app checklist and the never-remove-assets-on-grep-alone rule. - The roadmap shrinks to a ~50-line record: what shipped per PR, decisions of record with their data basis, and known follow-ups. Also refresh two stale CONTRIBUTING sections: native-ABI handling is automatic since paperboytm#415 (manual rebuilds are the fallback), and 'no linter config yet' predates oxlint (paperboytm#413). Co-authored-by: Chen <99816898+donteatfriedrice@users.noreply.github.com> Co-authored-by: Claude Fable 5 <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.
Stack position
Part 4 of 7. Depends on #414; the next PR is #416.
Why
The app build duplicated dependency work, root
buildalso performed release packaging, and Node/Electron commands repeatedly rebuilt the same sharedbetter-sqlite3artifact for incompatible ABIs. That made caching ineffective and allowed tests or packaging to break the globally linked CLI.What changed
buildtask bundle-only and let^buildown dependency ordering.out/**Turbo output.package,package:mac, andpackage:linux.better-sqlite3@11.10.0, the version already used by the app/core runtime.with-electron-native.mjs, which rebuilds for Electron and restores the Node ABI infinally.Verification
pnpm build: seven tasks passed, with each app dependency built once.pnpm build: 7/7 Turbo cache hits in 92 ms.pnpm buildproduced no DMG, ZIP, AppImage, or electron-builder task.pnpm --filter @spool/app smoke:native:electron: SQLite loaded inside Electron.sp statussucceeded.Review notes
The CLI's previous 12.x direct dependency was aligned downward to the app/core 11.10.0 runtime to remove the split with the smallest compatibility change. A coordinated 12.x upgrade should be a separate PR. Release signing, notarization, and Linux packaging still require CI credentials.