Skip to content

[finding] Declaring the assembled stage grew @objectstack/spec/api's browser bundle by +19.4% gzipped, and no rule watches it — ./api is in the ledger's unjudged list #17535

Description

@os-bill

PR #17517 declares the assembled package stage on the two /packages read responses. Doing so pulls the datasource/driver tree into ./api's module graph, and a browser consumer of @objectstack/spec/api pays for it.

Measured (at-tier contract review of PR #17517, head c93e1f456a09, 2026-09-10T20:32Z)

raw      : +444,960 bytes
gzipped  : +131,398 bytes   (+19.4%)
graph inputs : 188 -> 237

Why nothing catches it

./api sits in the unjudged list of packages/spec/browser-reachable-entries.json. The ledger carries two rules and only one of them reaches an unjudged entry:

⇒ Nothing is broken. Nobody is watching either. A 19.4% gzipped growth on a published browser entry landed with no gate having an opinion, and the PR body claims the fs fix without claiming the weight.

What this card is NOT

⛔ Not a request to revert or block #17517 — the growth is the consequence of a change that was ruled, reviewed and measured, and the review returned zero must-fix.

⛔ Not an assertion that 131 KB gzipped is too much. That is precisely the judgement nobody has made, which is the point: unjudged is a real state in that ledger and this entry is in it.

⚠️ Explicitly unmeasured: whether this matters to the real downstream browser consumers. objectui and cloud — the sibling repos #11072 originated from — were not measured, and are not reachable from the session that found this. Whoever takes this card should measure there before proposing a threshold.

Shape, offered ⛔ not asserted

Either judge ./api in the ledger (giving rule 1 something to assert), or record deliberately that it stays unjudged and why. Both are answers; silence is not.

Provenance and label discipline

Surfaced as an advisory by the at-tier contract review of PR #17517 (card #17431), 2026-09-10T20:32Z. ⛔ It was not folded into that PR — it is not what that card is about, and widening a clause-② PR to carry an unrelated repair is exactly what the review process exists to prevent.

Filed with no domain:* label, deliberately. SKILL.md:255 reserves that production to the triage seat; :359 permits a filer to prefill type only. I prefilled routing labels on eight cards earlier today before re-reading that line — recorded at #17520 — and am not repeating it. Triage routes and grades this one.


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

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions