mirror of
https://github.com/nexu-io/open-design.git
synced 2026-10-27 09:51:12 +01:00
* Optimize Windows packaged web output * Fix packaged contracts runtime build * Optimize Windows packaged size pruning * Prune Windows root Next payload * Remove Windows bundled Node runtime * Prune Windows standalone duplicate Next * Add tools-pack cache foundation * Cache Windows packaged build layers * Cache Windows workspace builds * Cache Electron-ready Windows app * Split Windows tools-pack module * Cache Windows dir build outputs * Split Windows pack build modules * Document Windows NSIS smoke namespace limits * Move Windows NSIS smoke note to agents guide * Optimize Windows beta packaging * Bump packaged beta base version * Improve Windows installer namespace UX * Improve Windows tools-pack cache keys * Stabilize Windows beta cache version keys * Cache Windows workspace build outputs * Optimize windows release beta cache layers * Cache windows release dependencies * Trim windows release cache before save * Refresh windows tools-pack cache key * Improve windows installer preflight prompts * Fallback NSIS installer strings to English * Fix Windows installer cleanup and preflight * Improve Windows NSIS state logging * Fix system NSIS Persian language alias * Use long-path removal for Windows uninstall * Fix mac tools-pack tests on Windows * Address Windows packaging review feedback * Fix Windows installer cache namespace isolation * Include web output mode in Windows tarball cache key * Use unique Windows release cache save keys
2.8 KiB
2.8 KiB
tools/pack
Follow the root AGENTS.md and tools/AGENTS.md first. This tool owns the repo-external packaged build/start/stop/logs command surface.
Owns
- Local packaging orchestration for packaged Open Design artifacts.
- mac build/install/start/stop/logs/uninstall/cleanup smoke commands.
- Windows NSIS build/install/start/stop/logs/uninstall/cleanup/list/reset smoke commands.
- Windows registry observation/cleanup must go through
reg.exeand stay scoped to entries matching the namespace install/uninstaller paths. - Windows lifecycle logs must expose NSIS automation logs/markers/timings in addition to app runtime logs.
- Linux AppImage build/install/start/stop/logs/uninstall/cleanup smoke commands.
- Linux headless (no-Electron) install/start/stop via
--headlessflag oninstall,start, andstop. - Linux containerized builds via
electronuserland/builderDocker image for distro-agnostic glibc compat. - Consuming sidecar/process/path primitives from
@open-design/sidecar-proto,@open-design/sidecar, and@open-design/platform.
Does not own
- Product business logic.
- Sidecar protocol definitions.
- A second process identity model.
- Product/business update runtime integration.
Rules
- Do not hand-build
--od-stamp-*args; usecreateProcessStampArgswithOPEN_DESIGN_SIDECAR_CONTRACT. - Do not use port numbers in data/log/runtime/cache path decisions. Namespace decides paths; ports are only transient transports.
- Release artifacts keep canonical app identity (
Open Design.appon mac,Open Design.exeinside the Windows installer); local tools-pack installs may use namespace-scoped install paths only as a developer multi-instance validation convention. - Do not let namespace-named
.appinstalls change data/log/runtime/cache path conventions. - Use
--portablefor public/release artifacts so packaged config does not bake local tools-pack runtime roots from the build machine. - Pack resource files used by electron-builder belong under
tools/pack/resources/; do not point pack logic at Downloads, web public assets, docs assets, or other app-owned resource paths. - For ordinary Windows NSIS smoke tests, use short namespaces such as
rg,smoke, ornsis-a. NSIS extracts deeply nested Next.js standalone files under the namespace-scoped install directory; long namespaces can push installed paths past the traditional Windows 260-character limit even when builderwin-unpackedoutput is correct. During merge regression, namespaceregression-merge-nsisproduced an installed path length of 264 characters and missednext/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.jsin the installed directory, while the same NSIS smoke passed with namespacerg. Use long namespaces only when intentionally testing installer path-length behavior.