Repository navigation
docs(spec): the record-page timeline total's published description reads it as an upper bound of the drawn entries - #29357
Conversation
…an upper bound of the drawn entries RecordPageTimelineCountSchema's docblock and its total .describe() now say what the RecordPageTimelineRequestSchema docblock says: the total counts the sources' rows as that schema's table defines them, so it is an upper bound of the entries the panel draws. Regenerated the API reference page. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jUNaEANxba2LHLfyuZ
…-5majrv Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jUNaEANxba2LHLfyuZ
📓 Docs Drift Check1 anchor(s) derived from 1 changed package(s); no hand-written page names any of them, so this run has nothing to list — not a clean bill of health. This check sees only pages that NAME a derived anchor: one that documents this change in prose, or enumerates it in an authoring dialect, names none and stays invisible to it on every run. What this run could not see
Coarse fallback — 168 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 6aef5fdb82b60b72cc07a834e6a1709596be6a33 && git checkout 6aef5fdb82b60b72cc07a834e6a1709596be6a33
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 57cde8cb3da5970f2c3f6512569cacdb9b2b06a8 3d670128cf3ea57a2845ad44ea6d11b03212657d && git checkout -B drift-repro 57cde8cb3da5970f2c3f6512569cacdb9b2b06a8 && git merge --no-ff 3d670128cf3ea57a2845ad44ea6d11b03212657d
node scripts/docs-audit/affected-docs.mjs --json 57cde8cb3da5970f2c3f6512569cacdb9b2b06a8 |
… upper bound of the drawn entries The RecordPageResponse.timeline docblock in @object-ui/types says what the spec's RecordPageTimelineCountSchema now says: the total counts the sources' rows, so it is an upper bound of the entries the panel draws, and names the two cases where the panel draws fewer. Comment only. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jUNaEANxba2LHLfyuZ
|
director#1 · zhuangjianguo · session_01QsR2jV5sBSzCYNEDgpYLJw Contract-review-claim: session_01QsR2jV5sBSzCYNEDgpYLJw · head 3d67012 · 2026-11-02T13:36Z Generated by Claude Code |
|
director#1 · zhuangjianguo · session_01QsR2jV5sBSzCYNEDgpYLJw Contract reviewServed-tier: Read-only review of the committed tree. Check-runs on the head at claim time: 59 success, 9 skipped, 1 in progress (the PR-body guard re-run after the seat's body patch); the seat lands on a green head. ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
No must-fix found. No should-fix. Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:ui#4 · zhuangjianguo · session_01QsR2jR7ZFkpqmm4U8S1f9y 席位核对 · ACCEPT · 2026-11-02T13:36ZHead-sha:
Generated by Claude Code |
|
domain:ui#4 · zhuangjianguo · session_01QsR2jR7ZFkpqmm4U8S1f9y Landed · 2026-11-02T14:13Z · PR #29357 merged through the merge queue as
The card closed through Generated by Claude Code |
domain:ui#4 · zhuangjianguo · session_01QsR2jR7ZFkpqmm4U8S1f9y
Requested by Steedos · project thread
Fixes #29138
Clause-②: no
Metadata-protocol: none
维护者速读
RecordPageTimelineCountSchema的文档注释与total的.describe()改为说明总数统计的是请求所点名各来源的行数(按调用者可读),是「动态」面板实际绘制条目数的上界,并点名两种少画的情形;API 参考页与 JSON schema 随之重新生成;@object-ui/types中RecordPageResponse.timeline的镜像注释同步改为同一说法。total描述仍写成「面板持有的条目数」,第三方客户端会把差值当成缺陷。.min()、默认值、导出与运行时行为;回滚即 revert 本 PR。packages/spec/src/api/record-page.zod.ts(RecordPageTimelineCountSchema注释与total描述)、content/docs/references/api/record-page.mdx(生成结果)、ui/packages/types/src/data.ts(timeline注释)、.changeset/29138-timeline-total-describe.md。pnpm --filter @objectstack/spec build && pnpm --filter @objectstack/spec check:generated,预期 All 14 generated artifacts are up to date。What changes
packages/spec/src/api/record-page.zod.ts: theRecordPageTimelineCountSchemadocblock and itstotal.describe()now say what theRecordPageTimelineRequestSchemadocblock (landed in d089dac) says: the total counts the rows of the sources the request named, as that schema's table defines them and as the caller may read them, so it is an upper bound of the entries the 动态 panel draws, not their number. Both name the two cases where the panel draws fewer: itsshowCompleted/typesconfiguration, and a ledger row with no displayable diff.timeline.describe()inRecordPageRequestSchema("Return the size of the record's timeline stream over the sources named (RecordPageTimelineCountSchema).") is not touched. It says "size", the word the landed file header defines as the sources' row count, and it points atRecordPageTimelineCountSchema, whosetotalnow carries the upper-bound sentence. The response-sidetimeline.describe()uses the same word and the card keeps it fixed, so leaving the request side alone keeps the two sides in the same words.ui/packages/types/src/data.ts: theRecordPageResponse.timelinedocblock in@object-ui/types, the UI's mirror of the response, says the same: the total counts the sources' rows, so it is an upper bound of the drawn entries, with the same two cases. Folded in by the seat's claim amendment on the card (comment 6577666544). Comment only..min(), default or export moves. Only the two docblock comments and one description string change.content/docs/references/api/record-page.mdx(thetotalrow in both nested shapes that showRecordPageTimelineCount). The JSON schema underpackages/spec/json-schema/is gitignored and regenerated by the build; nothing else thatcheck:generatedcovers moved..changeset/29138-timeline-total-describe.md,@objectstack/spec: patchand@object-ui/types: patch(itsdist/*.d.tsships the docblock).Tests
No new tests: the change is prose. The spec package's suite and
check:generatedran on the final head (readings below).Verification
check:generated and the JSON schema reverse check
pnpm --filter @objectstack/spec build && pnpm --filter @objectstack/spec check:generatedbefore regenerating:✗ 1 of 14 artifact(s) stale: check:docs. Aftercheck:generated --fix:✓ All 14 generated artifacts are up to date.grep -rl "upper bound of the entries the timeline panel draws" packages/spec/json-schemalistsapi/RecordPageTimelineCount.json,api/RecordPageResponse.jsonandobjectstack.json; the old sentence has zero hits inpackages/spec/json-schema,content/docsandpackages/spec/src.Tests, type-checks and the derived gate sweep on head 3d67012
pnpm --filter @objectstack/spec teston 21c2817 (the last head that movedpackages/spec; 3d67012 only adds the@object-ui/typescomment and the changeset line): VERDICT command-exit 0, Test Files 791 passed (791), Tests 23391 passed, 1 todo.pnpm --filter @objectstack/spec typecheck(21c2817): exit 0.pnpm --filter @object-ui/types run type-check(3d67012): exit 0.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackon 3d67012: 100 derived commands (38 changed lines, 4 files), includingnode scripts/check-sdui-manifest.mjsandpnpm --dir ui exec vitest run scripts/. Ran all 100: 99 exit 0, andpnpm check:dual-build-cjs-loadsexits 3 (PREREQUISITE NOT MET: some workspace packages have no dist without a full build), so it is NOT MEASURED locally and left to CI.--ranreconciliation: 100 derived, 99 run, 1 NOT-MEASURED, 0 UNRUN.check-changeset-no-major --base origin/main,check-closing-keyword-parity,check-adr-0087-registration --base origin/main,check-partof-closing-keyword) exit 0 on this body withClause-②: no/Metadata-protocol: none; none asked for a different declaration.Generated by Claude Code