- TaskState dataclass 改 PG-backed:save() → upsert_task (INSERT ON CONFLICT DO UPDATE,显式刷 updated_at);load(task_id) → SELECT。state.json 全面 废除,task_dir 只承担 skill 产物。 - TaskState 字段去 cwd / 加 task_dir(对齐 §7 SaaS task_dir-as-identity); cwd 只在 session.meta 内存视图保留(展示用)。 - core/storage/utils.py 新增 upsert_task / update_task;ORM-level UPDATE 自带 onupdate=func.now(),DO UPDATE 需显式 set。 - session.py Session.append 的 ensure 调用补传 mode/description/ reasoning_effort,避免首次 INSERT 后 _list_task_rows 看到空 meta。 - sync_task_tokens 改成 update_task 单字段 UPDATE,避免无谓全字段 UPSERT。 - cli.py _list_task_rows 全字段从 PG 读,status 过滤走 SQL WHERE; _cleanup_if_empty 去 state.json 特例(任何 FS 文件/子目录都算实质痕迹)。 - core/export_docx.py meta 走 TaskState.load(tid),CWD 字段从 meta 表移除。 - DESIGN.md 追加 Phase G(Web UI 简洁版,FastAPI + Jinja2 + HTMX + SSE), 排在 §7.7 D 后;§7.9 补 server-render 不上 SPA 的取舍 4 条。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| config | ||
| core | ||
| db/migrations | ||
| prompts/system | ||
| skills | ||
| tools | ||
| .gitignore | ||
| CLAUDE.md | ||
| DESIGN.md | ||
| PROGRESS.md | ||
| alembic.ini | ||
| cli.py | ||
| main.py | ||
| requirements.txt | ||