回答用户追问「这个文件哪里来的、官方推荐怎么做」。git 考古 + agent 源码两条路: 来历:a571033 自己手写的(2026-09-25),不是 HostStack 生成的。agent 镜像里既没有 init 类命令也没有内嵌模板 YAML(find 全仓 0 个 yaml 文件),只负责在仓库根读取 hoststack.yaml 或 hoststack.yml。所以"官方推荐怎么写"没有标准模板可抄,只有 schema。 官方做法:源码自己的定位是 Infrastructure-as-Code—— "hoststack.yaml is Infrastructure-as-Code: when the repo declares a command, it wins over whatever happens to be cached on the services row" 新证据,把"UI 更方便管理"这个前提彻底否掉:agent 里只有两个 YAML->DB 回写事件 (yaml_port_declared、yaml_disk_declared),**命令字段没有**。注释原文明说 "the two that need to reach the services row have their own handled frames"。 所以每次部署都是拿 YAML 临时覆盖 services 行里的旧值,DB 里永远是过期的 ./target/release/app。port 与 disk 要回写是因为 autoscaling 和 sleep-wake 直接 读那行;命令只有部署路径自己读,不值得持久化。 结论:控制台对命令字段永远是过期缓存,不存在"以 UI 为准"的稳态。 要删 hoststack.yaml,必须先改控制台那三条命令,文档里已有此前提。 audit_paths.py:hoststack.yml 加入 CONVENTIONAL allowlist——它是 yaml-parser 实际接受的第二种文件名,与已在白名单里的 docker-compose.yml 同类。 验证:GATE-DOCS PASS 6/6(PATH AUDIT 378 path-refs / 0)。 |
||
|---|---|---|
| .. | ||
| audit_anchors.py | ||
| audit_paths.py | ||
| check_file_size.py | ||
| check_sec_refs.py | ||
| check_tables.py | ||
| run_all.sh | ||
| validate_docs.py | ||