You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
:193-200 的注释正是为了防住这件事(原文:"A normal unmatched appName must NOT silently render a DIFFERENT app — the readiness guard below shows loading / not-available instead. (Fixes 'the preview / nav renders the WRONG app right after building a new one'.)")。子串判断在这条路径上把它绕开了 —— 用户看到的是另一个 app 的界面,没有任何提示说所请求的 app 不存在。
Triage: pm:queue confirmed, no domain:* (whole-repo seat).
The pm:queue label the lane applied while this round was in flight matches the triage verdict, so nothing is being changed — recording the rationale so the state is auditable rather than assumed.
Why queue and not finding. Concrete defect, named landing site, deterministic repro: packages/app-shell/src/console/AppContent.tsx:183-185 — two of the three pseudo-route switches are substring tests (includes('/system'), includes('/metadata')) where the third is a suffix test. The consequence is not cosmetic: isSpecialRoute feeds requestedAppMissing at :207, so a mistyped app name plus any first segment starting with system/metadata makes the "App not available" guard at :547 not fire, and the shell silently renders a different app — precisely what the comment block at :193-200 was written to prevent. A user-visible wrong-app render with no diagnostic is dispatchable as filed.
No domain:* — objectui is a whole-repo seat; routing there is repo:*, and lane labels are an objectstack-only mechanism. Not transferred to the objectstack backlog either: the fix is objectui-local (one console file), not feature-level, not cross-repo, and does not touch packages/spec, so the One-main-backlog transfer rule does not bite.
Dedup. Checked this repo and both siblings for isSystemRoute / isMetadataRoute / isSpecialRoute / requestedAppMissing and for the wrong-app-render symptom. The only neighbour is #3610 / PR #3636, which is the other consequence of the same three lines (the branch it steers into had no route to serve) and is already merged; the filer's argument that the two are causally independent holds — #3636 did not touch :183-185.
One note for the implementer, carried from the body rather than invented here: the widening is load-bearing for real paths today (/apps/x/system/marketplace/..., /apps/x/component/metadata/resource, host extraRoutes). Measure that input surface before tightening; a segment-equality rewrite that is correct in isolation can still black-hole a live route.
Activity
claude commentedon Aug 7, 2026
Triage:
pm:queueconfirmed, nodomain:*(whole-repo seat).The
pm:queuelabel the lane applied while this round was in flight matches the triage verdict, so nothing is being changed — recording the rationale so the state is auditable rather than assumed.Why queue and not finding. Concrete defect, named landing site, deterministic repro:
packages/app-shell/src/console/AppContent.tsx:183-185— two of the three pseudo-route switches are substring tests (includes('/system'),includes('/metadata')) where the third is a suffix test. The consequence is not cosmetic:isSpecialRoutefeedsrequestedAppMissingat:207, so a mistyped app name plus any first segment starting withsystem/metadatamakes the "App not available" guard at:547not fire, and the shell silently renders a different app — precisely what the comment block at:193-200was written to prevent. A user-visible wrong-app render with no diagnostic is dispatchable as filed.No
domain:*— objectui is a whole-repo seat; routing there isrepo:*, and lane labels are an objectstack-only mechanism. Not transferred to the objectstack backlog either: the fix is objectui-local (one console file), not feature-level, not cross-repo, and does not touchpackages/spec, so the One-main-backlog transfer rule does not bite.Dedup. Checked this repo and both siblings for
isSystemRoute/isMetadataRoute/isSpecialRoute/requestedAppMissingand for the wrong-app-render symptom. The only neighbour is #3610 / PR #3636, which is the other consequence of the same three lines (the branch it steers into had no route to serve) and is already merged; the filer's argument that the two are causally independent holds — #3636 did not touch:183-185.One note for the implementer, carried from the body rather than invented here: the widening is load-bearing for real paths today (
/apps/x/system/marketplace/...,/apps/x/component/metadata/resource, hostextraRoutes). Measure that input surface before tightening; a segment-equality rewrite that is correct in isolation can still black-hole a live route.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
yinlianghui commentedon Aug 7, 2026
认领(PM 派发)。
session_01GTRjn8xBqp75dk7kFupVRtclaude/issue-3638-segment-route-flagspackages/app-shell/src/console/AppContent.tsx(:183-185 三个开关中的两个子串判断)+ 同目录测试 + changeset。前置已落:PR fix(app-shell): 零应用分支补 component/metadata 别名路由与 catch-all (#3610) #3636/fix(app-shell): point the remaining four Settings senders at /apps/setup/system (#3611) #3637 已在 main(fa3ba5b),同文件障碍解除。=== 'system'/=== 'metadata'或带边界正则),isCreateAppRoute的 endsWith 不动。先量后收(issue 自己的警告):枚举当前依赖宽松判断的真实输入面(/apps/x/system/marketplace/*、/apps/setup/component/metadata/resource、system/metadata/*、developer/docs 等 extraRoutes 形态),逐条写成收紧后仍为真的回归断言,再收紧。核心逆向验证:/apps/拼错名/system_log修后须触发requestedAppMissing→ 「App not available」守卫,不再渲染另一个 app(:193 注释的本意)。Generated by Claude Code
yinlianghui commentedon Aug 7, 2026
验收 ACCEPT → PR #3654(session_01GTRjn8xBqp75dk7kFupVRt)。
已核:先量后收完整落地 — 10 类输入面枚举 + 28 条回归断言在未改动 main 上先行全绿,量出「今天没有任何活路由把 system/metadata 写成段前缀」的结论后才动判断;修前 8 红形态与预测一致(DOM 打出 data-active-app="crm" 的字面证据);app-shell 293 文件全绿。
裁决记录:
/apps/setup/system_log从「Page not found」改落「No Apps Configured」— 钉成 MEASUREMENT 不粉饰,正确。system的记录页 #3655 入队(bug):System Hub 五入口无路由,3 个被 looksLikeRecordId 误判进不存在对象的记录页 — 用户可见。Generated by Claude Code
docs(app-shell): 两个 AppContent 路由测试的生产端叙述改写为「历史 + 现状」两段 (#3749) (#3860)
fix(app-shell): match system/metadata pseudo-routes on path segments,…
test(app-shell): 同步 pseudoRouteSegments 里的第二份 MetadataRedirectStub,并用…