Release | Pack a minimized dist.tar.gz - #24
Conversation
Match the email-simulator approach: bundle client and server with esbuild so releases ship without node_modules. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (5)
Included review availability: This review used your included allowance. 4 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour. 📝 WalkthroughWalkthroughThe release workflow now runs Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to The packaging and release configuration align with the documented standalone runtime. No actionable merge-blocking issue was found; normal build and release checks remain appropriate. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Comment |
Summary
Release archives used to ship the whole checkout plus
node_modules, which madedist.tar.gzhuge. This mirrors the email-simulator pack flow so releases are a small, runnable tree with nonode_modules.Changes
npm run pack(scripts/pack-dist.mjs) minifies the client, bundles the server (Express + LLM SDKs inlined), copies static assets / design-system / examples, smoke-tests/api/session-configagainst the packed app, then writesdist.tar.gz.The release workflow now runs tests and
npm run packinstead of tarring the repo. Locally this produced a ~1.4 MB archive vs ~43.3 MB, which expands into 4.4MB vs 175MB. So the unpack/run speed will be much faster with this change.Worth a close look: the packed server resolves
import.meta.urltodist/, soeval-system-prompt.mdis copied next toserver.js(not underlib/).Testing
npm run packsucceeds and prints size breakdowndist.tar.gzand confirmedGET /api/session-configreturns 200