更新 DirectProject 历史过滤约定
记录用户消息只由 Codex 原始 item 产生 记录内部启动上下文不进入项目历史
This commit is contained in:
@@ -23,7 +23,7 @@ DirectProject 不迁移旧 `{role,content}` 行;实现按新格式工作。
|
||||
## 正常回合
|
||||
|
||||
1. 启动 `ephemeral: true` 线程,并启用 `experimentalRawEvents: true`。
|
||||
2. 新线程先把历史 item 数组一次注入;注入成功后,将本轮用户文本构造成 Responses `message` item 并追加、flush。
|
||||
2. 新线程先把历史 item 数组一次注入;注入成功后执行新的 `turn/start`。本轮用户 item 只接受 Codex 回传的 `rawResponseItem/completed`,不由 AGC 预写。
|
||||
3. 收到 `rawResponseItem/completed` 后立即追加其 `params.item` 并 flush。
|
||||
4. 正常 `turn/completed: completed` 不生成额外记录。
|
||||
|
||||
@@ -41,6 +41,8 @@ AGC 判定本轮不会再产生新事件时收尾:用户中断、turn failed
|
||||
|
||||
`rawResponseItem/completed` 缺少 `item`(包括 `null`)时视为反序列化错误;该回合按异常终态收尾,历史中不会写入非法空 item。
|
||||
|
||||
Codex 启动时注入的 `host_skills.instructions`、`permissions.instructions` 和 `environments.environment_context` item 不属于项目对话历史;落盘时过滤,读取和线程注入时也过滤。
|
||||
|
||||
## 恢复
|
||||
|
||||
创建新的 ephemeral thread 后,读取 `project.jsonl` 中所有 `response_item.payload`,按文件行顺序一次调用 `thread/inject_items`,再执行新的 `turn/start`。Codex 负责上下文窗口管理;注入失败直接失败,AGC 不截断、摘要或改写历史。
|
||||
|
||||
Reference in New Issue
Block a user