入队前先判容量:满了不再做工程准备
- `direct_thread_manager` 新增只读的 `direct_pending_turn_count`(管理器 `pending_turn_count` + 模块级封装) - `enqueue_direct_codex_turn_typed` 在前置条件之后、工程准备之前先做一次容量预判,满队直接返回 `QueueFull` - 工程准备是分钟级、会在磁盘留产物的活,为注定收不下的消息先做它没有意义;权威判据仍是入队临界区里的检查 - 补一条管理器用例钉住这个只读口径:只数在队条目,认领 / 取消后立刻跟着变
This commit is contained in:
@@ -64,8 +64,9 @@
|
||||
改动点:
|
||||
|
||||
- `agent/direct_runtime/user_input.rs`:把命令主体拆成两半。
|
||||
**入队侧**:`clientTurnId` 校验 → 工作流恢复 → 用户条目校验 → prompt 投影 → 前置条件 → 工程准备 → 入队;
|
||||
任何一步失败返回 typed 入队失败。**放行侧**(第 2 步)从占用登记起。
|
||||
**入队侧**:`clientTurnId` 校验 → 工作流恢复 → 用户条目校验 → prompt 投影 → 前置条件 → 容量预判 → 工程准备 → 入队;
|
||||
任何一步失败返回 typed 入队失败。容量预判只是一次提前的快速失败,权威判据仍在入队临界区里(工程准备是分钟级、会
|
||||
在磁盘留产物的活,满了就不该先做它)。**放行侧**(第 2 步)从占用登记起。
|
||||
- 队列条目(宿主侧产物,只在内存):`PendingDirectTurn { client_turn_id, user_item: Value, prompt: String, creation_type: Option<String>, at: u64 }`。
|
||||
`prompt` 与 `creation_type` 是入队检查的产物,放行不再重算;事件里**不带** `prompt`。
|
||||
- `agent/direct_thread_manager.rs`:
|
||||
|
||||
Reference in New Issue
Block a user