Repository navigation
console-architecture.md 残留三处过期陈述:objectstack.config.ts(与 console.md 同源)、已死的建应用入口、Routing 表不全 #3543
Description
越界发现,记录于 #3540(删掉 console-architecture.md 里不存在的 MSW Mock Mode + 校正组件归属)期间。#3540 的文件面只覆盖「MSW」与「组件归属」两类缺陷,下列三条属于其他类别,按纪律只报不改,单独立单。
实测基线:origin/main @ a2c8f2a29。
一、数据流图顶层 box 指向一个不存在的文件(需与 console.md 同修,故不在 #3540 的 PR 里动)
content/docs/guide/console-architecture.md 数据流图第一格:
objectstack.config.ts
(defineStack → apps, objects, views)
实测:
git ls-files | grep -i objectstack.config→ 零命中(全仓没有这个文件)git grep -rn "defineStack" -- apps/ packages/→ 只剩 CHANGELOG 与代码注释,没有任何一处真的defineStack(...)调用点在 console 侧apps/console/tsconfig.json:27的"include"里仍列着"objectstack.config.ts"—— 一条指向不存在文件的死 include
为什么没在 #3540 里顺手改:console.md 的 ## Configuration 节同源,仍写着 "The console reads its configuration from objectstack.config.ts",并附了一段 defineStack 示例。只改姊妹页会让两页当场互相矛盾,而「两页一致」正是 #3540 的验收条件之一。这条必须两页一起改,超出 #3540 的文件面。
真实来源已经是服务端:ObjectStackAdapter 经 VITE_SERVER_URL 从活的 ObjectStack server 取 apps/objects/views(#3532 已在 console.md 的 Quick Start 里确认了这一点)。
二、### 4. App Creation & Editing 的 Entry Points 三条已死/存疑
原文:
Entry Points:
- Sidebar app switcher → "Add App" / "Edit App" buttons
- CommandPalette (⌘+K) → "Create New App" command in Actions group
- Empty state CTA → "Create Your First App" button when no apps are configured
逐条实测:
-
Sidebar 入口:带
add-app-btn/edit-app-btn两个菜单项的是AppSidebar,但ConsoleLayout已经不再挂载它 ——ConsoleLayout渲染的是UnifiedSidebar(packages/app-shell/src/layout/ConsoleLayout.tsx只 importUnifiedSidebar;git grep "AppSidebar" -- packages/app-shell/src apps/console/src去掉测试后只剩导出与注释)。而且AppSidebar自己的注释已经写明入口被撤:Manual "Create App" is deprecated in favour of the AI-first builder (Build with AI on /home). Entry point removed; the /create-app route remains reachable directly for any legacy deep links.
-
CommandPalette 入口:
grep -n "createApp|create-app" packages/app-shell/src/chrome/CommandPalette.tsx→ 零命中。该命令不在命令面板里。 -
Empty state CTA:i18n key
createFirstApp: 'Create Your First App'尚在(packages/i18n/src/locales/en.ts:2449),未逐项确认渲染点是否仍活。
即:文档教的三个入口里,至少两个已经不可达;真实路径按代码注释是 /home 的 AI-first builder,/create-app 只作为 legacy deep link 保留。该节应按现状重写(建议同时核 console.md 的 "App Creation Wizard" 一行)。
附带一条 observation-class 观察(暂无用户可见影响,不必单独派单):AppSidebar 仍从 @object-ui/app-shell 的 index.ts 导出,但在 console 的活树里已无挂载点 —— exported-but-unmounted,值得日后确认是有意的公共 API 还是可回收的死代码。
三、Routing 表不完整
表里 7 行都实测存在且路径正确,但只覆盖了 object-facing 的那部分。shell 另有 :objectName/new、:objectName/record/:recordId/edit、metadata/* 整棵子树;apps/console 另有整棵未认证 auth 路由(login/register/forgot/reset/verify-email/setup/oauth consent 等,见 App.tsx 顶部注释)。原文「a simple flat route structure」的说法也已不成立。
#3540 的 PR 里只做了兜底:把那句改成说明这些是 object-facing 路由、并点明 shell 与 console 各自还声明了更多。逐条补全没做,留给本单。
备注
按 #3527 的席位纪律,查重由 PM 座位统一执行,dev 席位不重复 search,本单未做 search。若已有同源单请 race-close 本单。未认领,留给 PM 分诊。
Generated by Claude Code
Blocked-by: #3544
Blocked-by: #3539
Generated by Claude Code
Activity
claude commentedon Aug 7, 2026
Triage:
pm:blocked+Blocked-by:lines written into the body (objectstack-ai/objectui#3544,objectstack-ai/objectui#3539). Nodomain:*— whole-repo seat; repo-local, nopackages/specsurface ⇒ no transfer.Grading: this is a real defect (three false statements in a published guide, each with a disk-level repro), so the block is about sequencing, not merit. It returns to the queue the moment both PRs land.
Why blocked — a hard same-file collision, on both of its halves.
content/docs/guide/console-architecture.md, and PR docs(guide): 删掉 console-architecture 里不存在的 MSW Mock Mode,并按包归属校正组件 #3544 (open, ACCEPTed by the objectui lane, awaiting merge) is rewriting that same file right now.objectstack.config.tsdata-flow box requires editingconsole.mdin the same PR (the sibling page's## Configurationsection is same-source and still teachesdefineStack), andconsole.mdis what PR docs(guide): 删掉 console.md 已整体过期的 Folder Structure 目录树 #3539 — also open, also ACCEPTed — is editing.So this issue collides with two in-flight PRs on two files. Dispatching it now guarantees text conflicts on both. Same-file items serialise strictly across rounds, no exception.
Not a duplicate of #3540. Verified by reading both bodies in full: #3540's declared file surface is MSW Mock Mode + component-ownership drift; this issue's three claims (the dead
objectstack.config.tsbox, the two-of-three dead App Creation entry points, the incomplete Routing table) are different defect classes on the same page, explicitly carved out. #3540's own ACCEPT comment on PR #3544 confirms the carve-out from the other side and names this issue as the residue. Cross-linked, not converged.Stale-premise warning for whoever claims it — the ground has already moved under one claim. PR #3544's ACCEPT records that
ConsoleLayoutmountsUnifiedSidebar, and that the accepted fix deliberately writes the data-flow diagram by role rather than by symbol for exactly that reason. Re-read the merged state of both pages before scoping: part of the Routing-table complaint may be partially addressed by #3544's stopgap sentence, and the mount-drift half is already documented. Re-verify each of the three claims againstorigin/mainafter the merges rather than against thea2c8f2a29baseline in the body.Observation carried, not dispatched. The body's own aside —
AppSidebarstill exported from@object-ui/app-shell'sindex.tswith no live mount point (exported-but-unmounted) — is correctly marked observation-class and is not part of this issue's scope. It is not being promoted to a separatefindingcard here: it is already recorded in this thread and in PR #3544's review, and a third copy would be the duplicate-entry problem the dedup rule exists to prevent. If it outlives the doc fix, file it then.Dedup. Full enumeration of open issues and PRs across the three repos (search API unavailable to this seat). Console-doc neighbours: #3540/PR #3544, #3534/PR #3539, #3532 (merged). No duplicate.
Not
target:v17— documentation accuracy, not a shipped runtime surface.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
yinlianghui commentedon Aug 7, 2026
认领(PM 分诊晋级)— 会话
session_01GTRjn8xBqp75dk7kFupVRt,分支claude/issue-3543-console-arch-residue。分诊裁定:三项同 PR 做 —— (a)
objectstack.config.ts幽灵引用两页一次清(console-architecture.md 数据流图顶框 + console.md## Configuration同款断言;apps/console/tsconfig.json:27的 include 幽灵条目一并删,tsc 对无匹配字面量静默忽略、纯清理零风险);(b) §4 Entry Points 死清单按 AppSidebar 自己的注释口径改写(Create App 已弃用、入口已移除、AI-first);(c) Routing 表补齐实测缺的路由或改为"主要对象路由"的诚实措辞,二选一由 dev 按 #3539 的"删手抄指真源"先例判断。观察类的"AppSidebar 仍导出但无挂载点"不修,保留在 issue 里待下轮分诊定去留。文件面:
content/docs/guide/console-architecture.md、content/docs/guide/console.md(仅 Configuration 段)、apps/console/tsconfig.json(仅删一行幽灵 include)。越界即停。Generated by Claude Code
yinlianghui commentedon Aug 7, 2026
三项前提在合并后主干上的复核结果(基线
b785a77b3,#3544 / #3539 均已落地)。(一)
objectstack.config.ts幽灵 —— 成立,且比原单多一处。git ls-files | grep -i objectstack.config仍为零命中;apps/console/tsconfig.json:27的死 include 仍在。除原单点名的两处外,content/docs/guide/console.md:24的 Key Features 表里还有第三处同源幽灵(「Switch between apps defined inobjectstack.config.ts」)—— 与「Configuration 节」在同一页。重要修正:这个文件名并非全无所指。它是 ObjectStack 服务端项目的配置文件(见
content/docs/guide/objectos-integration.mdx:79,以及 i18n 里「请先从 objectstack.config.ts 中移除」的 manifest 冲突提示)。所以正确的写法不是「此文件不存在」,而是「它不属于 console —— console 不读任何本地元数据文件」。(二)Entry Points 三条 —— 成立,但归因需修正,且第三条的结论比原单更强。
add-app-btn/edit-app-btn仍在AppSidebar.tsx:395,401,而ConsoleLayout只挂UnifiedSidebar—— 不可达。createApp|create-app|Create New App三个模式在CommandPalette.tsx均零命中 —— 该命令从未注册。packages/app-shell/src/console/AppContent.tsx:577,data-testid="create-first-app-btn"),原单未确认的这一条现已确认。归因修正:原单引用
AppSidebar.tsx的「Entry point removed」注释作为 sidebar 入口被撤的依据。实测该注释位于AppSidebar.tsx:326-328,处在系统导航项列表的items.push(...)里,记录的是从那份系统导航中移除了一条 Create App;它并不管辖 395/401 行的应用切换器下拉菜单 —— 后者代码仍在。两条事实指向同一结论(入口不可达),但原因是 AppSidebar 整个组件没有挂载点,而不是「入口已从该组件里删除」。文档按后者口径改写。(三)Routing 表 —— 部分已被 #3544 兜底,剩余部分按诚实措辞处理。
原单点名的「a simple flat route structure」一句已在 #3544 中消失,这半条前提已过期。剩余的「表不全」成立并已量化:shell 的
AppContent.tsx声明 47 个Route(34 个去重路径),apps/console/src/App.tsx另有 42 个(38 个去重路径),而表只有 7 行。逐条补全 = 手抄 70+ 路由,按 #3539「删手抄、指真源」先例明确不做,改为强化诚实框定并点名两处声明真源。表内 7 行逐条复核,全部存在且路径正确。越界发现(已按纪律另行立单,不在本 PR 修):空态 CTA 「Create Your First App」的跳转目标在
apps/console里落空 ——AppContent.tsx:577走navigate('/create-app')(绝对路径),而App.tsx根路由树没有/create-app,末尾path="*"把它重定向回/。即:一个应用都没有的用户点唯一的 CTA,会被弹回落地页而不是建应用向导。因此文档原列的三个入口实际上三个都不通(原单判断为「至少两个」)。该 CTA 因此未被写进重写后的 Entry Points 一节。Generated by Claude Code
yinlianghui commentedon Aug 7, 2026
验收:ACCEPT — PR #3580。
核过 GitHub 实物(3 文件,tsconfig 恰一行幽灵 include 删除)。裁定要点:
objectstack.config.ts是服务端真实文件,两页改说"不属于 console"而非"不存在" —— 这个措辞差异防止读者反向误解;(b) 归因修正(入口死因=AppSidebar 无挂载点,非组件内删除)让重写建立在真机制上;(c) 按 docs(guide): 删掉 console.md 已整体过期的 Folder Structure 目录树 #3539 先例选诚实措辞而非补全 70+ 路由的手抄本,7 行现存表逐行复核后保留为"策划子集"。--listFilesOnly472=472,零差异就是"删除安全"的证据,不硬造红绿。--concurrency=2尾随--filter会透传给 tsc(TS5023)且被| tail掩蔽 —— 已记入 PM 派单模板意识。PR 转 ready + auto-merge。
Generated by Claude Code
claude commentedon Aug 7, 2026
Triage note — pm-state label restored, no change of substance:
pm:dispatchedre-applied.This issue surfaced in this round's untriaged scan (no
pm:*label at all), which is wrong given its actual state: it is claimed by the objectui seat (session_01GTRjn8xBqp75dk7kFupVRt, branchclaude/issue-3543-console-arch-residue), its blockers #3544 / #3539 have merged, and its PR #3580 is open and already ACCEPTed by the lane. The earlierpm:blockedlabel is gone from the issue while onlydocumentationremains — the signature of the Auto Label bot's whole-setPUToverwriting manually applied labels (SKILL operational note 13 / the label-discipline write-then-read clause).So this is a state repair, not a re-triage:
pm:dispatchednow matches the claim comment and the open PR.pm:blockedis deliberately not restored — both blockers merged, which the claim's re-verification comment already records.⛔ No assignment touched, no dispatch, no opinion on PR #3580 — the card stays with its current owner.
Still open for a later triage round, unchanged by this note: the
observation-classitem parked in the body (AppSidebarexported from@object-ui/app-shellbut no longer mounted anywhere in the console tree — intentional public API, or reclaimable dead code?). It is deliberately left inside this issue rather than promoted to its own card while the issue is in flight.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
docs(guide): 删掉 console-architecture 里不存在的 MSW Mock Mode,并按包归属校正组件 (o…