zcbot/core
caoqianming aeecc7f0f3 core(§7 B Step 3): TaskState ORM + Web UI 设计 (Phase G)
- 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>
2026-05-14 11:25:53 +08:00
..
storage core(§7 B Step 3): TaskState ORM + Web UI 设计 (Phase G) 2026-05-14 11:25:53 +08:00
__init__.py Initial import: zcbot personal task agent 2026-05-06 11:02:59 +08:00
capabilities.py Initial import: zcbot personal task agent 2026-05-06 11:02:59 +08:00
export_docx.py core(§7 B Step 3): TaskState ORM + Web UI 设计 (Phase G) 2026-05-14 11:25:53 +08:00
llm.py Initial import: zcbot personal task agent 2026-05-06 11:02:59 +08:00
loop.py core: loop 事件流化 (sink 接口, §7 A 阶段) 2026-05-11 14:59:32 +08:00
memory.py core: Session/TaskState 原子写 + Phase 6 双层记忆 2026-05-11 15:13:56 +08:00
probe.py Phase 4 + 6: capability probe + task 概念 / state.json 2026-05-06 16:21:17 +08:00
session.py core(§7 B Step 3): TaskState ORM + Web UI 设计 (Phase G) 2026-05-14 11:25:53 +08:00
sinks.py core: loop 事件流化 (sink 接口, §7 A 阶段) 2026-05-11 14:59:32 +08:00
skills.py Initial import: zcbot personal task agent 2026-05-06 11:02:59 +08:00
task.py core(§7 B Step 3): TaskState ORM + Web UI 设计 (Phase G) 2026-05-14 11:25:53 +08:00
ui.py core/ui: 抽出语义化 console 主题, 调用方去硬编码颜色 2026-05-07 16:10:11 +08:00