SDK Session 布局
本地 SDK Agent 的 Session SQLite 布局与数据边界
本地 SDK Agent 的 Session 保存在 City 注入的存储根目录下;使用本地 Provider 时通常是 ~/.downcity:
~/.downcity/agents/<agent_id>/sessions/<origin_type>/<session_id>/
├── session.db
└── attachments/Session 以 (origin.type, session_id) 作为稳定身份,默认分区是 chat。其他非空来源类型会被
安全编码为单个目录段,例如 automation/daily 不会产生嵌套目录。项目目录不会创建 .downcity。
session.db 的核心表:
session_state:身份、Workspace 归属、标题、模型标签、时间戳与 system snapshot。messages:User/Agent Message envelope。message_parts:按 sequence 保存每个 Part 的具体内容。
Composer Policy 可以在同一数据库中维护自己的 composer_<policy>_* 派生表。派生表可以删除重建,
不会改变 canonical Message。应用应调用 session.messages() 读取消息,不要直接写数据库。
完整设计见 Session 元数据与落盘。