Skip to content

fix(app): keep TypeScript out of CLI release bundles - #167

Merged
francoischalifour merged 5 commits into
mainfrom
fc/fix-cli-asset-size
Oct 21, 2026
Merged

francoischalifour merged 5 commits into
mainfrom
fc/fix-cli-asset-size

Conversation

@francoischalifour

Copy link
Copy Markdown
Member

What

Move single-file app manifest extraction into a cached preview runtime with frozen dependencies. Parse source in a subprocess, validate the selected profile scope, then start the lakehouse proxy.

Reduce the JavaScript bundle from 9.68 MB to 891 KB. Enforce a 1 MiB uncompressed budget in the shared builder used by CI, npm packaging, and native release builds.

Why

app dev --file imported manifest tooling that pulled the entire TypeScript compiler into every CLI download. A dynamic import delayed initialization but still bundled the compiler. The preview tools now install alongside the cached runtime when needed.

Verification

  • Full repository gate: 833 unit tests, 155 CLI tests, and 42 browser tests passed, including packed npm verification.
  • JavaScript and macOS ARM64 native previews passed bundling, proxied-query, and shutdown smoke tests.
  • Bundle size is 891,100 bytes; budget tests cover missing artifacts and the exact size boundary.

Checklist

  • Tests added or updated
  • CHANGELOG.md updated
  • No breaking changes

Install manifest extraction tooling in a dedicated frozen file-preview runtime instead of importing its TypeScript compiler into the standalone CLI. Parse app source in a credential-free Bun subprocess, then validate profile scope before starting the lakehouse proxy.

Preserve published preview runtime dependencies without adding compiler tooling to generated starter apps. Verify single-file previews through both JavaScript and native CLI artifacts.
Check the uncompressed standalone JavaScript bundle in the shared builder used by CI, npm packaging, and every native release target. Report actual size and fail before compilation or publication when the budget is exceeded.

The fixed bundle is 891,100 bytes; the shipped v1.13.0 bundle at 9,680,174 bytes fails this guard. Cover missing artifacts and budget boundaries, and document how to investigate future growth.
Leave 30,500 bytes of headroom above the current bundle and trim redundant documentation while preserving dependency upgrade guidance. Update and verify the exact budget boundaries.
@francoischalifour
francoischalifour merged commit dc8fb6b into main Oct 21, 2026
15 checks passed
@francoischalifour
francoischalifour deleted the fc/fix-cli-asset-size branch October 21, 2026 07:56
francoischalifour pushed a commit that referenced this pull request Oct 21, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.13.1](v1.13.0...v1.13.1)
(2026-10-21)


### Bug Fixes

* **app:** keep TypeScript out of CLI release bundles
([#167](#167))
([dc8fb6b](dc8fb6b))
* **release:** prepare release PRs after draft publication
([#166](#166))
([58b23a2](58b23a2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.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.

2 participants