docs: mark phases A and 0 complete, record two deliberate deviations
Phase 0 is done: commits 6df2f20, 1580504, 0722f1a, 643cdd5 in the server-management repository, tests 37 -> 58. Two items were not implemented as the plan specified, and the reasons are recorded rather than left as silent gaps. The plan called for .pi/SYSTEM.md to list seven tools. Phase 0's agent genuinely has none, and naming tools that do not exist invites the model to call them, so the deployed file states the absence instead. The tool-bearing specification is kept in §4b. The plan called for CURATOR_HOST to be narrowed to a specific LAN address and for IPAddressDeny=any. Neither is safe here: the journal shows real traffic from both the LAN and 127.0.0.1, so narrowing the bind address breaks one of them, and the main service needs egress to Telegram and the model provider, which IPAddressDeny would cut. The real fix is authentication, already tracked as P2-6.
This commit is contained in:
@@ -174,7 +174,7 @@ Telegram ──► TelegramGateway(薄适配器)
|
||||
- 检查点全通过:sha256 全部成功、归档可解开、工作树干净、37 tests OK、
|
||||
`curator.service` 与 `pi-memo-telegram.service` active、`/api/health` = ok、web root 200
|
||||
|
||||
### 阶段 A · 建仓与共享资产 —— 进行中
|
||||
### 阶段 A · 建仓与共享资产 —— ✅ 已完成 2026-08-27
|
||||
|
||||
| 步骤 | 状态 |
|
||||
|---|---|
|
||||
@@ -182,18 +182,39 @@ Telegram ──► TelegramGateway(薄适配器)
|
||||
| A.2 两个待验证项 + SYSTEM.md 效果实测,证据归档 `docs/evidence/` | ✅ |
|
||||
| A.3 四份机制文档 | ✅ |
|
||||
| A.4 本计划文档 | ✅ |
|
||||
| A.5 `runtime/` 纳管(`models.json` → `models.json.template`,密钥进 `secrets/`) | 待办 |
|
||||
| A.6 `shared/lib/py/pi_rpc.py`(提取 `gateway.py:109-240`,行为等价 + 参数化) | 待办 |
|
||||
| A.7 `shared/extensions/pi-guard-base.ts`(提取 `memo-guard.ts` 的路径围栏 / 双层门禁 / 受限 read / 截断) | 待办 |
|
||||
| A.8 `scenarios/memo-inbox/` **复制**迁入,`pi-diff.sh` 验零差异,**不重启服务** | 待办 |
|
||||
| A.9 `scenarios/curator/` 骨架 + `profile.toml` + `.pi/SYSTEM.md` | 待办 |
|
||||
| A.10 `scripts/` 部署与备份脚本 + `README.md` | 待办 |
|
||||
| A.11 推送 gitea | 待办 |
|
||||
| A.5 `runtime/` 纳管(`models.json` → `models.json.template`,密钥进 `secrets/`) | ✅ |
|
||||
| A.6 `shared/lib/py/pi_rpc.py`(提取 `gateway.py:109-240`,行为等价 + 参数化) | ✅ |
|
||||
| A.7 `shared/extensions/pi-guard-base.ts`(提取 `memo-guard.ts` 的路径围栏 / 双层门禁 / 受限 read / 截断) | ✅ |
|
||||
| A.8 `scenarios/memo-inbox/` **复制**迁入,`pi-diff.sh` 验零差异,**不重启服务** | ✅ |
|
||||
| A.9 `scenarios/curator/` 骨架 + `profile.toml` + `.pi/SYSTEM.md` | ✅ |
|
||||
| A.10 `scripts/` 部署与备份脚本 + `README.md` | ✅ |
|
||||
| A.11 推送 gitea | ✅ |
|
||||
|
||||
**验收**:`pi-diff.sh` 对两个场景零差异;memo-inbox 未重启且行为未变;
|
||||
`verify-no-secrets.sh --all` 通过。
|
||||
|
||||
### 阶段 0 · Curator 止血(可独立上线,约半天)
|
||||
### 阶段 0 · Curator 止血 —— ✅ 已完成 2026-08-27
|
||||
|
||||
commits:`6df2f20` 解析器与意图分流 · `1580504` 适配器三态 · `0722f1a` 安全测试 ·
|
||||
`643cdd5` systemd 加固。测试 37 → 58。
|
||||
|
||||
实测证据:`docs/evidence/2026-08-27-curator-phase0-prompt.md`。
|
||||
端到端已在服务沙箱内用真实模型验证:「权利的游戏,库里有什么版本」→ 纠正为
|
||||
「权力的游戏」、`intent=library_query`、`explicit_action=false`、两个 Sonarr 实例
|
||||
均真实连通、回答正确区分「4K 有文件」与「普通版无匹配」。
|
||||
|
||||
**两处与原计划不同的处置**:
|
||||
|
||||
1. `.pi/SYSTEM.md` 按**阶段 0 实况**写成"你没有工具",而不是原计划的七工具清单。
|
||||
阶段 0 的 agent 确实没有工具,写上不存在的工具会诱导模型去调用。
|
||||
工具版规格保留在 §4b。
|
||||
2. `CURATOR_HOST` **未**改为具体 LAN 地址,`IPAddressDeny=any` **未**加到主服务。
|
||||
journal 显示真实访问同时来自 LAN(192.168.50.254)与 127.0.0.1(含浏览页面),
|
||||
改绑定地址会打断其中之一;而主服务需要访问 Telegram 与 provider,
|
||||
`IPAddressDeny` 会切断出网。真正的修复是鉴权(P2-6,阶段 5)。
|
||||
已在单元文件里写明,而不是悄悄半修。
|
||||
|
||||
### 阶段 0 原始清单(供对照)
|
||||
|
||||
| # | 动作 | 修复 |
|
||||
|---|---|---|
|
||||
|
||||
Reference in New Issue
Block a user