Repository navigation
refactor(core)!: retire 42 zero-consumer entry exports - #30708
Queued
objectstack-fleet[bot] wants to merge 3 commits into
Queued
objectstack-fleet[bot] wants to merge 3 commits into
objectstack-fleet[bot] wants to merge 3 commits into
Conversation
The @object-ui/core entry stops exporting 42 names nothing outside the package imports (tests and prose counted, hotcrm included). buildQueryAST and defaultQueryASTBuilder had no reader inside the package either and are deleted; the other 40 stay in their modules and only leave the entry. The export-star lines over those modules become named lists, in the entry and in the unpublished evaluator, actions, theme and data-scope sub-barrels. Claude-Session: https://claude.ai/code/session_01L6bhgXepjCvAfm5dmHYdrX Co-authored-by: Claude <noreply@anthropic.com>
…ty modules re-export on the entry The reverse probe over all 518 former entry names caught five names the named lists dropped: CONTEXT_TOKENS, FIELD_UNSORTABLE_VIRTUAL_TYPE, FIELD_SORTABLE_UNPROVISIONED_ANCHOR, FieldSortability and ObjectSortability, which those modules re-export from @objectstack/spec. Claude-Session: https://claude.ai/code/session_01L6bhgXepjCvAfm5dmHYdrX Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
|
domain:ui#6 · os-sales · session_01L6bhgUR8Nu4M7tbtgES7q2 维护者速读
席位核对 — ACCEPT · head dea2c4b
|
objectstack-fleet
Bot
added this pull request to the merge queue
Nov 5, 2026
Any commits made after this event will not be merged.
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.
Requested by Sales · project thread
Part of #25921. The umbrella stays open; this is barrel batch 5, claim 6670047779 (seat
domain:ui#6, batch amendment from the seat after the census). Earlier batches: #30541, #30576, #30629, #30650.Clause-②: no (narrowing)
Metadata-protocol: none
维护者速读
@object-ui/core的包入口不再导出 42 个名字,其中buildQueryAST与它包装的defaultQueryASTBuilder连同代码一起删掉,其余 40 个只离开入口、模块照旧。@object-ui/*包不受影响。入口与内部子 barrel 的export *改成了具名列表,反向探针证明其余 476 个名字一个不少。回滚即 revert 本 PR。ui/packages/core/src/index.ts(11 处export *改具名列表,漏列即丢活名)、ui/packages/core/src/actions/index.ts与evaluator/index.ts(子 barrel 同类改写)、.changeset/25921-core-zero-consumer-exports.md(迁移说明)。git grep -l -w -e buildQueryAST -e defaultQueryASTBuilder -e KNOWN_ACTION_KEYS -e isDebugEnabled -- ':!ui/packages/core' ':!**/CHANGELOG.md'应只命中本 PR 的 changeset。What changes
@object-ui/core, deleted (nothing inside the package read them either):buildQueryASTand thedefaultQueryASTBuilderinstance it wrapped, fromsrc/query/query-ast.ts. Both were re-grepped on the new head: the only hits left are this PR's changeset.@object-ui/core, off the entry only (each module keeps its in-package readers):utils/column-identity:CANONICAL_COLUMN_IDENTITY_KEY,LEGACY_COLUMN_IDENTITY_KEYS,normalizeColumnIdentities,CANONICAL_COLUMN_LABEL_KEY(dropped from the existing named list);utils/dom-props:isOpenDomAttributeFamily;utils/affordanceGrants: typeAffordanceGrantRow;utils/column-sortability:normalizeObjectSortability,OBJECT_SORTABILITY_KEY;utils/action-activation:ACTION_SWITCHED_OFF_KEY;utils/cascade-delete-objects:CASCADE_DELETE_OBJECTS_KEY;utils/sort-values:compareCellValues;errors/index:isErrorCode,formatErrorMessage;utils/debug:isDebugEnabled;utils/filter-tokens: typeContextTokenName;utils/chart-series:isBuiltinAggregate,resolveMeasureLabel,resolveRelationshipTarget,resolveDimensionFieldOptions,INTEGER_AGGREGATES;utils/record-color:isColorLiteral,buildFieldColorMap, typeFieldColorOption. Those elevenexport *lines insrc/index.tsbecome named lists of their kept exports;exportshas only.):evaluator/index.ts(SUBJECT_PERMISSIONS,SUBJECT_CAPABILITIES,ROW_PREDICATE_CANONICAL_ROOT; twoexport *lines become named lists),actions/index.ts(NAVIGATION_ALIAS_KEYS,HOST_DISPATCH_ACTION_KEYS,KNOWN_ACTION_KEYS,classifyActionKeys,hasDeprecatedObjectParams,warnOnDeprecatedObjectParamsleave theactionKeyslist;isLegacyActionEnvelope,actionCopyText,fillTransitionalCopyleave twoexport *lines turned named),theme/index.ts(toCSSColor,generateTypographyVars,generateBorderRadiusVars,generateShadowVars),data-scope/index.ts(isElementDataSourceBlock).@objectstack/spec(CONTEXT_TOKENSthroughutils/filter-tokens;FIELD_UNSORTABLE_VIRTUAL_TYPE,FIELD_SORTABLE_UNPROVISIONED_ANCHOR,FieldSortability,ObjectSortabilitythroughutils/column-sortability); the reverse probe caught them and the second commit puts them back.evaluator/__tests__/rowPredicateCanon.test.tsimportedROW_PREDICATE_CANONICAL_ROOTfrom the evaluator barrel; it now imports the module and asserts the constant is off the barrel, beside the detector that stays..changeset/25921-core-zero-consumer-exports.md: patch level,!title, BREAKING paragraph that says which names are gone from the package and which only left the entry, FROM/TO lines for every retired name, ADR-0087 markernot-required (runtime-export-retired …)naming all 42 operands.Why
Card #25921 narrows
ui/packagesbarrels to names someone imports. The checker export list after this PR is exactly the census list minus these 42 (518 to 476), nothing added.Tests
Census on
origin/main66a8822 with the method of batches 1 to 4: entry export names from the TypeScript checker over the builtdist/index.d.ts; per namegit grep -l -w -Foutside the package, minus**/CHANGELOG.md,pnpm-lock.yamland.changeset/**(test files and prose count), each zero re-run one name at a time; the package*.mdanddemo/; keep rule 3 (reached from a kept export's emitted declaration, walked through non-exported local declarations too, to a fixpoint); hotcrm6961ab1. Full table: project fileissue-25921-seat6/census-b5.md.@object-ui/coreKept by seat ruling, zero hits notwithstanding:
defaultObjectValidationEngine(validation/validators/index.tsstates the deprecated engine stays exported for host applications), andSchemaError,RegistryError,ExpressionError,PluginError(returned by the keptcreateError; a caller needs them forinstanceof).Controls (outside hits, same module as the retired names):
toDomProps111,columnIdentity36,buildChartSeries34,resolveAffordance33,elementDataSourceBlock37,resolveFilterPlaceholders40,isActionSwitchedOff15,FieldValidationError11,attachObjectSortability8,getSortValue6,interpretActionResponse6,createFieldColorResolver6,RETIRED_ACTION_KEYS5,actionCopySource4,QueryASTBuilder3,subjectPermissionsOf3,detectNonCanonicalRowSpelling3,parseDebugFlags3,attachCascadeDeleteObjects3,hexToHSL2; hotcrm imports no@object-ui/corecode but names it in prose (ActionRunner2 files).Readings at dea2c4b (branch head after merging
origin/maina2437b5; the same set first ran green at c21d361 before the merge):Build, type-check, package tests
turbo run build --filter=@object-ui/console... --filter='./packages/**' --filter='@objectstack/dogfood^...': 113 of 113 successful, underos-verify-lock, VERDICT command-exit 0.pnpm --filter @object-ui/core type-check(tsc --noEmit && tsc -p tsconfig.test.json): exit 0.pnpm --filter @object-ui/core test: Test Files 233 passed (233), Tests 4376 passed, 27 skipped (4403), exit 0.Reverse check over every former entry name
A temporary
app-shellprobe re-exporting ALL 518 base entry names of@object-ui/core(types astype),tsc --noEmitinui/packages/app-shellagainst the rebuiltdist/index.d.ts: exactly 42 errors (TS230527,TS272415, all in the probe), and the set of names they name is identical (diff) to the 42 retired names; the other 476 resolve. On the first cut the probe answered 47: it caught the five spec re-exports the named lists had dropped, fixed in the second commit. Probe deleted;git statusclean.Gates
node scripts/pm/dispatch-gates.mjs --commands: 35 derived families, each run with its exit code captured before any pipe, all exit 0 (among themcheck-adr-0087-registration --base origin/main,check-changeset-no-major,check-empty-changeset,check-closing-keyword-parity,check-comment-mask-corpus,check-sdui-manifest,check:published-files,check:type-check-coverage,check:type-check-debt,check:undeclared-dep-imports, andvitest run scripts/inui/: Test Files 170 passed, 2 skipped (172), Tests 4970 passed, 2 skipped (4972)).dispatch-gates --ran: 35 derived, 35 run, 0 NOT-MEASURED (a derived zero: all 35 recorded an exit code).node scripts/check-platform-checklist.mjs --changed-from origin/main: exit 0, 0 anchored files in the change set.Dogfood (narrowing arm)
pnpm --filter @objectstack/dogfood testunderos-verify-lockon dea2c4b: VERDICT command-exit 0; Test Files 421 passed, 3 skipped (424); Tests 3513 passed, 36 skipped (3549); no failures.Deleted names re-grepped on dea2c4b:
buildQueryASTanddefaultQueryASTBuilderappear only in this PR's changeset. No ablation: export lines and two dead declarations only.Acceptance notes
Verification
Reviewer:
git grep -l -w -e buildQueryAST -e defaultQueryASTBuilder -- ':!**/CHANGELOG.md'answers only this PR's changeset; the CIType Check UIlane compiles every@object-ui/*consumer against the narrowed entry.Generated by Claude Code