diff --git a/GOALS.md b/GOALS.md index 30804438..e0c8a8a5 100644 --- a/GOALS.md +++ b/GOALS.md @@ -15,7 +15,7 @@ | Lane | 激活里程碑 | 推进文件 | | --- | --- | --- | -| local-upload | M5 | [goals/local-upload/M5-proof.md](goals/local-upload/M5-proof.md) | +| local-upload | M6 | [goals/local-upload/M6-recovery.md](goals/local-upload/M6-recovery.md) | | Lane | ID | 名称 | 状态 | 排序 | 优先级 | 依赖 | 进度文件 | | --- | --- | --- | --- | --- | --- | --- | --- | @@ -23,8 +23,8 @@ | local-upload | M2 | local-upload/M2:认证接收与幂等回执 | 已完成 | 2 | 高 | local-upload/M1 | [goals/local-upload/M2-intake.md](goals/local-upload/M2-intake.md) | | local-upload | M3 | local-upload/M3:本地输入进入既有转录 worker | 已完成 | 3 | 高 | local-upload/M1, local-upload/M2 | [goals/local-upload/M3-worker.md](goals/local-upload/M3-worker.md) | | local-upload | M4 | local-upload/M4:上传、回执与本人历史网页 | 已完成 | 4 | 中 | local-upload/M1, local-upload/M2, local-upload/M3 | [goals/local-upload/M4-web.md](goals/local-upload/M4-web.md) | -| local-upload | M5 | local-upload/M5:全链路安全与兼容性证明 | 进行中 | 5 | 高 | local-upload/M1, local-upload/M2, local-upload/M3, local-upload/M4 | [goals/local-upload/M5-proof.md](goals/local-upload/M5-proof.md) | -| local-upload | M6 | local-upload/M6:恢复域、单向撤销与容量恢复 | 阻塞 | 6 | 高 | local-upload/M1, local-upload/M2, local-upload/M3 | [goals/local-upload/M6-recovery.md](goals/local-upload/M6-recovery.md) | +| local-upload | M5 | local-upload/M5:全链路安全与兼容性证明 | 已完成 | 5 | 高 | local-upload/M1, local-upload/M2, local-upload/M3, local-upload/M4 | [goals/local-upload/M5-proof.md](goals/local-upload/M5-proof.md) | +| local-upload | M6 | local-upload/M6:恢复域、单向撤销与容量恢复 | 进行中 | 6 | 高 | local-upload/M1, local-upload/M2, local-upload/M3 | [goals/local-upload/M6-recovery.md](goals/local-upload/M6-recovery.md) | ## 路线图审计 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 566e4994..b8d83a57 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -17,7 +17,8 @@ services: required: false ports: # 宿主端口 8200(n305 上 portainer 已占 8000);外部入口 - # https://sum.lexgogo.site 经 Cloudflare Tunnel 落到 :8200。 + # https://sum.zlxlabs.com 经 Cloudflare Tunnel 落到 :8200(旧 + # sum.lexgogo.site 已过期弃用)。 - "8200:8000" # 必须大于内部关闭预算 20s,否则 SIGKILL 可能打断优雅关闭流程。 stop_grace_period: 30s diff --git a/goals/local-upload/M5-proof.md b/goals/local-upload/M5-proof.md index 6d26462f..ed43b6c2 100644 --- a/goals/local-upload/M5-proof.md +++ b/goals/local-upload/M5-proof.md @@ -2,12 +2,12 @@ lane: local-upload id: M5 slug: proof -status: 进行中 +status: 已完成 owner: lead order: 5 priority: 高 depends_on: [local-upload/M1, local-upload/M2, local-upload/M3, local-upload/M4] -merged_pr: null +merged_pr: 215 --- # 里程碑进度:local-upload/M5:全链路安全与兼容性证明 @@ -19,8 +19,8 @@ merged_pr: null - [x] 真 FastAPI、临时 SQLite/文件系统、真实 dispatcher、Resolver 与现有 consumer;断言 HTTP/body、subprocess argv/env、写入文件等实际 producer 输出。 - [x] 同意图恰好一个受理,两次明确上传恰好两个独立成果;短期、never、expiry、revoke、disabled 全有 active positive control。 - [x] controlled pause 证明撤销/迟到发布与清理/发布两顺序;每种均由 fresh consumer 检查关闭不复活和有效成果不丢。 - - [ ] URL dedup/read/history/notification 与全局 cleanup 整文件回归;`make test` 通过。CI只看 run/job `conclusion`,skip 不算通过。 - - [ ] CI、裸 shell、实际 systemd 消费环境分别跑环境相关测试;systemd 环境必须是本地 consumer 实际运行的 unit。 + - [x] URL dedup/read/history/notification 与全局 cleanup 整文件回归;`make test` 通过。CI只看 run/job `conclusion`,skip 不算通过。正式 CI run#37982433577 实际 SUCCESS。 + - [x] CI、裸 shell、实际 systemd 消费环境分别跑环境相关测试;systemd 环境必须是本地 consumer 实际运行的 unit。完整审查以隔离裸 shell、strace 采样的真实子进程与消费真实 SQLite 的临时 systemd unit 取证。 - **完成条件**:任何“已覆盖”都有执行证据;矛盾/未知机制重新开受影响设计,不以 fixture 命名掩盖差异。 - **边界**:真实 ASR/LLM 模型质量、生产容量/反代/完整恢复域及生产镜像身份不由本地 loopback 测试认证,继续由 M6 和用户部署授权约束。 diff --git a/goals/local-upload/M6-recovery.md b/goals/local-upload/M6-recovery.md index d4ad5668..5ff74fb4 100644 --- a/goals/local-upload/M6-recovery.md +++ b/goals/local-upload/M6-recovery.md @@ -2,7 +2,7 @@ lane: local-upload id: M6 slug: recovery -status: 阻塞 +status: 进行中 owner: lead order: 6 priority: 高 @@ -13,7 +13,7 @@ merged_pr: null # 里程碑进度:local-upload/M6:恢复域、单向撤销与容量恢复 - **预期产出**:证明独立恢复开关、cache.db/正文/audit/share记录完整恢复与容量阈值;未证明前上传读写关闭。 -- **当前范围**:F 的非生产工具和合成演练已随 PR #208 正常合并;生产阶段等待 M5 真实行为验收及下列环境证明和授权。此 frontmatter 依赖仅约束软件准备,不替代完整验收/生产启用门。 +- **当前范围**:2026-10-10 user 明确授权启用:服务器 `.env` 开关已设 true,`upload_limits` 以手工保守值生效(2048MiB/4h/2 并发/4096MiB 预算,非 perf 实测值);入口为 https://sum.zlxlabs.com。下列环境证明仍未完成,继续作为后续义务。 - **关键决策**:`VTA_UPLOADS_ENABLED` 在数据卷外;可信撤销状态/完整恢复域不能证明时保持关闭;长期成果不能通过删除腾容量。 - **当前阶段边界**:`阻塞` 表示剩余生产启用证据与授权尚不齐,不是软件工具未实现或产品目标取消;已合软件、合成容量与配对恢复测试不等生产容量/完整恢复域/可信撤销恢复已经 passed。 - **完整验收 / 生产启用前置**:仍须先完成 M4 与 M5,并证明独立恢复控制、已撤销状态不复活、有效正文受保护、四项限额在真实环境实测、环境与部署授权齐备。调度拆分不改变任何产品目标、证据或完成定义。 diff --git a/skill/SKILL.md b/skill/SKILL.md index 61ef411c..f76ea46a 100644 --- a/skill/SKILL.md +++ b/skill/SKILL.md @@ -78,7 +78,7 @@ metadata: 4. 如果返回 202(还在处理),**每隔 1 分钟轮询一次**,最多轮询 10 次(覆盖 0–10 分钟) 5. 返回 200 = 完成,把结果贴给用户;10 次仍未完成则告诉用户「还在处理中,可以点查看链接关注进度」 -**查看链接必须从脚本输出中原样复制,严禁自己拼接 URL。** 脚本输出的「查看链接」已经是正确的 `[url](url)` markdown 格式,直接复制发给用户即可。不要凭记忆重写域名或路径——LLM 重构 URL 极易拼错字母(如把 `lexgogo` 写成 `lexgugo`),导致链接失效。 +**查看链接必须从脚本输出中原样复制,严禁自己拼接 URL。** 脚本输出的「查看链接」已经是正确的 `[url](url)` markdown 格式,直接复制发给用户即可。不要凭记忆重写域名或路径——LLM 重构 URL 极易拼错字母(如把 `zlxlabs` 写成 `zxlabs`),导致链接失效。 ## 环境变量