MessageWeave/docs
anonsaber cf252a9f06 docs+build: Dockerfile 降级为仅本地开发用,并记录 hoststack.yaml 保留/移除决策
用户要求两件事:把 Dockerfile 明确降级成「仅本地开发用」并说清边界;
以及若日后决定移除 hoststack.yaml,把理由写进相关文档。

先核了一遍决定性的技术前提——删掉 YAML 到底会发生什么。读 HostStack agent
源码,优先级是三层,而且和我上一轮写的说法不一样:

  1. 控制台 services 表已存的值 -> payload
  2. YAML 声明的字段无条件覆盖(guard 只是 `if (svcConfig.start?.command)`,
     没有 `&& !payload.x` 短路)
  3. YAML 省略的字段沿用控制台值;框架默认值只在仍为空时才填,而 agent 自己的
     注释写着 "trigger-payload always populates payload.x from the DB",
     所以对已建好的服务这条分支实际是死代码

因此删掉 hoststack.yaml **不会**回落到 cargo fetch / app 那套默认值,而是直接
采用控制台现存的值——而那恰好就是坏掉的 ./target/release/app。"UI 更方便管理"
这个前提成立,但必须先改 UI 再删文件。据此写了决策记录,当前决定是保留。

Dockerfile / docs/deployment.md §3 / docs/design.md / README.md
- 统一标为仅本地开发 / 本地容器调试路径,生产不执行
- 写清边界后果:诊断工具、ENTRYPOINT tini、EXPOSE 8080 在线上都不生效
- 给出判定方法:容器内看 /proc/1/cmdline 与 /etc/os-release
- 顺带修掉 design.md 里把 hoststack.yaml 描述成"网关编排清单"的错误——
  文件里没有任何 gateway,只有 services.web

docs/deployment.md §5.1
- 三层优先级替换掉原先"YAML 省略则回落框架默认值"的错误说法
- 新增决策记录:保留的理由(进 git、可 review 可回滚)与代价(双写);
  若日后移除,必须在控制台先把 install/build/start 三条改对再删,并把本段
  移到 docs/retired.md 记下移除 commit

验证:GATE-DOCS PASS 6/6(SECTION-REF 226 refs / 0,PATH AUDIT 376 refs / 0)。
2026-09-29 12:22:00 +08:00
..
charter.md docs+tooling: no document may name a path that does not exist 2026-09-29 09:28:29 +08:00
deployment.md docs+build: Dockerfile 降级为仅本地开发用,并记录 hoststack.yaml 保留/移除决策 2026-09-29 12:22:00 +08:00
design.md docs+build: Dockerfile 降级为仅本地开发用,并记录 hoststack.yaml 保留/移除决策 2026-09-29 12:22:00 +08:00
reference.md docs: 修正 6 处代码行号锚点漂移,补 1 处缺失锚点 2026-09-29 10:14:03 +08:00
retired.md build+docs: 镜像内置只读诊断工具,清理 Dockerfile 的死 ENV 与文档过期表述 2026-09-29 11:24:13 +08:00
roadmap.md docs: bump verification baselines to b2dbe7c 2026-09-29 02:24:17 +08:00