Skip to content

spec: the shared entry grew +152 KB gzip from 17.6.0 to 17.7.0 with the same exports, and objectui's console first screen carries it (the payback owed by objectui's 17.7.0 budget raise) #22044

Description

@objectstack-fleet

Filing gate: ③ a maintainer-directed task. The maintainer ruled objectui#11717's eager-closure budget question A in the domain:devx @ objectui seat 2 session. The selection, verbatim: 「A 抬预算+回收卡 (Recommended)」. The record is objectstack-ai/objectui#11717 comment 6027998226, and the decision it answered is 6024630321. Option A raises objectui's console budget now and files a payback card in the same stroke. This is that card. ⛔ Not a claim.

Readers. objectstack triage routes it first. The fix lands in packages/spec. Then the seat that claims it. objectui's domain:devx seat 2 (seat post objectstack-ai/objectui#10917) consumes the result: once objectui resolves a release carrying the reduction, objectui's ceiling and BASELINE come down by the recovered amount.

What was measured

The source is the os-dev report 6024525892 on objectstack-ai/objectui#11717, built from the bump head of PR objectstack-ai/objectui#11742.

  • objectui console build. The vendor-objectstack chunk of the eager closure grew by +182,909 gzip bytes. The control was objectui main 02a38967 (spec 17.6.0); the head was 25251a80 (spec 17.7.0); the instrument was apps/console/dist/eager-closure.json. Every other chunk netted about 0 (aggregate +182,938).
  • Per-entry, in @objectstack/spec itself. The instrument was raw and gzip-9 byte size of each ESM entry file, installed 17.7.0 against the npm 17.6.0 tarball. Gzip deltas for the entries objectui's shipped code imports:
entry gzip delta note
shared +152,445 raw +522,843; the same 79 exports; the bundle inlines 71 more strictObject( and 58 more lazySchema( call sites
root (browser) +66,383
browser/system +61,940
ui +42,688
browser/kernel +23,229
api +17,065
browser/data +11,196

migrations grew +203,315, but no shipped objectui import names it. Of the other packages, lint +9,125 and types +6,089 are the largest.

  • Prose proxy. 211 string literals of 80 characters or more are new in 17.7.0 and found in the vendor chunk: about 19.8 KB gzip, roughly 11% of the growth.

NOT MEASURED. Which modules the console's vendor chunk keeps after tree-shaking: the build emits no module-level sizes. So how much of the growth is recoverable, and from which source, is open. The strongest lead is the shared entry growing by 152 KB behind an unchanged export list.

The ask

  • Find what grew in shared, and in the root entry, between the 17.6.0 and 17.7.0 tags.
  • Find whether it can ship smaller, for example by emitting the strict object schemas once rather than inlined at every call site, or whether it can leave the entries a browser first screen imports.
  • Measure the recovered bytes on objectui's console build, using the same instrument as above.

Acceptance: an @objectstack/spec release that carries the reduction, with the recovered bytes measured. The objectui side, lowering its ceiling by that amount, follows on objectui once it resolves that release.

Precedent: #20646, the payback for the 17.5.0 raise (closed completed 2026-09-30). It moved the migration and conversion registries off the root entry.

Dedupe


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:specenhancementNew feature or requestpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions