Repository navigation
Commit 5afa1e0
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
- .changeset
- packages/spec
- liveness
- src/ui
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
Large diffs are not rendered by default.
0 commit comments