Repository navigation
test(data-objectstack): state the batch-6 DroppedFieldsEvent reason pin with stored_expression subtracted (objectui#13309) - #13311
Merged
objectstack-fleet[bot] merged 2 commits intoOct 21, 2026
Conversation
…in with stored_expression subtracted (objectui#13309) objectstack-ai/objectstack#24778 added a fifth arm, `stored_expression`, to `DroppedFieldsEventSchema.reason`. `_ReasonIsTheEnum` stated the union as exactly four members, so the Spec Shape Gate (objectui main against the spec built from objectstack main) reds on TS2344. Apply the objectui#11206 shape: subtract the new arm, a no-op at the pin; drop it at the pin bump that carries the arm. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB
…nothing (objectui#13309) Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XVp19E1MYUTFM3dnkwz8gB
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
objectstack-fleet
Bot
deleted the
claude/issue-13309-dropped-fields-reason-pin
branch
October 21, 2026 10:09
This was referenced Oct 21, 2026
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.
Fixes #13309
Clause-②: no
What was red
objectstack-ai/objectstack#24778 (merge
7532ea3c08) added a fifth arm,stored_expression, toDroppedFieldsEventSchema.reason. The batch-6 pin_ReasonIsTheEnuminpackages/data-objectstack/src/spec-symbol-batch6.test.tsstated the union as exactly four members, so objectstack's hourly Spec Shape Gate (objectuimaincompiled against the spec built from objectstackmain) reportsTS2344on it.The change
The objectui#11206 shape, as the card prescribes:
_ReasonIsTheEnumnow assertsEqualof (DroppedFieldsEvent['reason']with'stored_expression'removed byExclude) against'readonly' | 'readonly_when' | 'primary_key' | 'computed'._ReasonIsNotStringis kept unchanged. The comment above it says: theExcludeis a no-op at the pin; on objectstackmainit subtracts exactly the new arm, so any other new arm is still a remainderEqualrefuses; at the pin bump that carriesstored_expressiontheExcludeis dropped and the union becomes five members (the objectui#13178 tripwire inwriteWarningToast.test.tsfails on that bump to say so).No source file changed.
.objectstack-shadid not move. A.changeset/13309-dropped-fields-reason-pin.mdwith an empty frontmatter is added becausecheck-changeset-presencecounts a test file undersrc/as published source (it exits 1 without it, measured).Measurements (test file blob identical at
7f58b8c400and head6ee70cebc3; the head commit adds only the changeset)pnpm --filter @object-ui/data-objectstack run type-check.objectstack-sha06cab4849a)2794254099main28c9a2cb662794254099TS2344on_ReasonIsTheEnum(the card's red, reproduced)main28c9a2cb66The
mainside reproduces the gate's own wiring: an objectstack worktree atorigin/main,pnpm install --frozen-lockfile --filter @objectstack/spec...,pnpm --filter @objectstack/spec build,npm pack --ignore-scripts, thennode scripts/ci/spec-shape-gate.mjs injectinto this worktree (marker file present in the resolved copy,stored_expressionin its declarations). The closure (@object-ui/data-objectstack^...) was rebuilt against it before the type-check. Afterwards the injected copy was removed andpnpm run setupreinstalled the pin (no marker left, nostored_expressionin the installed declarations), and the pin row above was re-measured after a fresh closure rebuild.Sixth-arm probe (one-shot, not kept): a local alias
_ProbeReason= the reason union plus'sixth_arm_probe'was put in place ofDroppedFieldsEvent['reason']inside theExclude. On-disk anchor count checked before compiling (1). Result:TS2344on_ReasonIsTheEnum, exit 2, against both themain-built spec and the pinned spec. Restored withgit checkout HEAD -- PATHunder anEXIT INT TERMtrap; proof is the HEAD blob hash comparison (match) andgit diff HEADempty.Gates (local, at the branch head)
--maxWorkers=1:spec-symbol-batch6.test.ts+writeWarningToast.test.ts2 files / 36 tests passed;deleteViewContract.types.test.ts+queryDataset.test.ts(the other tests naming the file) 2 files / 38 tests passed. The fullpackages/data-objectstack/andpackages/app-shell/directories are declared to CI.check:phantom-deps,check:self-import,check:unreferenced-sources,check:doc-example-readers,check:handler-key-reads,check:side-effects-array,check:element-data-source-declaration,check:spec-symbols,check:action-forward-parity,check:designer-field-key-parity,check:icon-record-names,check:i18n-keys,check:i18n-drift,check:i18n-designer-parity,check:control-bytes,scripts/check-hand-rolled-comment-mask.mjs,scripts/check-changeset-fixed.mjs,scripts/check-changeset-presence.mjs: all exit 0.check:spec-floors: exit 1, the known prerelease-floor reading for@object-ui/typesonmain; not touched here.eslint --no-inline-config --format jsonon the one changed.tsfile: 1 file, 0 errors, 0 warnings. The package'slintiseslint ., so the file is in its population; type-aware linting is off (noproject/projectServicein the printed config), so this diff cannot move any untouched file's verdict.Acceptance notes
mode/formViewretirement and on PR #24778's widenedDroppedFieldsEvent.reason, and neither is registered objectstack#25055 (the objectstack half) has PR ci(spec-shape-gate): register the retirement of addRecord mode / formView and the widened DroppedFieldsEvent reason objectstack#25091 open, not merged, registering this diagnostic inscripts/ci/spec-shape-retirements.jsonwith this card asdownstream_card. Once this lands, that entry reads "matched nothing in this run" and is deleted when this card closes.Generated by Claude Code