docs(dashboard): drop browser-smoke claims for the retired Ops view - #5161
huangruiteng merged 1 commit into
Conversation
The Browser Smokes section described two smokes that protect the detailed `?view=ops` panel. That view is retired - the section already says the decision-freshness and promotion-readiness read models are covered by focused control-plane smokes instead of browser tests - and neither smoke exists any more: - `examples/dashboard-promotion-readiness-browser-smoke.mjs` is not in the tree; `examples/dashboard-browser-coverage.mjs` and the other `examples/dashboard-* browser-smoke.mjs` scripts do not include an ops-view smoke. - the decision-freshness coverage that remains is `examples/control_plane/decision-freshness-readmodel-smoke.py`, which reports a read model rather than rendered panel copy. The grouped-path sentence that follows (the demo-readiness group runs `examples/promotion-gate-smoke.py` before browser checks) is still true and is kept unchanged. Signed-off-by: kokokoXUY <13682395396@163.com>
huangruiteng
left a comment
There was a problem hiding this comment.
Reviewed exact head: 808a130141abd02b0767111f4344efda65329adc; immutable base: 420782f03725bf9b7603be481f2b0525beff5807.
动机
Dashboard README 同时说旧 Ops 浏览器视图已退休,又声称两项浏览器 smoke 仍保护其中文、英文面板,给维护者留下了不存在的验证入口。本 PR 完整解决的是这处文档矛盾,不是重新实现 Ops UI 或宣称浏览器视觉验收已通过。删除误导说明可以减少后续贡献者寻找失效脚本、误报覆盖范围的成本。
改动思路
实际执行边界仍由 smoke manifest 和路由源码拥有。README 已保留当前 Home、Personal Workspace 浏览器检查,以及 decision-freshness / promotion-readiness 由控制平面 smoke 覆盖的说明;这次删除重复且失真的两段,沿用已有入口,不再建立一个并行清单。检查 router 后也确认旧 Ops 兼容路由重定向到 Workspace,不能把它理解成还在维护详细 Ops 面板。浏览器 coverage 模块只负责收集 V8 覆盖率,并非测试清单,因此我没有把它“未列出某项 smoke”当成充分证据。
具体改动
唯一 diff 是 apps/presentation/dashboard/README.md 删除 12 行。移除了 decision-freshness 面板的 rendered-copy / counts / exact-replay 覆盖承诺,以及 promotion-readiness 的 badges / artifact-window 覆盖承诺和失效脚本引用;前后的当前检查与 grouped promotion-gate 说明不变。
关键代码讲解
这些是本次文档描述所依赖的未修改符号,没有生产代码修改:
examples/dashboard-demo-readiness-smoke.py:90 main:依赖检查通过后先执行 BASE_COMMANDS;只有未传--skip-browser才追加 BROWSER_COMMANDS。BASE_COMMANDS 中确实有 promotion-gate,浏览器部分是 Home / Personal Workspace,而非退休 Ops 面板。apps/presentation/dashboard/src/router.tsx:61 DeprecatedFrontstageOpsRoutePage:沿用 WorkspaceRedirect,验证状态源后返回当前根路由。兼容 bookmark 仍保留,但不恢复旧 UI。
我逐项检查了实际脚本、npm 入口及完整 README 相邻段落。针对失效描述的独立断言在 base 上失败、在 head 上通过;源码树和 manifest 则保持相同 Git blob/tree,证明这是文档纠正而非暗改覆盖范围。
对主干的风险
最强反例是删除了仍有效的浏览器验收,导致维护者误以为无需测某个现存面板。实际 inventory、路由及 grouped runner 排除了这个前提;保留的 promotion-gate contract 检查仍跑,没有删除测试或降低执行门槛。base/head 的 decision-freshness read-model smoke 和 dashboard-demo-readiness-smoke.py --skip-browser --require-dependencies 均通过,后者完整跑完 launchagent、promotion-gate、Home route、usage/progress 四项。Ruff、mypy 与 diff whitespace 检查通过;公开边界扫描无错误。按当前评审配置没有查询 CI。本次未运行浏览器视觉 smoke,不将非浏览器检查冒充视觉覆盖。首屏、CTA、导航、状态、权限、持久化协议及默认开关均未改动。
我的整体评价
APPROVE。这是已有文档 owner 中完整、可独立回滚的负向压缩:用户读到的验证承诺更准确,长期验证流程与运行行为保持不变。未来向 refactor 检查已考虑 runner / README 的重复知识边界,本次直接删除过时说明即可,无需新 registry、抽象或额外流程。没有新增共享词汇、actor authority 或兼容协议;其他历史文档问题不应捆绑成此 PR 的合并条件。
English verdict: APPROVE - head 808a130; removes false retired-Ops browser coverage claims while retaining real smoke entrypoints. Base/head read-model and four-step non-browser demo checks pass; no runtime changes and CI was not consulted.
Goal And Delivered Outcome
detailed
?view=opspanel. The same section, eleven lines earlier, already records that the view isretired — "The decision-freshness and promotion-readiness read models remain covered by focused
control-plane smokes instead of browser tests for the retired legacy Ops view." — so the file
contradicted itself, and one of the two paragraphs named a script that does not exist.
examples/dashboard-promotion-readiness-browser-smoke.mjsis not in the tree. Theexamples/dashboard-*-browser-smoke.mjsscripts that do exist(
home,usage,throttled,operator-gate,attention-details,benchmark-study,frontstage,goal-acceptance,quota-default,reward-append) include no ops-view smoke, andexamples/dashboard-browser-coverage.mjsdoes not list one.examples/control_plane/decision-freshness-readmodel-smoke.py— not rendered panel copy, so theparagraph's claim about "the rendered Chinese/English operator copy, counts, top affected goal"
is not what any current check asserts.
above, and the grouped-path sentence that follows is unchanged and still true
(
examples/promotion-gate-smoke.pyandexamples/dashboard-demo-readiness-smoke.pyboth exist).changes.
Scope And Continuation
apps/presentation/dashboard/README.md(−770 characters).docs/reference/protocols/long-horizon-agent-state-protocol-v0.mdalsocites a retired path (
apps/presentation/dashboard/src/views/frontstage-page.tsx), but Unify default local state under .loopx with explicit migration #4915 isopen against that file, so I am leaving it to that PR or a later one rather than creating a
conflict.
frontstage views. That would assert coverage I did not verify, so the stale claim is retired instead
of restated — the file already carries the current truth.
Validation
staticpassedloopx check --scan-path apps/presentation/dashboard→errors=0,warnings=2(both are the pre-existing "registry file does not exist" host notices),public boundary scan clean: 7 files.manualpassedexamples/dashboard-promotion-readiness-browser-smoke.mjsabsent; the 13 existingexamples/dashboard-*-browser-smoke.mjsscripts contain no ops-view smoke;examples/control_plane/decision-freshness-readmodel-smoke.pypresent;examples/promotion-gate-smoke.pyandexamples/dashboard-demo-readiness-smoke.pypresent, so the kept sentence stays accurate.manualpassedreplacement browser smoke — building one for a retired view would be the wrong direction, and the
read-model smokes already own that coverage.
Frontend / Visual Evidence
Not applicable: no first-screen, hero, CTA or navigation copy changes; the edit is inside the Browser
Smokes reference section of a README.