Files
mnote/design/10-review/process/23-retired-product-cleanup-checklist-v1.md
T

4.4 KiB
Raw Blame History

23 · 退役产品全库清理清单 v1

状态:in-progress → 高优先级 Waves A1C 已落地(2026-07-28
日期:2026-07-28
目标:把 convex + Weknora + openhub + reasonix + Hermes + ACP + OpenCode + Sidex + Yuxi + legacy_next_compat + soft retirement 残留彻底扫光,像没有存在过一样。
优先级:(编译不红、runtime 不暴露、文档不广告)→ (调试残留)→ (历史叙事、死 smoke)。

1. 整体盘点(更新 2026-07-28 执行后)

品牌 产品面残留 调试/测试面 历史叙事 风险
Hermes seed→piHERMES_HOME 兼容读已删;AiRuntimeOwner::RustWebPi soft-retire smoke 保留 exit 0 design/old 可留 已收
OpenHub / OpenCode 无产品入口 soft-retire smoke design/old
Reasonix seed→pi .reasonix 目录忽略保留 design/old 已收
ACP DB 列 acp_* 保留(schema);产品 runtime 无 ACP 宿主 极少 中(列名兼容)
next_compat / LEGACY_NEXT AppConfig / proxy / documents Next 链已删 smoke 已去 env design/done 历史稿 已收
convex_retired 已扫完 已完
Weknora / Yuxi / Sidex 极少 design/old

2. 本批已执行(A1 → A2 → A3 → B → C

A1 · control-plane brand → pi

  • sqlite / turso seedhermes/reasonixpidisplay「我的 Pi」
  • 迁移:历史 agent_id='hermes' 就地 UPDATE 到 pi
  • fixtures / turso_store / control-plane-dev-seed.js 字面量中性化

A2 · LEGACY_NEXT / documents proxy

  • AppConfig 删除 legacy_next_base_url / enable_legacy_next_compat / compat_next_base_path
  • session / gateway health 与 legacy proxy 删除
  • documents Next proxy 栈删除
  • OnlyOffice 非 local writeback → fail-closedonlyoffice_cloud_writeback_unavailable
  • 保留 OnlyOffice 同源 server proxy 所需 append_path_and_query

A3 · Hermes 命名 / HERMES_HOME

  • AiRuntimeOwner::RustWebHermesRustWebPi
  • spikeopen_hermes_page_ai_draweropen_page_ai_drawer
  • agent_profile_home:仅 MNOTE_AGENT_HOME / ~/.mnote-agent(去掉 HERMES_HOME / ~/.hermes
  • audit log:仅 MNOTE_AGENT_TOOL_AUDIT_LOG
  • AGENTS.md:去掉「旧 agent 网关 / OpenCode 代理壳」宣传句
  • .env.all:删除 MNOTE_HERMES_API_*

B · compat 410 / 文案 / debug

  • /api/ai-agent/run 继续 410 legacy_ai_agent_run_retired(含 hermes/codex provider 负向合同)
  • compat 测试去 mock Next 上游,只断言 GONE
  • debug shellMNOTE_WEB_ENABLE_DEBUG_SHELL_ROUTES 默认 false(边界保持)

C · smoke / 编译验证

  • 17 个 smoke 去掉 MNOTE_WEB_*LEGACY_NEXT*
  • task164 断言改为不出现 legacy_next_compat
  • 死 hermes/opencode smoke 已 soft-retireWave 10,保持)
  • 验证:
    • cargo check -p mnote-web --tests 无 error
    • cargo test -p bridge-runtime --lib 116 passed
    • cargo test -p control-plane --lib 37 passed
    • cargo test -p mnote-web --lib routes::compat 4 passed

3. 仍可后续(非阻塞)

说明
ACP 列名 acp_* 控制面 schema 兼容;改列需独立迁移批
actor 占位拒绝 hermes mnote_tools 仍拒绝 actor=hermes 占位 id(负向安全)
mnote-hermes-tool source document-session 历史 external write source 兼容读
.reasonix / .opencode 目录忽略 local_folder 扫描忽略,非产品入口
design/old 历史稿 不阻塞产品面
测试函数名 hermes_tools_* 前缀 历史命名,schema 已中性化

4. 验收 Checklist

  • cargo check -p mnote-web --tests 无 error
  • cargo test -p bridge-runtime --lib 全通过
  • cargo test -p control-plane --lib 全通过
  • AGENTS.md 不再把退役 agent 宿主写成可选主链
  • smoke 不再注入 MNOTE_WEB_*LEGACY_NEXT*
  • 产品 profile home 不再读 HERMES_HOME / ~/.hermes
  • (可选)ARCHITECTURE.md 全文扫 brand 叙事
  • (可选)ACP 列 rename 迁移批

5. 工具回扫命令

rg -n "legacy_next|LEGACY_NEXT|HERMES_HOME|RustWebHermes|enable_legacy_next" rust scripts --glob '!**/target/**'
rg -n "MNOTE_WEB_ENABLE_LEGACY_NEXT|MNOTE_HERMES" scripts .env.all
cargo check -p mnote-web --tests