Skip to content

Commit 5afa1e0

Browse files
docs(spec): component-member read points to the ledger, part 2 of 3 (#23590)
Part of #23434 Clause-②: no Part 2 of 3 of PR-2 for #23434. It executes ruling 6165388570 (letter C, items 1 and 4) and ruling 6181034096 (Q2 → A, Q1 → A), under claim 6181304005. ## What this part changes The read-point records in the doc comments of the **second half** of `packages/spec/src/ui/component.zod.ts` (base lines 7228 to the end: the rest of object-kanban, object-calendar, object-form, object-master-detail-form, object-map, object-gantt, object-tree, object-timeline and the row registrations at the end of the file) move into the liveness ledger. - Each per-hop re-read chain ("At X, re-read there DATE: … byte-identical … held unmoved / MOVED") is deleted. Each record now says "read points recorded in `liveness/page.json`, row `regions`". What the record claims about the renderer stays in the shorter comment. objectui commit references that mark a change, such as "since objectui `ce991bd70`", stay; they are not read points. - `packages/spec/liveness/page.json`, row `regions`, gains one evidence list in its `note`: 120 entries in source order, each `COMPONENT.member: objectui @sha FILE#SYMBOL`. Inside one entry, a letter defined at its head abbreviates a repeated file (`P = objectui @sha FILE`, so `P#a` reads `objectui @sha FILE#a`). The list asserts **no verdict**: component-level liveness stays unclassified, and no row is added. Where a source line was first cited without a SHA, the entry records the tree it was re-read in on 2026-10-15. - `.changeset/23434-component-read-points-part-2.md`: `@objectstack/spec` patch. `src/**/*.zod.ts` and `liveness` are both in the package's `files[]`, so the packed tarball changes. Changed lines: 2,931 (+533 / -2,398) across 3 files, under the 3,000-line review line. Head `3c7f4da05c`. ## The three parts PR-2 is over 3,000 changed lines, so it ships as three pull requests split by file range. Each part branches from `origin/main`; none is stacked on another. - part 1: `claude/issue-23434-pin-citations-pr2-part1` (the first half of `component.zod.ts`) - part 2: `claude/issue-23434-pin-citations-pr2-part2` (the second half of `component.zod.ts`) - part 3: `claude/issue-23434-pin-citations-pr2` (the component tests and the other group-C files, the two held-back moves, the other spellings and the regenerated doc). Part 3 carries the issue's closing line. Part 3's body carries the complete acceptance notes: what was left in place and why, the claim-wording conflict, and the census residue. ## Census, base `7ffc57846a` → all three parts merged Group C = the `ComponentPropsMap` member read points (seat 3's 99). Group R = retirement history, which ruling 6181034096 (Q2 → A) keeps in place. | reading | base | after all three parts | |---|---|---| | retired gate `--list`, historical `` `.objectui-sha` pin SHA `` spelling: group C | 66 | 0 | | same: `action-declarative-update.ts` (landed with #23494 after PR-1; item 3) | 1 | 0 | | same: group R | 34 | 34 (unchanged) | | retired gate's quoted-first-line assertions (`component.zod.ts`) | 6 | 0 (the quoted line is now in the entry) | | PR-1's dated respell "objectui `b9814b334` (re-read there 2026-10-14 …" | 27 | 0 | | wide census, component files: `.objectui-sha` pin with SHA / sha-less / `objectui SHA` | 65 / 24 / 170 | 0 / 0 / 14 (14 = objectui commit references such as "since objectui `ce991bd70`", which are not read points) | | wide census, group R files (H / S / O) | 36 / 8 / 30 | 36 / 8 / 30 (unchanged) | | wide census, other files, item 3 (H / S / O) | 2 / 12 / 38 | 0 / 5 / 16 (the remainder is listed in part 3) | `page.regions` note: 120 entries, 62,138 characters. No schema or gate caps a note's length. Only `evidence` and `producer` are path-scanned by `check:liveness`, and `note` is free text that the lint layer never shows an author. ## How the three parts were measured The three parts were built from one verified union branch, `claude/issue-23434-pin-citations-pr2` at `1646d39e53` (all three parts' changes in one tree). The split was then checked mechanically: - `git merge-tree` of part 1 + part 2 + part 3 onto `origin/main` gives a tree whose `packages/spec` and `content` match the union head exactly (empty diff). The three parts merge in any order without conflict. They share one changed line in `packages/spec/liveness/page.json` (the `regions` note), and it is byte-identical in all three. - Comment-only: every changed `.ts` file was parsed with TypeScript and compared with `origin/main` on its code tokens, JSDoc and comments excluded. All published files are identical. In three test files, six string literals changed: two test names, one `why` reason string and one assertion-message string. No schema, type, export, default, accept or refuse change, and no `.describe()` text change. - Every `objectui @sha FILE#SYMBOL` in the new evidence list and in the edited ledger notes was resolved against an objectui clone at that SHA: the file exists and the symbol occurs in it. 656 references in the 120 entries and 32 in the other notes; 0 unresolved. A negative control (a bogus path and two bogus symbols) reported 3 of 3. Union head `1646d39e53`, through `scripts/pm/os-verify-lock.sh`: - `pnpm --filter @objectstack/spec build`: VERDICT command-exit 0. - `check-generated.ts --fix`: 1 of 14 artefacts stale (`content/docs/references/ui/expression-bindable-text-keys.mdx`, from part 3's shortened docblock), regenerated. The re-check afterwards: "All 14 generated artifacts are up to date". - `pnpm --filter @objectstack/spec typecheck` (tsc, scripts and test typecheck): exit 0. - `vitest run --project local`: Test Files 678 passed (678), Tests 20728 passed, 1 todo. - `vitest run --project repo`: Test Files 61 passed (61), Tests 1033 passed. - `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack`, each exit code captured before any pipe, then `--ran`: "103 derived famil(ies) accounted for — 99 run, 4 NOT-MEASURED". The 4 recorded exit 3 (prerequisite not built): lint `check:doc-formula-expressions`, `check:dual-build-cjs-loads`, `check:i18n`, `check:lean-entry-closure`. One RED that comes from the base, not this diff: `check:platform-checklist` exits 1 with ABSENT SYMBOL findings in `docs/qa/platform-checklist/areas/{access-security,attachments-storage,search}.json`. They point at `packages/metadata-protocol` and `service-storage`, which no part touches; PR-1 reported the same findings. The other 98 exited 0, including `check:liveness`, `check:nul-bytes`, `check:issue-citations` and `check-spec-docblock-symbol-anchors`. On the anchors gate, "citations name no tracked file" went from 1965 on the base to 228. This part's own tree (`3c7f4da05c`), through the lock: spec build exit 0; `vitest run --project local src/ui/component`: Test Files 27 passed (27), Tests 1466 passed. Then `check:generated`, `check:liveness`, `check-spec-docblock-symbol-anchors` and `check:nul-bytes` all exited 0. The full derived battery ran on the union and on part 3's head, not on this part alone (a declared narrowing). CI runs the full set on this pull request. ## Acceptance notes - No ablation: no tested behaviour changed (comment and ledger-note moves only). - No label written: `skip-changeset` does not apply, because a published file changes and the patch changeset is present. The dispatch named no other label. - Left in place in this half on purpose: in-repo file references (`view.zod.ts`, `stack.zod.ts`, `component.test.ts` and similar), and one counting-method sentence, "that identifier in each `src/index.tsx`". That sentence describes how the object-tree `ElementDataSourceGate` count was taken; the counted files and symbols are in that member's entry. No objectui read point remains in this half. --- _Generated by [Claude Code](https://claude.ai/code/session_0121ooBYRmS8ziFXm9ai5YHm)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 19c554d commit 5afa1e0

3 files changed

Lines changed: 533 additions & 2398 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
'@objectstack/spec': patch
3+
---
4+
5+
Component-member read points, part 2 of 3: the doc comments in the second half of `src/ui/component.zod.ts` no longer cite objectui files, lines or commits as read points.
6+
7+
Clause-②: no
8+
9+
- The doc comments of the `ComponentPropsMap` rows from the rest of object-kanban through object-calendar, object-form, object-master-detail-form, object-map, object-gantt, object-tree and object-timeline, and the row registrations at the end of the file now say "read points recorded in `liveness/page.json`, row `regions`". The per-hop re-read chains are removed. What each record claims about the renderer is kept in the shorter comment.
10+
- `liveness/page.json`, row `regions`, gains one evidence list in its `note`: 120 entries spelled `COMPONENT.member: objectui @SHA FILE#SYMBOL`. The list asserts no verdict, so component-level liveness stays unclassified. All three parts of this change carry the same list.
11+
- No schema, type, export, default, accept or refuse change. No `.describe()` text changed.

‎packages/spec/liveness/page.json‎

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)