zcbot/PROGRESS.md

4.5 KiB

实施进度

配合 DESIGN.md 阅读。本文件只记录 phase 状态、决策偏差、文件量、下一步。

最后更新:2026-05-12(§7 改写为 user-direct SaaS 草案)


状态

Phase 标题 状态 备注
1-3 骨架 + Skill + run_python 三个 skill;CoreCoder 唯一匹配 edit;敏感 env 过滤
4 演化性能力 🟡 Model Profile + Probing ;版本化 prompt 未做
5 Eval Suite ⏸ 不做 dogfooding 替代,probe 覆盖健康检查
6 长任务工程化 🟡 task + state.json + 恢复 ;双层记忆 ;context 压缩未做
7 打磨 Docker 沙盒 / 更多 skill
§7 SaaS 化 DESIGN §7 路线 🟡 A 事件流化 ;B (Storage 落 PG + task_dir 双形态 + Folder API + no-subtask) 可立刻开,本地与 SaaS 共用同一种 storage

已完成关键能力

2026-Q1 ~ 05-06:Phase 1-4 —— 骨架 / 三个 skill(coding/ppt/proposal)/ run_python 范式 / Model Profile + Capability Probing。ppt v3:商务红约束 + apply_brand + Iconify + render_icon/quality_check;素材摄取改 markitdown CLI。

2026-05-06:Phase 6 部分 —— task + state.json + tokens 累计;CLI tasks + REPL /status /done /abandon /desc;移除 legacy workspace/sessions/

2026-05-07:TUI 打磨 + task_dir 落地 —— rich Markdown 渲染;thinking spinner 显实时耗时+累计 token;system prompt 注入 task_dir 绝对路径,skill 产物全收敛 workspace/tasks/<id>/;.gitignore 删 bandaid 行。

2026-05-08:REPL task 切换 + 懒创建 —— /resume [last|<id>];build_agent 不预占文件,首条 user 消息触发 save;_cleanup_if_empty 三条件守门防误删。

2026-05-09 → 05-10:§7 草案 + 对话导出 —— DESIGN §7 初版 SaaS 草案(后于 05-12 重写);cli.py export <task_id> + core/export_docx.py 导对话成 docx。

2026-05-11:原子写 + 双层记忆 + §7 A —— atomic_write_text 接管 save;core/memory.py 双层记忆(core.md 入 prompt,extended/* 走索引);loop 事件流化(sink.emit)铺 SSE 路。

2026-05-12:§7 改写 —— 原 platform/core 多租户方案废弃,改 user-direct(folder-centric,task/messages 入 PG,no-subtask 约束,hard cascade delete)。


关键决策与偏差

决策 备注
工具基目录 cwd(读)+ task_dir(写) system prompt 同时注入两者绝对路径
Workspace 布局 tasks/<id>/ + memory/{core.md, extended/} memory 跨 task 共享
Eval Suite 不做 个人工具用 dogfooding
版本化 prompt 直接 general_v1.md Windows 软链接麻烦,真要切再做
run_python 沙盒 subprocess + env 过滤 Docker 在 §7 C 阶段

文件清单(代码量)

core/capabilities.py        71
core/llm.py                 89
core/loop.py               152   ← §7 A: sink.emit
core/sinks.py              101   ← §7 A
core/ui.py                  38
core/probe.py              243
core/session.py             93   ← +atomic_write_text
core/skills.py              81
core/task.py                64
core/memory.py              76
core/export_docx.py        372
tools/base.py               34
tools/fs.py                182
tools/shell.py              94
tools/run_python.py         84
tools/skill_tool.py         45
main.py                    210
cli.py                     439
─────────────────────────────────
Python 合计              ~2429 行

加 skills/ppt 脚本 ~600 行 + SKILL.md / references / config / prompts,总仓库约 3000 行。


下一步候选(性价比排序)

  1. §7 B 阶段(~1 周)—— Storage 落 PG(单一实现,无 adapter 抽象)+ task_dir 双形态 + Folder API + No-subtask。dogfood 即生效(messages 进 DB → 全文搜立刻可用)。
    • 前置:repo 加 docker-compose.yml(docker compose up -d postgres 起本地 dev PG)或 ZCBOT_DB_URL 指向远端测试 PG
    • 里程碑:① schema + alembic 初版迁移 ② SQLAlchemy ORM 接入 Session / TaskState ③ CLI 适配(去 .json 读写,加 _cleanup_if_empty 新逻辑)④ cli migrate-from-fs 工具(把现有 workspace/tasks/*/ 导入 PG)⑤ Folder API + no-subtask SQL 校验 ⑥ 本地单用户 sentinel(user_id='00000000-...')init 流程
  2. Phase 6 context 三层压缩(~1 天)—— 兜底,V4 长上下文一般用不到
  3. Phase 7 更多 skill / 模型档案(持续)
  4. Proposal mermaid 流程图预渲染(~半天)—— ASCII 透传不够用时再上 mmdc(Node.js 依赖)