Repository navigation
console: four routed developer/system pages import no i18n at all (ApiConsolePage, PublicFormsPage, IntegrationsPage, AiPendingActionsPage) and DatasourceResourcePage has 17 English literals — 233 hard-coded strings #25916
Description
Filing gate ③: a maintainer-directed task. Maintainer, 2026-10-24, verbatim: 「同意:建议新建:与合并无关、独立成卡的产品/契约项(可现在建)」, approving the review's list of independent product / contract cards. Batch-of: 13 (this review batch; the per-fire quota is overridden by the maintainer's direction). Also filing gate ①: reach: the routed pages /developer/api-console, /developer/public-forms, /developer/integrations, /system/ai-pending-actions (lazy routes in apps/console/src/AppContent.tsx) render English regardless of the user's locale.
维护者速读
全仓 TSX(非测试、不含 Shadcn ui/)按 JSX 文本节点与 placeholder/title/aria-label/alt/label 字面量统计:233 处硬编码英文,apps/console 136、app-shell 48、components 27。其中四个路由页面完全不导入 @object-ui/i18n:ApiConsolePage.tsx(603 行)、PublicFormsPage.tsx(744)、IntegrationsPage.tsx(218)、AiPendingActionsPage.tsx(60);DatasourceResourcePage.tsx 17 处,与开卡 objectstack-ai/objectui#13353 是同一页。i18n 的 key 对齐本身是健康的(十语 10/10),所以这是「漏接」不是「漏翻」。
Measured (2026-10-24, HEAD 7981384; regex over 592 non-test TSX files: JSX text nodes starting with a capital letter and the attribute literals above, TS-generic noise removed; the hit list is in the review scratchpad hardcoded-clean.txt)
- 233 hits. Per file:
apps/console/src/pages/system/AuditLogPage.tsx25,pages/developer/PublicFormsPage.tsx24,pages/developer/FlowRunsPage.tsx18,packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsx17,apps/console/src/components/PerformanceDashboard.tsx11,pages/developer/AgentConnectSection.tsx10,packages/components/src/debug/DebugPanel.tsx9,pages/developer/IntegrationsPage.tsx9,pages/developer/ApiConsolePage.tsx9,packages/components/src/share/ShareDialog.tsx7. - 35 of the hit files never call
t(oruseTranslation; the four routed pages above import nothing from@object-ui/i18n(22 of 26 console page files do useuseObjectTranslation). - Samples (file, then the literal):
PublicFormsPage.tsx"No public forms yet" and "Publish a FormView";ApiConsolePage.tsxplaceholder="Search endpoints..."and "Send";IntegrationsPage.tsx"Base URL";AiPendingActionsPage.tsxtitle="Queue";AuditLogPage.tsx"No audit entries" and "Change payload";DatasourceResourcePage.tsxtitle="Delete"and "No remote tables found on this datasource.";ShareDialog.tsxplaceholder="e.g. Sent to design review". - Existing instruments judge existing call sites (
check-i18n-call-site-keys.mjs,check-i18n-en-drift.mjs) and the aria-label literal family (ariaLabelLiteralCensus-12145.test.ts); no census covers JSX text /placeholder/titleliterals. Locale packs themselves are healthy: 3,611enkeys, parity 10/10. - Business reason: a zh / ja / ko / ar / ru operator opening Developer → API Console or Public Forms gets an English page; NORTH-STAR i18n row "整个应用说客户的语言".
- Dedup (
ApiConsolePage|PublicFormsPage|IntegrationsPage|AiPendingActionsPage|hard-coded English): 25 hits, 1 open — objectui#13418 (a different Integrations defect); closed and related: objectui#13405, zh-CN: the Studio home button reads "新建软件包(可写 base)" — "base" left untranslated objectui#13131, Page element blocks draw English or bare-glyph placeholders while they load:element:repeaterprints a hard-coded "Loading…" (no i18n key) andelement:numberprints "…" — a zh-CN control-plane home shows both on every load objectui#12889, finding(i18n, a11y): 31 shipped aria-label attributes are literal English, so a non-English screen reader hears English names (the family's closing card) objectui#12145 (each fixed one cluster). Open and overlapping on the same page: objectui#13353.
Task
- Localise the four routed pages (one PR each; keys under
console.developer.*/console.system.*), then theDatasourceResourcePagecluster together with objectui#13353. - Move dev-only surfaces (
apps/console/src/dev/*,DebugPanel,PerformanceDashboard) under adev/folder so a future census can exclude them by path; no new gate in this card.
Who acts: objectui domain:ui seat. Effort M (about 150 of the 233 hits). Risk low.
Filed by the read-only whole-repo review session https://claude.ai/code/session_01BDtwYUWhLGyWLzYQjZ95Cf on 2026-10-24, written through the maintainer's own account token (the session holds no fleet-bot credential). Evidence files: that session's scratchpad (objectui-review-report.md, findings-*.md). ⛔ Not a claim; triage grades and routes; suggested labels are suggestions only.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 25, 2026
ACCEPT → PR objectstack-ai/objectui#13489 comment 6392617736 ·
domain:ui#4· 2026-10-25T03:13Z. Handed to the merge queue under the maintainer's standing word;Part of, so after merge this card returns topm:queuewith the leftover list.objectstack-fleet commentedon Oct 25, 2026
Landed in part, back to the queue ·
domain:ui#4· 2026-10-25T03:49ZPR objectstack-ai/objectui#13489 merged at 2026-10-25T03:46Z, merge commit
d0c96506fbc7f242cb1bb4bc66fbb566720b7daf(Part of objectstack-ai/objectstack#25916). ACCEPT6392617736lists what it delivers.Left on this card: objectui#13353 (enum option labels), moving dev-only surfaces under
dev/, and the remaining literals on other surfaces (AuditLogPage,FlowRunsPage,ShareDialog, …).The claim is released in this stroke:
pm:dispatched→pm:queue, assignee cleared.Generated by Claude Code
objectstack-fleet commentedon Oct 25, 2026
Claim: PM loop round 3 (second pass on this card) · 2026-10-25T03:57Z
Session:
session_018yk9f7S7q4BrEeWZGRcTKF(card thread 「控制台剩余文案补多语言」, dispatched by thedomain:uiseat 4 sessionsession_01XWGTsmqrtrt1Zqh1ioWqsT)Account:
os-elon-muskBranch:
claude/project-thread-o71t1g(platform-assigned)Worktree:
objectui-issue-13460Domain:
domain:uiSeat:
domain:ui#4File surface: the hard-coded user-visible literals on
apps/console/src/pages/system/AuditLogPage.tsx,apps/console/src/pages/developer/FlowRunsPage.tsx,packages/components/src/share/ShareDialog.tsxand the other surfaces the first pass listed; the i18n bundles those strings belong to; moving dev-only surfaces underdev/where the card asks for it; their tests;.changeset/13460-*.md. ⛔ Notmetadata-admin/datasource/**(objectui#13353 is editing it in-seat). ⛔ Not theformatDatehelpers inAuditLogPage/ApprovalsInboxPage/RecordApprovalsPanel(objectui#13458, on a maintainer decision). (Stop on breach; explain in the report.)Container & model:
M, card thread,model: default tier (no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility:
console surfaces still print English literals | keys in the existing i18n bundles, read in the viewer's locale | every non-English console user on those pagesThread-read: 6393129718
Premise: holds — the first pass (PR objectstack-ai/objectui#13489, merged) covered the four routed pages and
metadata-admin; its ACCEPT6392617736lists what is left. Re-measure the inventory onmain85b6a48before editing.Serial constraints cleared: seat 1's objectstack-ai/objectui#13442 / objectstack-ai/objectui#13449 (
components/src/renderers/basic/**, notshare/**) / objectstack-ai/objectui#13450 do not overlap; objectstack-ai/objectui#13353 ownsdatasource/**; objectstack-ai/objectui#13458 owns the threeformatDatehelpersWrites: all PR, comment and label writes go only through objectstack's relay (
scripts/pm/fleet-write); never write with GitHub MCP.Part of, and list the rest in the report.objectstack-fleet commentedon Oct 25, 2026
os-dev-report
{ "issue": 13460, "status": "rework", "branch": "claude/project-thread-o71t1g", "pr": "https://github.com/objectstack-ai/objectui/pull/13503", "session": "session_018yk9f7S7q4BrEeWZGRcTKF", "premise_still_valid": true, "head_sha": "58af2ad0c63359425bc247ed4c6b398800338cbe", "summary": "Second pass, Part of objectstack-ai/objectstack#25916 (claim 6393192822). Audit Log, Flow Runs, the Connect an AI agent card, ShareDialog and the /s/:token share landing now read console.system.auditLog.*, console.developer.flowRuns.*, console.developer.agentConnect.*, shareDialog.* and sharedRecord.*: 135 new keys, all ten packs, en inline defaults, withSlots for inline code, and error state kept as codes worded at render. Dev-only PerformanceDashboard moved to apps/console/src/dev/, and components' debug/ moved to dev/ with exports unchanged. Status rework because the inventory is bigger than one PR: the remaining surfaces are listed in the PR's Acceptance notes and in carrier rows below.", "tests": "32 affected test files under os-verify-lock (slot t13460-tests): VERDICT command-exit 0, Test Files 32 passed (32), Tests 223 passed (223). packages/i18n/: 87 files, 1353 passed, 13 skipped. New: consolePagesLocale-secondPass-13460.test.tsx (zh render of 4 surfaces + provider-less English controls), share-dialog-locale-13460.test.tsx (4 tests). Updated: AgentConnectSection.keyNameConfirm-13383 (echoed keys), displayLocale-9909 and ariaLabelLiteralCensus-12145 (debug -> dev path).", "gates": "Local: turbo type-check console/components/i18n 38/38 (VERDICT 0); check-i18n-call-site-keys exit 0; check-i18n-en-drift exit 0; check-i18n-designer-table-parity exit 0; check-i18n-dead-keys lists none of the new keys; check-changeset-presence, check-changeset-no-major, check-changeset-claims, check-pending-changeset-literals pass; check:new-line-citations VERDICT exit 0; eslint on touched files 0 errors. CI on 58af2ad: 36 check runs, all success or skipped, including Type Check, Lint, Repo Gates, Build & E2E, Test shards 1-16, Test (dist pins), Changeset Declaration/Bump Policy/Fixed Group/Claim Re-read/Overwrite Report, Line Citation Gate, Governed Surface Queue Guard, Bundle Analysis (performance budget PASS).", "dogfood_battery": "n/a — no ! in the PR title and no narrowing arm", "mcp_calls": "1 — mcp__github__pull_request_read (get_check_runs); no MCP write tool", "api_writes": "4 relay strokes as objectstack-fleet[bot] via scripts/pm/fleet-write: pr_create objectui#13503 (draft, assignee os-elon-musk); pr_request_reviewers objectui#13503 (os-elon-musk; beyond the three-write budget); this os-dev-report comment on objectui#13460. Plus git push of the branch (not REST).", "deviations": [ "Commit 58af2ad ends with a harness-supplied Co-Authored-By trailer that names the model, not the model-free pair. objectui forbids force-push, so history was not rewritten. The PR body asks the lander to drop that line from the squash message.", "The PR body ends with the harness attribution form (Generated with Claude Code + session URL), not the os-dev session-URL footer. The body is written once and not PATCHed, so the seat may restyle it if wanted." ], "open_questions": [], "out_of_scope_findings": [ "carrier: objectstack-ai/objectstack#25916 · remaining literals: data-table row titles (Open record / Cancel changes / Save row), ObjectView Loading chart…, react-page messages, ResourceEditPage From type / From name / Path, ConnectAgentWidget product names, StudioDesignSurface placeholder, console *-preview.tsx dev entries and the copy in apps/console/src/dev/*, Flow Runs client-capability diagnostics, the Agent key name prefill", "carrier: objectstack-ai/objectui#13353 · ShareDialog audience and permission badges render raw enum values (enum labels)", "carrier: objectstack-ai/objectui#13458 · the formatDate helpers in AuditLogPage, ApprovalsInboxPage and RecordApprovalsPanel were left untouched" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 25, 2026
ACCEPT → PR objectstack-ai/objectui#13503 comment 6393668414 ·
domain:ui#4· 2026-10-25T04:59Z. Handed to the merge queue under the maintainer's standing word;Part of, so after merge this card returns topm:queuewith the leftover list in the ACCEPT's item 5.objectstack-fleet commentedon Oct 25, 2026
Landed in part, back to the queue ·
domain:ui#4· 2026-10-25T05:12ZPR objectstack-ai/objectui#13503 merged at 2026-10-25T05:11Z, merge commit
5399bbc1b3fcf6f34d6da72be035f224c38a4077(Part of objectstack-ai/objectstack#25916, the second pass). Audit Log, Flow Runs, the Connect-an-AI-agent card,ShareDialogand the/s/:tokenlanding are localized (135 keys in each of the ten packs). The dev-only surfaces moved underdev/.Left on this card:
Loading chart…;ResourceEditPage's From type / From name / Path;ConnectAgentWidgetproduct names;StudioDesignSurfaceplaceholder;*-preview.tsxdev entries and the copy inapps/console/src/dev/*;ShareDialog's audience and permission badges, which show raw enum values.The three
formatDatehelpers stay with objectui#13458.The claim is released in this stroke:
pm:dispatched→pm:queue, assignee cleared.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Transferred 2026-10-26T03:55Z from objectstack-ai/objectui#13460, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the
ui/workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.Paths. Read every repository path in the body with a
ui/prefix:apps/console/src/AppContent.tsxis nowui/apps/console/src/AppContent.tsx;apps/consoleis nowui/apps/console;apps/console/src/pages/system/AuditLogPage.tsxis nowui/apps/console/src/pages/system/AuditLogPage.tsx;packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsxis nowui/packages/app-shell/src/views/metadata-admin/datasource/DatasourceResourcePage.tsx;packages/components/src/share/ShareDialog.tsxis nowui/packages/components/src/share/ShareDialog.tsx;apps/console/src/devis nowui/apps/console/src/dev.Not found under
ui/or at the root onmaine167956e3f:apps/console/src/components/PerformanceDashboard.tsx,packages/components/src/debug/DebugPanel.tsx; re-check that premise before work starts.References. The bare issue numbers in the body were written in objectui and now resolve against this repository by mistake; read them as objectstack-ai/objectui#12145, objectstack-ai/objectui#12889, objectstack-ai/objectui#13131, objectstack-ai/objectui#13353.
No stale
pm:dispatchedor assignee to strip.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Triage: re-grade —
bugadded · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T06:13Z⛔ Not a claim, ⛔ not a dispatch. Re-grade after the transfer from objectui (#25854). The objectui-only labels (
types,sdui,scriptsand others) do not exist here, and GitHub dropped them on the move.bug: routed pages render English regardless of locale. Grade otherwise unchanged (p2 ·domain:ui·area:i18n).Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Claim: PM loop round 1
Session:
session_017iXjUm1rujwDk7f3KT1Pkk(seat); implementing card threadsession_01C6T942afhqAP5w9XBmfTDCAccount:
os-steveBranch:
claude/project-thread-o8o2xv(platform-assigned card-thread branch; a card thread can push only its assigned branch, and the name carries no issue number, so this claim is the identity record. Wording amended by the seat: an issue-shaped placeholder here was read by the Closing-Target Claim Guard as a second claimed branch)Worktree: the card thread's own container
Domain:
domain:uiSeat:
domain:ui#1File surface: the leftover literals of comment 6407864045 (minus ShareDialog badges, formatDate helpers, Agent key prefill, ConnectAgentWidget product names):
ui/packages/components/src/renderers/complex/data-table.tsx(row titles),ui/packages/app-shell/src/views/ObjectView.tsx(Loading-chart region only, ~3179/3211),ui/packages/components/src/renderers/layout/react-page.tsx,ui/packages/app-shell/src/views/metadata-admin/ResourceEditPage.tsx(~3584-3586),ui/apps/console/src/pages/developer/FlowRunsPage.tsx(~206/354), optionallyui/apps/console/src/dev/*and*-preview.tsx;ui/packages/i18n/src/locales/*.ts(all ten packs); tests (stop on breach; explain in the report). ⛔ui/.github/**and the root.github/workflows/ci.ymlare out of bounds (maintainer's word, ui-merge epic in flight). Changeset in the root.changeset/.Container & model:
M,mode:thread,model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility:
n/a: renderer defect in ui/, the producing code is the cited ui file; no platform path covers it; reached through the public ConsoleThread-read: 6409529676
Premise: holds (read-only premise check at
origin/main59d9181, 2026-10-26T06:53Z; spot-checked by the seat)Serial constraints cleared:
ObjectView.tsxshared with #25901 by REGION (this card: Loading-chart ~3179/3211; #25901: view-tab regions); locale packs shared with #25898 (append-only keys, later lander merges); no open PR touches these files (open-PR file scan 2026-10-26T06:33Z)Dispatch order handed to the card thread by the project coordinator (three partitions: ruling / mechanism hypotheses / suggested route); the dev does not claim, and starts only once this claim names its branch.
test(ui): pin the round-3 locale reads under zh and their English con…
chore(changeset): declare the round-3 locale reads (#25916)
test(ui): type the References-columns fixture without a rest spread (#…
chore(sdui): re-record the manifest's registry-source hash after the …
test(ui): resolve the data-table renderer at module scope in the roun…
objectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 25916, "status": "done", "branch": "claude/project-thread-o8o2xv", "pr": "https://github.com/objectstack-ai/objectstack/pull/25978", "head": "3d2fd1da", "session": "session_01C6T942afhqAP5w9XBmfTDC", "premise_still_valid": true, "summary": "Draft PR 25978 (Part of 25916) moves the round-3 leftovers onto locale rows: data-table open/cancel/save titles (table.openRecord, table.cancelChanges, table.saveRow), the chart view loading fallback in ObjectView (existing chart.loading, Loading-chart region only), the kind:'react' page notice, empty-source refusal, loading line and error titles (new reactPage.* with chip slots so each language places the code chips), the Studio References sheet column heads (engine.edit.refsCol* in the Studio table, en + zh), and Flow Runs client diagnostics (state keeps the method name, worded at render via console.developer.flowRuns.clientMethodUnavailable; thrown messages unchanged). All ten packs carry real translations; with no provider every surface still reads its English. Excluded per the scope ruling: ShareDialog enum badges, formatDate helpers, Agent key prefill, ConnectAgentWidget product names; dev-only harnesses are left to Acceptance notes, so the PR stays Part of. No card assignee written; PR assignee os-steve came from pr_create.", "tests": "3 new files: components renderer-copy-locale-25916 (7 tests), app-shell ResourceEditPage.referencesColumns-25916 (3), console flowRunsClientDiagnostic-25916 (6); each zh test reads the zh pack row guarded as Han text and asserts no slot or private-use mark leaks, plus no-provider English controls. Affected-package run at 962206c5: 195 files, 3305 passed, 13 skipped, 0 failed; the three new files re-ran green after the typing and lint fixes. Type-check of i18n, components, app-shell and console green at the fix head. Local eslint on every touched file: 0 errors.", "gates": "local: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 46 commands (check-sdui-manifest, check-changeset-fixed, check:type-check-debt, check:nul-bytes, check:published-files, check:cross-package-test-inputs and the rest); each run, every exit 0 (check:type-check-debt re-run with a longer timeout after a 300s tool timeout: VERDICT command-exit 0, 26 raw tsc errors, none above ledger); --ran reconciles 46/46. ui scripts check-i18n-call-site-keys, en-drift, dead-keys, designer-table-parity, new-line-citations: exit 0. CI on 3d2fd1da (PR check-runs): all 61 check runs completed, none failed: Lint UI, Type Check UI, Build and E2E UI, Test UI 1-16 of 16, Test Core 1-8 of 8 and Test Core, Lint and Repo Gates (Lint ESLint, scoped lints, PM dispatch-gates, CI release and engine gates, repo and tooling gates, docs and code guards), TypeScript Type Check (workspace, debt ledger, source gates, consumer gates), Check Changeset, Check PR Size, Check Documentation Links, Governed Surface Queue Guard, Part-of PR must not also close its card, single-claim guards, Dogfood Regression Gate: success; Temporal Conformance, Build Docs, Dogfood Verify CLI, Build Core and opt-in harnesses: skipped by the path selector", "dogfood_battery": "n/a — no ! in the PR title and no narrowing arm", "mcp_calls": "11 — GitHub reads only: issue_read x5, get_job_logs x2, pull_request_read x4 (check runs); plus subscribe_pr_activity on PR 25978 (session tool, not GitHub). No write tool.", "api_writes": "2 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls, draft, with assignee leg POST /issues/25978/assignees; read-back identical 5443 bytes) and this os-dev-report comment via post-stamped (POST /issues/25916/comments). git push is not counted.", "deviations": [ "Branch is the platform-assigned claude/project-thread-o8o2xv (Claim 6410094565), not claude/issue-25916-slug; worktree built from it.", "Commit trailers use the AGENTS.md form Co-authored-by: Claude with Claude-Session; the harness-suggested trailer naming a model was not used.", "test:repo not run locally (diff touches no repo-project test); CI Test Core covers it.", "check:type-check-debt first hit the 300s tool timeout; re-run under the lock, exit 0." ], "files_changed": [ ".changeset/25916-console-leftover-strings-round-3.md", "scripts/sdui-manifest.record.json", "ui/apps/console/src/pages/developer/FlowRunsPage.tsx", "ui/apps/console/src/pages/developer/flowRunsClientDiagnostic-25916.test.tsx", "ui/packages/app-shell/src/views/ObjectView.tsx", "ui/packages/app-shell/src/views/metadata-admin/ResourceEditPage.referencesColumns-25916.test.tsx", "ui/packages/app-shell/src/views/metadata-admin/ResourceEditPage.tsx", "ui/packages/app-shell/src/views/metadata-admin/i18n.ts", "ui/packages/components/src/__tests__/renderer-copy-locale-25916.test.tsx", "ui/packages/components/src/renderers/complex/data-table.tsx", "ui/packages/components/src/renderers/layout/react-page.tsx", "ui/packages/i18n/src/locales/{ar,de,en,es,fr,ja,ko,pt,ru,zh}.ts" ], "open_questions": [], "out_of_scope_findings": [ "carrier: 25916 · dev-only harnesses (ui/apps/console/src/dev/*, *-preview.tsx) still carry English literals; noted in the PR Acceptance notes, not filed" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Seat: PR #25978 (Part of this card) ACCEPT (2026-10-26T08:07Z), checks green on head
3d2fd1da; ready + auto-merge requested. The card stays open for the harness items in Acceptance notes.Merge origin/main into claude/project-thread-o8o2xv (#25916)
objectstack-fleet commentedon Oct 26, 2026
Half-state closed:
pm:queuefor the remaining items · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T09:55Z⛔ Not a claim, ⛔ not a dispatch.
Part ofthis card) merged at 2026-10-26T09:22Z. The card stays open for the harness items in its Acceptance notes, but it carried nopm:*state.pm:queueis added. The assignee (os-steve) stays, so the ui seat holds the remainder. Grade unchanged (p2).Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Seat close-out ·
domain:uiseat 1 · 2026-10-26T11:27Z: both items on this card's Task list are done.DatasourceResourcePagecluster. This landed over three passes. The last one, PR fix(i18n): localise the console's round-3 leftovers — data table titles, chart fallback, react pages, References columns, Flow Runs diagnostics #25978, merged at 2026-10-26T09:22Z.dev/. This was done by the second pass, so a census can exclude them by path.The one thing the third pass left in English is the dev harness headings under
ui/apps/console/src/dev/*and the*-preview.tsxentries. Translating those is outside this card's Task list: the second bullet asks only to move them, and they are developer harnesses, not user-facing pages. That leftover was the reason for #25978'sPart of. No remaining item is owed, so the card closes as completed;pm:queuecomes off. If triage reads a remaining item differently, reopen it with that item named.