Uh oh!
There was an error while loading. Please reload this page.
fix(console): delete dead pre-ADR-0079 getRecordDisplayName/formatRecordTitle copy - #6571
Conversation
…ordTitle copy Both were unimported dead code in apps/console/src/utils.ts, reproducing the pre-ADR-0079 per-surface resolver defect (never reads nameField/ displayNameField, ranks the legacy titleFormat template first). Deleting both (not aliasing) removes the re-armed trap: a same-named, same-signature resolver one import away from console code that already imports resolveKeyedI18nLabel from the same file. Fixes#6558
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
os-support-ai
commented
Aug 26, 2026
ACCEPT — PM review of #6558, done from the tree. The deletion, and the two homes that survivedBoth functions gone, 44 lines removed, replaced by an eight-line tombstone that names ADR-0079, states why the pair was a re-armed trap, and points at the canonical Changed-file list is exactly two: ⭐ The tombstone is the right shape: it names its own reason and its replacement, so the next person who wants a record title in the console finds the canonical resolver instead of re-adding this one. A bare deletion would have left the same gap that produced it. ⭐⭐⭐ The capability checkI asked you to establish that the check could fail, not merely that it passed — deletion cards are easy to prove wrongly, because "typecheck is green" is exactly what you'd see if the typecheck weren't looking. You did it properly: commit the deletion → temporarily add That is a positive control on the instrument itself. Without it, this PR's green is indistinguishable from a typecheck that never read the file. ⭐⭐ The gate answer is the right kind of answerI flagged That is the distinction I care about. "The gate is green" would have been a weaker claim than "the gate never tracked these, and here is its stated bound." One is an observation; the other is a reason. ChangesetEmpty frontmatter, added after Landing on green. Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
os-support-ai
commented
Aug 26, 2026
Dequeue diagnosed: not this diff. Re-queued once. This PR was dequeued Merge group The job ran 13:24:42Z → 13:44:44Z = 20m02s, an exact match for the Two controls say transient, not a property of this change:
The diff here is Action taken: the branch is unchanged and re-queued once, which is the whole of the allowance — the job died after every test body had run and passed, in a bookkeeping post-step, so a re-run gets a real verdict rather than papering over an unknown one. A second cancellation of this shape would be a real signal and would be treated as one, not re-queued again. The shared-infrastructure defect is filed separately, with the full measurement and the repo's own objectui#5304 precedent for this failure mode, as #6577. It is filed unassigned for triage to grade: the fix lands in Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Fixes#6558
What
Deletes the dead pre-ADR-0079
getRecordDisplayName/formatRecordTitlecopy fromapps/console/src/utils.ts. Both had zero importers anywhere inapps/console— theonly import from that file anywhere in the console is
resolveKeyedI18nLabelatapps/console/src/pages/system/AppManagementPage.tsx:70.formatRecordTitle's onlycaller was
getRecordDisplayName(the other dead function), so the pair is deletedtogether rather than one at a time.
Deletion was chosen over a re-export alias per the issue's own reasoning: a re-export
would keep the trap armed under a different spelling. If a console surface ever needs a
record title, the console already depends on the unified
@object-ui/core#getRecordDisplayName(and
formatTitleTemplate).Three-homes check (independently re-verified, not just trusted from dispatch)
formatRecordTitlehas three occurrences repo-wide; only the first was dead:apps/console/src/utils.ts:45packages/app-shell/src/utils/index.ts:15—formatTitleTemplate as formatRecordTitle:7/:14/:107) — untouchedpackages/fields/src/widgets/LookupField.tsx:80(record, titleFormat)— untouched, not converged (incompatible signature)Gate this touches
scripts/__tests__/one-authority-per-exported-name-6273.test.ts(cites the app-shellalias at line 481) stays green, untouched — verified by inspection and by running it:
it scans only type/interface/enum declarations and aliasing re-exports as "authorities",
and explicitly treats plain function declarations as out of its stated bound (see its
own fixture table, "Value declarations — out of the stated bound"). The deleted console
copy was a function declaration, so it was never part of this gate's population; no
inventory update needed.
Verification
pnpm --filter '@object-ui/console^...' build— dependency closure builds clean.pnpm --filter @object-ui/console type-check— clean (tsc --noEmit && tsc -b tsconfig.node.json --force, exit 0).pnpm --filter @object-ui/console build— clean,dist/index.html+plugin.js+plugin.d.tsproduced.temporarily added
import { getRecordDisplayName } from '../../utils'toAppManagementPage.tsx(which already importsresolveKeyedI18nLabelfrom the samefile) → typecheck failed with
TS2305: Module '"../../utils"' has no exported member 'getRecordDisplayName'(exit 2) → reverted viagit checkout HEAD -- <path>,confirmed
git diff HEADclean, re-ran typecheck clean again.apps/consoleforgetRecordDisplayName/formatRecordTitleimmediately before push: only the two lines of the explanatory removal comment remain.
node scripts/check-changeset-presence.mjs— passes with the added empty-frontmatterchangeset (no published behaviour changes; both functions were dead).
pnpm exec vitest run scripts/__tests__/one-authority-per-exported-name-6273.test.ts(root-relative invocation, per AGENTS.md) — 11/11 passed.
pnpm exec vitest run apps/console/(root-relative invocation) — 80 test files / 911tests, all passed, exit 0.
pnpm exec eslint apps/console/src/utils.ts— 0 errors (2 pre-existingno-explicit-anywarnings on the untouched
resolveKeyedI18nLabel, unrelated to this change).Scope
apps/console/src/utils.tsonly, plus.changeset/6558-remove-dead-console-record-title-copy.md(empty frontmatter —
check-changeset-presenceconfirmed one was owed sinceapps/consoleis in the fixed release group; no published behaviour changes since both functions were
dead). No changes under
apps/console/src/pages/settings/(the #3719 shadow-checkdirectory) or anywhere else.
Generated by Claude Code