Repository navigation
fix(plugin-approvals): label the approval request's record_id "Record", since the column shows the record and not its id - #28347
Conversation
…"Record" The column shows the target record's name and icon, so the header "Record ID" told the reader to look for an id that is not there. Field name, queries, seeds and the pointer pair are unchanged. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9qibz9o2UXx9eqto4hqY3
Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9qibz9o2UXx9eqto4hqY3
📓 Docs Drift CheckThis PR changes 1 package(s): 6 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:
⛔ 2 release-owned page(s) also name something this change touched. These are read-only:
What this run could not see
Coarse fallback — 6 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 9e4c6b3c586a058710739a7b85204fb166814991 && git checkout 9e4c6b3c586a058710739a7b85204fb166814991
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 488b3ed092796136551c36a5eb6d143c44a2b878 f17b7d7581e5c9e368734adc421ccd4ab1aaa893 && git checkout -B drift-repro 488b3ed092796136551c36a5eb6d143c44a2b878 && git merge --no-ff f17b7d7581e5c9e368734adc421ccd4ab1aaa893
node scripts/docs-audit/affected-docs.mjs --json 488b3ed092796136551c36a5eb6d143c44a2b878
|
…cord" Both declare referenceVia, so the console draws the target record in the list cell and on the Details tab. sys_mail_association keeps "Record ID": its record page shows the field only in the highlights strip, which draws the stored id as text. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9qibz9o2UXx9eqto4hqY3
…d_id out Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9qibz9o2UXx9eqto4hqY3
…rd_id The sibling objects move to their own card. The changeset now says the approval request's highlights strip leaves record_id out. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9qibz9o2UXx9eqto4hqY3
|
domain:spec#2 · os-tesla · session_01L9qibx5r5nhDMwpRs4SL6D 维护者速读
席位核对 · ACCEPT ·
|
domain:spec#2 · os-tesla · session_01L9qibx5r5nhDMwpRs4SL6D
Requested by Tesla · project thread
Fixes #28250
Clause-②: no
Metadata-protocol: none
维护者速读
record_id字段显示名由 “Record ID” 改为 “Record”;中文 “记录”、日文 “レコード”、西班牙文 “Registro” 同步改。record_id、查询、种子数据、与object_name的指针对、记录锁都不变;回滚即 revert 本 PR。What changes
The Approval Requests list views draw the
record_idcell as the target record (its object's icon and name), becauserecord_idis the id half of the request's pointer pair withobject_name(ADR-0052 §5). The header "Record ID" therefore disagreed with the cell.packages/plugins/plugin-approvals/src/sys-approval-request.object.ts:record_idlabel'Record ID'becomes'Record'. Nothing else in the field moves.packages/plugins/plugin-approvals/src/translations/en.objects.generated.ts: regenerated bynode scripts/check-i18n-bundles.mjs --write; the only diff across all nine bundle packages is this one leaf.sys_approval_action.record_id("Record"), so the two approval objects now agree. The leaf has no source-hash entry in any locale, so no hash table moves.@objectstack/plugin-approvalspatch.Tests
No test pinned the old label (
git grepfor each of the four old strings outside the bundles: 0 hits in tests, 0 underui/), and a label is display copy no consumer parses, so no new pin is added. The pointer-pair, query and seed tests are untouched and pass unchanged.Acceptance notes
object_namekeeps its label "Object". It is not a list column (no list view shows a pointer's type half), and on the Details tab "Object" beside "Record" reads correctly, so it is not the same defect.origin/mainmoved after branch-off;git merge-treeagainst it is clean and none of the incoming files are this PR's.domain:servercard:sys_audit_logandsys_activity(plugin-audit) also declarerecord_idwithreferenceViaand keep "Record ID".sys_mail_association.record_id(service-mailbox) is a different case: its record page shows it only in the highlights strip, which draws the stored id, so its label is right until that strip leaves it out.Verification
All readings at head
f17b7d75on objectstack-ai/objectstack (merge base501c864d), unless a line names an earlier head.Tests
27ee7b7d(the later commits change only the changeset text in this package's scope):pnpm --filter @objectstack/plugin-approvals test: Tests 1361/1361 passed;pnpm --filter @objectstack/plugin-approvals typecheck(tsc, scripts tsconfig, test-typecheck ledger held): lock VERDICT command-exit 0.node scripts/check-i18n-bundles.mjs --write: exit 0; onlyen.objects.generated.tschanged, by the one leaf.Gates
turbo run build --filter='./packages/**'(77/77 tasks), lock VERDICT command-exit 0 both.dispatch-gates --commandsatf17b7d75: 55 families (the same list as at27ee7b7d), each run with stdin from/dev/null, exit codes recorded before any pipe.--ran: 55 derived, 55 run, 0 NOT-MEASURED, 0 UNRUN, 0 red.27ee7b7dtwo had first answered exit 3 (prerequisite not met) until their prerequisites were cleared:check-plugin-teardown-shape --self-test(its pinned control commit621a4876fetched into the shallow clone) andcheck:dual-build-cjs-loads(after the packages build).test:repo, the UI lanes) is CI's.Generated by Claude Code