build(release): split and minify binaries with P0 and worker smoke gates - #8243
Open
code-yeongyu wants to merge 5 commits into
Open
code-yeongyu wants to merge 5 commits into
code-yeongyu wants to merge 5 commits into
Conversation
Enforce the 100 MiB darwin-arm64 P0 budget while retaining the other-target ceiling and engine floor. Exercise relocated split/unsplit workers with shared-memory round trips and awaited exits across physical package layouts. Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com> Plan: .omo/plans/omo-dependency-diet.md
Add a non-publishing three-OS PR workflow that uploads only JSON receipts. Require worker, RPC, and extension probes before runnable release artifacts upload. Preserve every repeated audit case and reject invalid earlier selectors; explicitly assert receipt outcomes instead of trusting capture exit status. Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com> Plan: .omo/plans/omo-dependency-diet.md
Resolve runner.temp only in step environments, where GitHub permits the runner context. Always render the smoke job summary through the shared writer and cover the new workflow in the repository summary inventory. Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com> Plan: .omo/plans/omo-dependency-diet.md
The Windows release smoke exposed a POSIX-only expectation for the metafile argument. Keep full argv equality and derive the expected native filename from the fixture output directory. Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com> Plan: .omo/plans/omo-dependency-diet.md
Capture compiler argv at the process boundary, assert both ordered entries, and execute receipt gates with real Bash and jq. Replace incidental workflow snapshots with scheduling and failure-propagation checks. Schedule native smoke for audit implementation, fixtures, and release-gate changes. Plan: .omo/plans/omo-dependency-diet.md
This branch has not been deployed
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.
What and why
Compile release binaries with
--splitting --minify --keep-names, retaining entry order, the worker path/define contract, autoload settings, assets, and the 1,000-module engine floor. Enforce a 104,857,600-byte P0 ceiling on darwin-arm64; other targets retain the 150 MiB build ceiling.Exercise split and unsplit relocated workers across directory, package-store symlink, and external-symlink layouts. Each test verifies two shared-memory round trips and awaited worker exits after deleting the source tree.
Add a non-publishing pull-request workflow for Linux x64, macOS arm64, and Windows x64. It builds the real release binary, runs worker/build contracts, then captures bytes, graph, RPC, and extension receipts. Only JSON receipts are uploaded. Add the worker/RPC/extension gate before runnable release artifact uploads. No publishing workflow was dispatched.
The capture CLI previously retained only the last repeated
--case. Preserve every selected case and reject invalid earlier selectors so CI cannot silently omit RPC. Both workflows assert parsed receipt outcomes rather than trusting capture's intentionally permissive exit status.Evidence
RED: missing optimization flags and darwin-arm64 accepting 104,857,601 bytes; repeated case selection and absent workflow gates also fail before implementation.
GREEN: 42 build/worker tests pass remotely, no skips. Final workflow checks cover 25 tests, and the audit suite covers 39 tests; both TypeScript projects pass. The inherited optional darwin binary-file check is not applicable on the other CI targets; each actual host binary is independently built and measured by the smoke gate.
Isolated native release build with Bun 1.4.2 and the existing engine pin: 102,119,922 bytes, 2,737,678 bytes P0 headroom, versus the recorded 130,850,802-byte baseline.
Graph: 4,390 modules; historical 3,995 and 4,476 parser fixtures remain independent of the live count.
Real compiled RPC routing, extension identity in both modes, webfetch, image resizing, and changelog probes pass. Providers retain the known module-resolution failures expected before the provider-registration task.
Thirty-run startup means: version 0.06849 s, one-shot 6.88947 s; both pass the same-host baseline gates.
Full P0 comparison is not green: only exact skill-manifest equality fails. Upstream commit
c56c578c5changed the two browsing/research skill files after the immutable baseline. This PR changes neither those files nor the reference receipts; the mismatch is preserved for review.Worker-entry mutation: all six relocation variants fail with
MODULE_NOT_FOUND; the release binary still satisfies size/graph checks but both RPC sessions are quarantined. Restoring the entry yields three consecutive worker-suite passes plus passing compiled RPC/extension receipts.All PR checks are green on
e6910d21f:gh pr checks --watchexits 0. This includes actionlint, every CI shard, all three compiled-worker targets, and all three release-smoke targets, including Windows x64 RPC and extension execution. The job summary is emitted even on failure.Coverage limits and remaining diet targets
CI receipts measure darwin-arm64 at 99,610,098 bytes, Linux x64 at 117,437,920 bytes, and Windows x64 at 122,222,592 bytes. All pass their build ceilings. Comparing the latter two against the immutable target receipts with the audit harness's stricter 80% rule still fails: limits are 116,114,611.2 and 119,950,131.2 bytes, respectively. This flag-only task preserves the 150 MiB build ceiling for those targets; it does not claim the broader relative diet goal is complete or alter sidecars to meet it.
Windows arm64 remains checksum-only; runtime behavior is unverified. Cross-compiled non-native release legs retain their existing smoke policy. The standalone arm64 macOS QA uses a fully materialized payload, while CI mirrors the release workflow's ignore-scripts install. No baseline receipts, engine pin, worker path helper, or sidecar lists were changed.
Refs #8235
Plan: .omo/plans/omo-dependency-diet.md