test(spec): the fourth data/ file group's test titles state each cited decision in words instead of a tracker number (stage 18) - #21870
Merged
Conversation
…d decision in words instead of a tracker number (stage 18) The 17 test files directly under packages/spec/src/data/ that carry a tracker id, from filter.test.ts through object.test.ts, carry none in a test title. Each id became a statement, in words, of what its record decided, or was dropped where the title already said it. Text only: no assertion, identifier, code comment or non-test file moves. Claude-Session: https://claude.ai/code/session_01T9u38rswFp5Rw8DswRUReJ Co-authored-by: Claude <noreply@anthropic.com>
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
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.
Part of #20749
Clause-②: no
Stage 18 of this card: the next area of class (e), the test strings shipped under
packages/spec/src, as ruled in5902360492on #20513. This stage takes the fourth name-ordered file group directly underpackages/spec/src/data/: the 17 test files that carry an id fromfilter.test.tstoobject.test.ts. They carried 103 messages and 114 tracker ids, citing 81 records. Every one of those ids now either states what its record decided, in words (form D), or is dropped where the title already says it. Text only: no assertion, identifier, test count or code comment changes.Census at the base (
c9be1f179d)Instruments:
census10.cjs(md59d08602ab972b4b8643c90d64d40fa41),census.cjs(md56e42a45a926d375013c32d62f16a296e),census-wide.cjs(md5c98410a19529c439adb0afbfb00026a2) anddirtable.cjs(md5dda605c54745b4a60cc14c9a686e4eff). They are byte-identical to the copies stages 10 to 17 used. A literal counts as a test title when its folded message is argument 0 of adescribe/it/testcall,.each/.skip/.onlychains included. Everything else is an "other" string.The base is
c9be1f179d, one commit past the claim's969ffba25e. That commit (#21857) touches onlyplugin-security, so the test census is the same. Both instruments read 1045 messages / 1108 ids in 225 files, the seat's reading and stage 17's head reading.ui/api/data/(this PR: the fourth group)system/src/)ai/contracts/The group reads 103 messages / 114 ids in 17 files, the seat's figures, file for file. Every one of them is a test title:
data/)filter.test.tsform-delete-behavior-options.test.tsform-return-type-options.test.tshook-body.test.tshook.test.tsimport-coercion.test.tsimport-mapping-target.test.tsinjected-system-column-provenance.test.tsinjected-system-columns.test.tsinline-grid-column-currency-scale-refused.test.tsinline-related-columns.test.tsmanaged-api-affordance.test.tsmasked-field-types.test.tsnumeric-column-representation.test.tsobject-image-field.test.tsobject-strictness-batch20.test.tsobject.test.tsFive more test files sit in the same name range and carry no id:
hook-api,hook-body-stored-metadata-target,inline-grid-columns,mapping-connector-sourceandmapping. They are not touched.data/query.test.ts, outside the group, reads 11 / 11 at the head as at the base, its "other" string at:202included. Dark:data/import-mapping-target.test.tsreads 0 / 0 at the head while 2 of its comment lines still carry a number. Planted in scratch copies of head files: an id put into ahook-body.test.tstitle reads 1 / 1, and an id put into amasked-field-types.test.tscomment reads 0.#plus digits) reads the same totals as the gate pattern in 16 of the 17 files at the base.object.test.tsreads one more, at:857, which is the colour value'#00FF00'and not a tracker id. At the head the wider pattern reads 0 in 16 files and that same colour inobject.test.ts.How the area was chosen
data/has no subdirectory to split by, so its stages take name-ordered file groups near the ~100-id bound. Stage 17's re-cut named this group at 114, withobject.test.tsalone carrying 42, and this census reads 114, so the rule needed no re-cut.Named for the next stages (re-cut from the head census, 942 / 994;
data/82 / 86 left, in 18 files):data/, one more stage:query-transport.test.tstovalidation.test.ts(11 files, 34 / 34) withdata/driver/(7 files, 48 / 52): 82 messages / 86 ids.ui/419, about four stages.api/201, two.system/165, two. The files directly insrc/, 120, one.ai/build-progress.test.ts:236,:237,contracts/approval-service.test.ts:274), one stage with their docblocks.What each id became
34 literals (41 ids) now state a decision in words. 69 literals (73 ids) drop a number the title already explains.
Every cited record was read with its comments through REST. 73 answer 200;
framework#2536is counted there, because the repository was renamedframework→objectstack(apps/docs/lib/layout.shared.tsxrecords the rename). The old name answers 403 from this session, and the same number under the current name is the compactLayout retirement that the title names. Eight answer 404, and each decision was read from what landed, by REST GET of the landing commit and its CHANGELOG entry: #6571 (2f3e79351e), #10165 (8012960508), #10347 (530c1df653), #10527 (5649efbf93), #11195 (b372318836), #11408 (f11fc61c51), #13644 (34ce8e7dbe) and #18012 (176b03582e).data/)filter.test.ts:77stringjoined the four ordering slots because the platform's own date-macro resolver produces only strings.filter.test.ts:166$inmember.filter.test.ts:364$betweentakes the ISO and clock strings the platform produces". The sibling half of #5685, from2f3e79351e.filter.test.ts:549.strict(), so a refused member has nowhere to land.filter.test.ts:576$fieldcompiles to a same-table column comparison on SQL push-down.filter.test.ts:1541{$and:[]}is every row,{$or:[]}none,{$not:{}}none.filter.test.ts:1851filter.test.ts:1998$fieldcomparand names a column of the same row". The relation-path example was the wrong half; the same-table prose was right.hook.test.ts:352systemoruser, and inherits by default". Ruled:runAs: 'system' | 'user' | 'inherit', default'inherit'.hook.test.ts:52934ce8e7dbe.hook.test.ts:924defineDatasourcepattern: the convention-scan path got a parse at authoring time.hook.test.ts:1148preserveAuditthrough a parse (the opt-in a historical import uses to keep its audit stamps)".hook.test.ts:1286object()andtransaction()". Ruled option C.import-coercion.test.ts:23,:48injected-system-column-provenance.test.ts:53injected-system-columns.test.ts:17inline-grid-column-currency-scale-refused.test.ts:172scaleon a currency field; the letter went with the id.managed-api-affordance.test.ts:57numeric-column-representation.test.ts:24packages/spec, both producers read it.object-strictness-batch20.test.ts:93,:229:132already says it and keeps only "批 20".object-strictness-batch20.test.ts:124object-strictness-batch20.test.ts:187systemFieldsis the batch's ONE union flattened to a bareInvalid input— …".object-strictness-batch20.test.ts:380owning_business_unit_idtoo". #6365 is dropped: the title already states its correction.object-strictness-batch20.test.ts:422userActionsvocabularies stay disjoint, the three adopted view keys included — …".b372318836adoptedgroup/hideFields/rowColoronto the view block.object-strictness-batch20.test.ts:528IndexSchemais closed (the held 14th site, once the console index editor converged on it)".object.test.ts:1885649efbf93.object.test.ts:192530c1df653.object.test.ts:264object.test.ts:2898012960508.object.test.ts:1101object.test.ts:1713f11fc61c51, in #10144's declare-or-rule-out family.object.test.ts:2135Dropped where already stated (69 literals, 73 ids). A number goes only where the title already says its decision, for example "$field members are refused (#7596)", the four
crypto.hashtitles inhook-body.test.ts(#4391), the#20045 —prefix on the four other describes of the currency-scale file, and twenty-nineobject.test.tstitles such as "managedBy: retiring the overloadedsystembucket (#3355)".(ADR-0049),(ADR-0066),(ADR-0100)and(ADR-0087 …)stay: they cite decision records by number, not tracker ids.Three judgements, each declared:
filter.test.ts:298keeps "ruled 2026-08-31" and drops only(#13357). The sibling title at:656names "the 2026-08-31 ruling", so the date stays as its anchor.批 20label stays on the four batch-20 describes, because the file's own name and header carry it. Only#4001andobjectui#4772went.object-strictness-batch20.test.ts:563drops "(控制台保存筛选条件会 422:ViewFilterRuleSchema拒绝 filter-builder 盖的id,而 wire 成员的.strip()救不到嵌套块 #5114 class)": the title already says what is pinned, that the tombstones keep their prescription through the strict close.Readers
-t/--testNamePattern.__snapshots__directory is tracked underpackages/spec.packages/spec/vitest.repo-tests.json; all 17 run in thelocalproject.scripts/check-*.mjsself-test reads one. The 8 needle hits fall on 7 lines:object.zod.ts:2532;system/stage (system/job.test.ts:471);cli(extract-hook-body.test.ts:179),driver-sql(sql-driver-16318-numeric-representation.test.ts:64) andobjectql(engine.test.ts:831).None reads a spec test title.
test-typecheck-debt.json,engine-double-contract.pinned.json,objectql-double-limit.baseline.json) key on the file and on error signatures, not on a title, and each gate exits 0 at the head.scripts/check-org-identifier.mjscountssession: { … tenantId … }literals inhook.test.ts, which this PR does not touch. ADR-0129 quotes "name-as-identity", a title this PR does not change.Text-only proof
Stage 10's scratch tool (
textonly10.cjs, md5d5e4801dbb4329ab1984da91e92fc47c) compares base and head file by file on three legs:#plus digits after. This stage declares no line: every changed leaf is a title.+and-lines are exactly the 103 planned lines, and every file keeps its line count.it.eachrow name given an id VIOLATION; an undeclaredexpectmessage changed VIOLATION; a title re-split into a+chain DIFF. The non-title control's first anchor matched nothing (0 hits, so nothing ran). Its anchor was corrected and all ten were run again.Test counts: the 17 files were run at the base, in a separate base worktree, and at the head, with
--project local --project repo. Both sides read 670 tests, all passed, with the same count and status sequence per file in 17 of 17. 378 full test names change, and each equals the base name with the planned replacements applied (0 mismatches). No full name repeats on either side.mainsince the baseRe-fetched just before this PR opened,
origin/mainwas two commits past the base (9f9510f25e: #21858, #21862). Neither touches any of the 17 files; the onepackages/specpath among them isapi/error-code-ledger.zod.ts. Somainwas not merged.git merge-treeonto9f9510f25eis clean. No open PR touches the 17 files.Changeset:
skip-changesetMeasured, not assumed:
npm pack --dry-runof@objectstack/speclists 2068 files. 0 of the 17 touched files are in it, and no*.test.tsat all. The controlssrc/data/filter.zod.tsanddist/index.mjsare in it.dist/, a new phrase and an old literal each read in 0 files. The controlUnrecognized keyreads in 42.So this PR publishes nothing, and no changeset is added.
Verification (at
21f39afe57)pnpm turbo run buildover all packages: 71 / 71.@objectstack/spec:vitest run --project local: 615 files, 18387 passed, 1 todo.typecheckexit 0, includingcheck:test-typecheck(52 files / 246 errors / 135 pinned signatures held). Its program holds all 17 touched files, counted withtsc --listFilesOnly -p tsconfig.test.json.check:generated: all 15 generated artifacts up to date.dispatch-gates --commandsderived 79 families, the same set as stages 13 to 17, and all 79 exit 0.--ranreconciles: 79 derived, 79 run, 0 NOT-MEASURED, 0 UNRUN, every family with its exit code recorded.check:meta-url-spelling,check:spec-changes,check:authz-resolver,check:error-code-casingandcheck:filter-alias-parity.STALE TREE:scripts/engine-double-contract.pinned.jsonmoved onmainafter the base. This diff adds and changes no engine double,check:engine-double-contractexits 0 on this tree, and the queue re-runs it on the merged generation.--no-inline-configover the 17 files reads 0 errors and 0 warnings. The population comes from ESLint's own config: 17 configured, 0 ignored. No file setsparserOptions.projectorprojectService, so no untouched file's verdict can move.check-governed-merges --test: NOT governed, 206 changed lines.Acceptance notes
packages/spec/src, 9 insystem/(for examplesystem/job.test.ts:471, thejob.timeouttwin ofhook.test.ts:1382) and 29 inui/(for example the#4001 批 15/批 16/批 18/批 19describes andui/view-filter-rule-wire-id.test.ts's four#5114describes).describe/it/testlines outsidepackages/spec/srcfinds 140 lines citing ids this PR handled:objectql23 (13 files),service-analytics18 (8),lint17 (9),driver-sql11 (7),cli10 (4),runtime10 (7),platform-objects5,plugin-audit5,plugin-security5, and fewer in 16 more places, among them twopackages/spec/scripts/*.test.tstitles (outsidesrc/) and one title each inexamples/app-crmandexamples/app-showcase.// [#20150]block atimport-mapping-target.test.ts:17, the#4001 批 20header ofobject-strictness-batch20.test.tsandobject.zod.ts:2532. Comments are not this card's share, and none is touched here.Generated by Claude Code