@oatelauser/crosschat 1.0.1 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +79 -0
- package/README.md +18 -9
- package/dist/cli.js +44 -9
- package/dist/cli.js.map +1 -1
- package/dist/codex/client.js +5 -0
- package/dist/codex/client.js.map +1 -1
- package/dist/codex/deliver.js +30 -13
- package/dist/codex/deliver.js.map +1 -1
- package/dist/codex/rollout-meta.js +6 -0
- package/dist/codex/rollout-meta.js.map +1 -1
- package/dist/codex/transport.js +23 -2
- package/dist/codex/transport.js.map +1 -1
- package/dist/commands/doctor.js +9 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/send.js +92 -18
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/status.js +66 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/conversation-summary.js +123 -0
- package/dist/conversation-summary.js.map +1 -0
- package/dist/conversations.js +174 -0
- package/dist/conversations.js.map +1 -0
- package/dist/envelope.js +1 -1
- package/dist/envelope.js.map +1 -1
- package/dist/outbox.js +230 -52
- package/dist/outbox.js.map +1 -1
- package/dist/send-log.js +130 -0
- package/dist/send-log.js.map +1 -0
- package/dist/watchdog.js +104 -0
- package/dist/watchdog.js.map +1 -0
- package/package.json +2 -3
- package/skills/crosschat/SKILL.md +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,84 @@
|
|
|
2
2
|
|
|
3
3
|
本项目的全部显著变更记录于此。格式参照 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
4
4
|
|
|
5
|
+
## [1.2.1] - 2026-10-03
|
|
6
|
+
|
|
7
|
+
### 发布说明
|
|
8
|
+
|
|
9
|
+
- v1.2.0 的 npm 发布失败于 CI(B21 wire 测试依赖本机装有 codex,runner 上必挂;本版修复)。**1.2.1 含 1.2.0 全部功能**。
|
|
10
|
+
|
|
11
|
+
### 修复(CI 封闭性)
|
|
12
|
+
|
|
13
|
+
- `openCodexProxySession` 在注入 `spawnProxy` 时跳过真实 codex.exe 解析(注入路径本就不使用解析结果)——无 codex 环境的 CI runner 不再必挂,两次 CI 红(push + publish 同根因)闭合
|
|
14
|
+
|
|
15
|
+
### 变更(B22:视图实时回执确认 + 旧 ref 防倒退)
|
|
16
|
+
|
|
17
|
+
- `status --conversations` 聚合行新增第 8 字段 `receipt`(`'confirmed' | 'unconfirmed' | null`,取自该对 send-log 最新一条 delivered 消息的 rollout 回执;null = 无记录或非 delivered)——**JSON 契约加键**:原七字段变八字段,`endpoints` 仍为渲染专用不透出
|
|
18
|
+
- 视图实时复核:渲染前对「delivered 且 unconfirmed 且对端含 codex」的行用该行 ref 现场调一次 `confirmInRollout`(2 次轮询 ×200ms 预算,不拖慢 status;claude 端点无 rollout 概念跳过),查到即翻转为已确认——慢落盘的送达时刻不再无处可查。文本视图 delivered 行行尾追加 `已确认` / `回执未确认`;JSON 的 `receipt` 反映复核后结果
|
|
19
|
+
- `--conversation` 旧 ref 防倒退(机制):`conversations.ts` 新增 `continueFromRef`——分片线 c ≥ 传入 ref c 且同对话(nonce 相同)且端点匹配时以分片线为准(`nextTurnRef(分片ref)`),消除迟到回复 / 多人从同一旧 base 续造成的 turn 撞号与倒退分叉(实测三条消息全 turn 27);分片落后 / 缺失 / 不同对话 / 端点不匹配时维持按传入 ref 续的原行为;`--to` 路径(`continueConversation`)语义不动
|
|
20
|
+
- 教学少抄旧 ref:信封教学第二行改为「新话题或对话已推进时: `crosschat send --to <名字> --body "..."`(--to 自动接续该端对最近对话);超 16KiB 请写文件后只发路径」(两行结构不变);SKILL.md「收到消息后如何回复」补一条:对话已推进 / 拿不准 ref 新旧时直接 `--to`,不必抄旧信封的 ref
|
|
21
|
+
|
|
22
|
+
## [1.2.0] - 2026-10-03
|
|
23
|
+
|
|
24
|
+
### 变更(B21:exec 线程可见 + 发送端显示名)
|
|
25
|
+
|
|
26
|
+
- codex 发现的 `thread/list` 显式传 `sourceKinds: ["cli","vscode","exec"]`:`codex exec` 建的线程(source=exec)进入 status 清单;此前服务端默认只收 interactive 源(cli/vscode),exec 线程永不可见(B19/B20 演练 §5.1)
|
|
27
|
+
- send-log 条目新增可选 `fromName`(发送方显示名,发送时源头记账):conversations 视图在"对端还没回信 addressed 我"时不再把发送端渲染成裸身份键;旧条目无 `fromName` 走原路径,行为不变
|
|
28
|
+
|
|
29
|
+
### 变更(B20:conversations 按端对分片)
|
|
30
|
+
|
|
31
|
+
- 会话连续性状态从单一全局 `conversations.json`(每次发送整读整写、无锁,任意两对并发发送毫秒窗内互相覆盖)改为 `conversations/` 目录下每端对一个 `<sha256(对键)>.json` 分片(照 `rate/` 先例,tmp+rename 原子写)——跨端对并发发送互不相干
|
|
32
|
+
- 懒迁移:读=分片优先、缺失回退旧全局文件;写=只写分片,旧文件永不改写永不删除(陈旧快照无害);坏分片自愈为新对话(隔离到单端对)
|
|
33
|
+
- 同端对毫秒级并发仍是后写赢:后果仅该对连续性记录滞后一轮,ref 自包含使在途回复不受影响
|
|
34
|
+
|
|
35
|
+
### 变更(B19:忙端早退 parked + queued 回执措辞)
|
|
36
|
+
|
|
37
|
+
- 写者锁持续被拒 / 线程持续 `not_loaded`:等待从 120s 收敛到 ~10s(`STALL_PARK_TIMEOUT_MS`,3s 轮询约 3 轮,排除瞬时抖动)即抛同名错误码落 `parked`,看门狗照常补投
|
|
38
|
+
- `queued` 投递不再做 1.5s 回执探测(排在对方当前 turn 后,结构上不可能确认),输出改为指向 `crosschat status --conversations`
|
|
39
|
+
|
|
40
|
+
### 记账补漏(B17/B18,随前两批提交,此处补记)
|
|
41
|
+
|
|
42
|
+
- B17:`status` 会话列表数据层——send-log 尾读 + send-log/conversations/注册表三源聚合
|
|
43
|
+
- B18:`status --conversations` 会话列表视图
|
|
44
|
+
|
|
45
|
+
### 变更(B16:审计补缺)
|
|
46
|
+
|
|
47
|
+
- send-log 条目新增 `from`(发送方身份键)——多 agent 并发时审计需要「谁发的」,此前只有「发给谁」
|
|
48
|
+
- README 源码安装节注明:开发期重装本地目录需 `npm i -g . --force`(版本未变时 npm 报 up to date 跳过文件更新,装到的还是旧代码)
|
|
49
|
+
|
|
50
|
+
### 变更(B15:对话连续性——`--to` 消息的 turn 计数修复)
|
|
51
|
+
|
|
52
|
+
- `--to` 发送现在**自动接续该端对最近的对话**(本地 `conversations.json` 按无序端对记 latest ref),turn 随每条消息递增;任一端用 `--to` 回复都续同一线程。修复 2026-10-02 实测的「30 条不同消息全部标 turn=1」失真
|
|
53
|
+
- 送达/入队/寄存都记账;寄存的消息也占轮次(它终将送达)
|
|
54
|
+
- 状态文件损坏自愈为新对话;端对不匹配的记录被忽略
|
|
55
|
+
- `TARGET_NOT_FOUND`(claude 会话已退出)错误附指引:`status` 查在线会话后 `--to <新名字>` 重新寻址
|
|
56
|
+
|
|
57
|
+
## [1.1.0] - 2026-10-03
|
|
58
|
+
|
|
59
|
+
### 变更(B14:发送存根与 rollout 回执,整改第三步)
|
|
60
|
+
|
|
61
|
+
- 发送存根:每次 send 的最终结果(delivered/queued/parked/failed + 时间/对端/轮次/错误码)追加写入 `%LOCALAPPDATA%\crosschat\send-log.jsonl`(仅元数据,不含消息体)——工具层超时转后台的发送事后可查
|
|
62
|
+
- rollout 回执:codex 投递被接受后,轮询对方会话记录文件确认消息(按唯一 reply-ref)真实落入对话历史,回执写入 send-log;短暂未确认时输出提示行
|
|
63
|
+
- `findRolloutFile` 从 rollout-meta 导出(threadId → rollout 路径)
|
|
64
|
+
|
|
65
|
+
### 变更(B13:忙时入队——codex 收件箱语义,整改第二步)
|
|
66
|
+
|
|
67
|
+
- **忙线程直接入队**:daemon ≥0.160 上对运行中的 turn 调 `turn/start` 会被接受并按线程串行排队,当前轮结束瞬间落历史并被处理(实测证据:一次性探针线程 01a10009-b314,两条探针消息在计数轮结束后同刻落历史并被依次回答)。`deliverToCodexThread` 不再对 busy 轮询 120s 后超时,busy 即投递,返回 `queued: true`;`send` 输出新状态 `queued to <名字>(对方正忙,已入队,本轮结束即处理)`
|
|
68
|
+
- 旧 daemon 拒绝排队型 turn/start 时映射为 `CODEX_THREAD_BUSY_TIMEOUT`,落发件箱由看门狗重投(行为兜底)
|
|
69
|
+
- 投递子进程环境剥离双身份残留(`CLAUDE_CODE_*` / `CODEX_*` 会话变量),根治 CALLER_IDENTITY_CONFLICT 的环境侧诱因
|
|
70
|
+
- README 新增 daemon 依赖说明(版本要求、未运行时的退化行为、重启后需重新 start)
|
|
71
|
+
|
|
72
|
+
### 变更(B12:发件箱活性与诚实语义,2026-10-02 双智能体事故整改第一步)
|
|
73
|
+
|
|
74
|
+
- 排涝看门狗:`parked` 后自动派生独立的短期重投进程(`__drain --watch`),30s→60s→120s→300s 退避,箱空即退——不再依赖「碰巧有人调 crosschat 且碰巧空闲」
|
|
75
|
+
- 队列纪律:发件箱非空时新消息直接入队,不再借 120s 轮询插队越过更早的滞留(FIFO 保序)
|
|
76
|
+
- 排涝公平化:busy/locked 属线程级状态,首次失败即中止该线程本轮,不再把整轮预算烧在必然失败的后续条目上(修复队尾 12 小时 attempts=0 的饿死)
|
|
77
|
+
- 诚实文案:`parked` 输出队列深度与 mailbox 镜像路径;`OUTBOX_FULL` 指向镜像文件而非「线程疑似已死」
|
|
78
|
+
- mailbox 镜像:每条寄存/送达/丢弃追加到 `%LOCALAPPDATA%\crosschat\mailbox\<线程ID>.md`,滞留内容随时人读
|
|
79
|
+
- 并发安全:park/drain 按线程加锁(lockfile,60s 过期抢占),看门狗单实例(pid+心跳锁)
|
|
80
|
+
- 上限放宽:每线程 20 → 200 条;doctor 显示每线程深度/最旧年龄/看门狗状态/镜像路径
|
|
81
|
+
- 兼容:pre-B12 无 id 的旧寄存条目读取时稳定合成 id,可继续排涝
|
|
82
|
+
|
|
5
83
|
## [1.0.1] - 2026-10-02
|
|
6
84
|
|
|
7
85
|
- README 移除曾用名注记;首验 Trusted Publisher (OIDC) 自动发布管线
|
|
@@ -23,4 +101,5 @@
|
|
|
23
101
|
### 过程档案
|
|
24
102
|
- 设计决策地图(wayfinder)、实测研究报告 ×4、联调实证 ×2 随仓库公开(已脱敏)
|
|
25
103
|
|
|
104
|
+
[1.1.0]: https://github.com/Oatelauser/crosschat/releases/tag/v1.1.0
|
|
26
105
|
[1.0.0]: https://github.com/Oatelauser/crosschat/releases/tag/v1.0.0
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
- **🔌 原生投递,零轮询**:消息经 Claude 的 named pipe / Codex 的 App Server daemon 直接注入运行中的会话——接收方像收到一条用户消息一样开始工作,不需要任何轮询或常驻服务
|
|
18
18
|
- **🪶 无守护进程**:整个工具就是一条无状态 CLI。没有后台进程要看护、没有崩溃丢状态、没有端口要占——`send` 就是发消息,`status` 就是看在线
|
|
19
19
|
- **🤖 教学内建,低入侵**:agent 侧装一次 skill,且**每条消息的信封自带回复命令**——照抄即可回话。题词只写角色,不写协议;长对话也不会忘
|
|
20
|
-
- **📮 忙时不丢**:对方正在跑长任务?消息自动进本地发件箱(outbox
|
|
20
|
+
- **📮 忙时不丢**:对方正在跑长任务?消息自动进本地发件箱(outbox),并由看门狗进程每 0.5–5 分钟自动重投,对方一空闲就送达——不需要你手动重发;滞留内容随时可在 mailbox 镜像文件里读到
|
|
21
21
|
- **🔐 同用户信任边界**:全部通道按 Windows 用户隔离,接收许可只授予 `crosschat claude` 启动的会话——你手敲开的会话不会被外部投递
|
|
22
22
|
- **🧪 每个结论都有实证**:通道可行性、写者锁、daemon 版本行为,全部真机联调验证(见 [📚 更多文档](#-更多文档))
|
|
23
23
|
|
|
@@ -44,6 +44,8 @@ git clone https://github.com/Oatelauser/crosschat.git
|
|
|
44
44
|
cd crosschat && npm ci && npm run build && npm link
|
|
45
45
|
crosschat install-skills
|
|
46
46
|
```
|
|
47
|
+
|
|
48
|
+
开发期反复重装本地目录:`npm run build && npm i -g . --force`——**build 不可省**(包没有 prepare 脚本,npm 不会自动构建,`files` 只打包 dist/ 现状,漏 build 会把旧 dist 装回去);`--force`(或先 bump 版本)是因为版本号未变时 npm 会报 "up to date" 而**跳过文件更新**。若首次用的是 `npm link`(符号链接直连仓库),则每次只需 `npm run build`,无需重装。
|
|
47
49
|
</details>
|
|
48
50
|
|
|
49
51
|
**Codex daemon**(接收方向必需;从**干净终端**启动——勿在 Claude 会话内启动,否则派生 shell 身份污染):
|
|
@@ -119,14 +121,16 @@ D:\workspace\demo> codex
|
|
|
119
121
|
crosschat send --to <名字> --body "<正文>" # 新消息(名字含空格加引号)
|
|
120
122
|
crosschat send --conversation <ref> --body "<正文>" # 回复(ref 照抄收到的信封)
|
|
121
123
|
echo … | crosschat send --to <名字> # 正文走 stdin
|
|
122
|
-
crosschat status [--json]
|
|
124
|
+
crosschat status [--json] [--conversations] # 双侧总览(名字/目录/时间/状态)
|
|
123
125
|
crosschat doctor # 一键环境体检(有 ❌ 时退出码 1)
|
|
124
126
|
crosschat install-skills [--dir <根>] # 安装/更新 agent skill(幂等)
|
|
125
127
|
crosschat claude [任意 claude 参数…] # 带接收许可启动 claude(透传)
|
|
126
128
|
crosschat -v | --version | help # 版本 / 帮助
|
|
127
129
|
```
|
|
128
130
|
|
|
129
|
-
发送输出三种状态:`delivered`(已投递)/ `parked
|
|
131
|
+
发送输出三种状态:`delivered`(已投递)/ `parked`(对方忙,已入发件箱,看门狗自动重投;输出含队列深度与 mailbox 镜像路径)/ 错误码(见排障)。
|
|
132
|
+
|
|
133
|
+
`status --conversations` 另看对话总览:每对端点的最近方向、相对时间、轮次、末条状态与滞留数(与 `--json` 组合输出同结构数组)。
|
|
130
134
|
|
|
131
135
|
## 📖 对话生命周期(规则总纲)
|
|
132
136
|
|
|
@@ -138,7 +142,7 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
138
142
|
| **codex** | 会话内 agent 跑 `crosschat send --to <claude 会话名> --body "…"` | 发送随意;回信开窗关窗都能收(daemon 0.160+) |
|
|
139
143
|
| **人** | 任意终端直接 `crosschat send --to <名字> --body "…"` | 身份是 human:**能发、不能被回复**(单向指令) |
|
|
140
144
|
|
|
141
|
-
第一条消息永远用 `--to`(此刻生成对话引用 reply-ref);对方名字用 `status`
|
|
145
|
+
第一条消息永远用 `--to`(此刻生成对话引用 reply-ref);对方名字用 `status` 查。`--to` 不必只用于第一条:对同一端对的重复 `--to` 发送会**自动接续你们最近的对话**(turn 递增,本地记账,无需手带引用);要另起线程时用 `--conversation` 显式切换即可。
|
|
142
146
|
|
|
143
147
|
### 往复规则
|
|
144
148
|
|
|
@@ -157,8 +161,9 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
157
161
|
| claude(`crosschat claude` 启动) | 窗口开 | ✅ 秒达,会话内出现信封消息 |
|
|
158
162
|
| claude(裸 `claude` 启动) | 任何 | ❌ 无接收许可(换 `crosschat claude` 重启) |
|
|
159
163
|
| codex(daemon ≥0.160) | 窗口开/关 | ✅ 送达(headless 执行;TUI 不实时刷新,翻历史可见) |
|
|
160
|
-
| codex
|
|
161
|
-
| codex
|
|
164
|
+
| codex(daemon ≥0.160) | turn 进行中(忙) | ✅ **入队即达**:`queued`(按线程串行,轮结束瞬间落历史并被处理)——与 Claude 收件箱同粒度 |
|
|
165
|
+
| codex(旧 daemon ≤0.157 / `--no-daemon`) | 窗口开 | ⏳ 等待 ~10s,关窗瞬间送达;超时 `parked` 入发件箱(看门狗自动重投) |
|
|
166
|
+
| codex | 排队被旧 daemon 拒绝等罕见态 | 📮 `parked` 入发件箱(新消息排队不插队),看门狗每 0.5–5 分钟自动重投 |
|
|
162
167
|
|
|
163
168
|
**不对称速记**:claude 收发都随意;codex 收信在 0.160+ 开窗关窗均可,关窗永远是最稳路径。
|
|
164
169
|
|
|
@@ -177,7 +182,7 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
177
182
|
- [x] 无状态 CLI 四命令 + 自包含会话引用 + 轮次计数
|
|
178
183
|
- [x] 双侧自动发现(含目录/时间标注)、信封自带教学 skill
|
|
179
184
|
- [x] 16KiB 上限、30 条/60s 防乒乓限流、身份冲突自纠指引
|
|
180
|
-
- [x] 忙/锁超时 →
|
|
185
|
+
- [x] 忙/锁超时 → 本地发件箱 + 看门狗自动重投(outbox,FIFO 不插队,mailbox 镜像可读)
|
|
181
186
|
- [x] daemon 0.160 开窗投递(实证:同 daemon 多连接绕过写者锁)
|
|
182
187
|
|
|
183
188
|
**计划中**
|
|
@@ -194,11 +199,15 @@ crosschat -v | --version | help # 版本 / 帮助
|
|
|
194
199
|
|
|
195
200
|
**身份类**:`CALLER_IDENTITY_CONFLICT`(环境双身份残留。临时:命令前缀 `env -u CLAUDE_CODE_MESSAGING_SOCKET -u CLAUDE_CODE_MESSAGING_TOKEN -u CLAUDE_CODE_SESSION_ID`;根治:干净终端重启 daemon)· `CALLER_NOT_IN_CONVERSATION` · `CANNOT_REPLY_TO_HUMAN`(对话由人发起)
|
|
196
201
|
|
|
197
|
-
**通道类**:`CODEX_PROXY_SPAWN_FAILED`(看 stderr 摘录;通常 daemon 未跑)· `CODEX_THREAD_LOCKED`/`CODEX_THREAD_BUSY_TIMEOUT`(已自动转 `parked` 入发件箱,无需重发)· `OUTBOX_FULL`(每线程
|
|
202
|
+
**通道类**:`CODEX_PROXY_SPAWN_FAILED`(看 stderr 摘录;通常 daemon 未跑)· `CODEX_THREAD_LOCKED`/`CODEX_THREAD_BUSY_TIMEOUT`(已自动转 `parked` 入发件箱,无需重发)· `OUTBOX_FULL`(每线程 200 条积压上限,读 mailbox 镜像取回内容)· `CODEX_APPROVAL_REQUIRED`(**工具永不代答审批**)· `CLAUDE_PIPE_*`/`CODEX_*UNCERTAIN`(写入中途失败状态不明——**勿盲目重发**,先 `status` 核实)
|
|
203
|
+
|
|
204
|
+
**发送审计**:每次发送的最终结果(delivered/queued/parked/failed、时间、对端、发送方显示名 fromName、回执)追加记录在 `%LOCALAPPDATA%\crosschat\send-log.jsonl`;codex 投递附 rollout 回执(消息已确认落入对方会话历史 = `receipt: confirmed`)。命令超时转后台后结果同样在案,事后可查。
|
|
198
205
|
|
|
199
206
|
## ⚠️ 边界与限制
|
|
200
207
|
|
|
201
|
-
单条 ≤16KiB;每对端点 30 条/60s;发件箱每线程
|
|
208
|
+
单条 ≤16KiB;每对端点 30 条/60s;发件箱每线程 200 条(满时读 `%LOCALAPPDATA%\crosschat\mailbox\<线程ID>.md` 取回内容);信任边界=同一 Windows 用户;接收许可仅 `crosschat claude` 启动的会话。
|
|
209
|
+
|
|
210
|
+
**daemon 依赖(重要)**:向 codex 会话投递走 `codex app-server proxy`,它连接**运行中的 app-server daemon** control socket。要获得完整能力(TUI 开窗可投、忙时入队),需要 `codex app-server daemon start` 且 daemon ≥0.160,TUI 用同版本 CLI 打开(0.160 起 TUI 自动附着 daemon)。daemon 未运行时投递会报 `CODEX_PROXY_SPAWN_FAILED` 并提示启动命令;旧版本 daemon 下开窗投递与忙时入队退化为「关窗投递 + 发件箱」。重启电脑后需重新 `codex app-server daemon start`。
|
|
202
211
|
|
|
203
212
|
## ❓ FAQ
|
|
204
213
|
|
package/dist/cli.js
CHANGED
|
@@ -11,6 +11,11 @@ import { runDoctor } from './commands/doctor.js';
|
|
|
11
11
|
import { runClaudeWrapper } from './commands/claude-wrapper.js';
|
|
12
12
|
import { defaultRateDir } from './rate-limit.js';
|
|
13
13
|
import { defaultOutboxDir, drain } from './outbox.js';
|
|
14
|
+
import { runWatchdog, spawnWatchdog as ensureWatchdog } from './watchdog.js';
|
|
15
|
+
import { appendSendLog, confirmInRollout, defaultSendLogFile } from './send-log.js';
|
|
16
|
+
import { defaultConversationsFile } from './conversations.js';
|
|
17
|
+
import { conversationSummaries } from './conversation-summary.js';
|
|
18
|
+
import { codexHomeDir } from './codex/rollout-meta.js';
|
|
14
19
|
import { listClaudeSessions } from './claude/registry.js';
|
|
15
20
|
import { deliverToClaudeSession } from './claude/deliver.js';
|
|
16
21
|
import { listCodexThreads } from './codex/discovery.js';
|
|
@@ -22,7 +27,8 @@ commands:
|
|
|
22
27
|
send --to <name> | --conversation <ref>
|
|
23
28
|
send a message (--body <text> or stdin);
|
|
24
29
|
quote <name> if it contains spaces
|
|
25
|
-
status
|
|
30
|
+
status [--conversations] show claude/codex session status, or per-pair
|
|
31
|
+
conversation overview with --conversations
|
|
26
32
|
doctor environment health check (exits 1 on any ❌)
|
|
27
33
|
install-skills [--dir <root>]
|
|
28
34
|
install the agent skill into <root>/.claude and
|
|
@@ -67,13 +73,20 @@ export function parseSendArgs(argv) {
|
|
|
67
73
|
}
|
|
68
74
|
return args;
|
|
69
75
|
}
|
|
70
|
-
/** status accepts
|
|
76
|
+
/** status accepts only --json and --conversations (each at most once). */
|
|
71
77
|
export function parseStatusArgs(argv) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
let json = false;
|
|
79
|
+
let conversations = false;
|
|
80
|
+
for (const token of argv) {
|
|
81
|
+
if (token === '--json' && !json)
|
|
82
|
+
json = true;
|
|
83
|
+
else if (token === '--conversations' && !conversations)
|
|
84
|
+
conversations = true;
|
|
85
|
+
else {
|
|
86
|
+
throw new MultichatError('USAGE', `status takes only --json/--conversations; got: ${argv.join(' ')}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return { json, conversations };
|
|
77
90
|
}
|
|
78
91
|
/** install-skills accepts only --dir <root> (space or = separated). */
|
|
79
92
|
export function parseInstallSkillsArgs(argv) {
|
|
@@ -117,12 +130,20 @@ function realSendDeps(stdinText) {
|
|
|
117
130
|
rateDir: defaultRateDir(),
|
|
118
131
|
outboxDir: defaultOutboxDir(),
|
|
119
132
|
now: () => Date.now(),
|
|
133
|
+
spawnWatchdog: () => ensureWatchdog(defaultOutboxDir()),
|
|
134
|
+
appendLog: (entry) => appendSendLog(defaultSendLogFile(), entry),
|
|
135
|
+
confirmReceipt: (threadId, marker) => confirmInRollout(codexHomeDir(), threadId, marker),
|
|
136
|
+
conversationStateFile: defaultConversationsFile(),
|
|
120
137
|
};
|
|
121
138
|
}
|
|
122
139
|
function realStatusDeps() {
|
|
123
140
|
return {
|
|
124
141
|
listClaudeSessions: () => listClaudeSessions(),
|
|
125
142
|
listCodexThreads: () => listCodexThreads(),
|
|
143
|
+
listConversations: () => conversationSummaries(),
|
|
144
|
+
// B22: bounded recheck budget (2 polls × 200ms per unconfirmed row) so the
|
|
145
|
+
// conversations view stays snappy while catching slow rollout flushes.
|
|
146
|
+
confirmReceipt: (threadId, marker) => confirmInRollout(codexHomeDir(), threadId, marker, { tries: 2, delayMs: 200 }),
|
|
126
147
|
};
|
|
127
148
|
}
|
|
128
149
|
function drainAtEntry() {
|
|
@@ -177,6 +198,20 @@ async function main(argv) {
|
|
|
177
198
|
process.stdout.write(usage);
|
|
178
199
|
return 0;
|
|
179
200
|
}
|
|
201
|
+
// Hidden maintenance entry (B12): one drain round by hand, or the watchdog
|
|
202
|
+
// loop when spawned with --watch. Not in usage on purpose.
|
|
203
|
+
if (command === '__drain') {
|
|
204
|
+
if (rest.includes('--watch')) {
|
|
205
|
+
await runWatchdog(defaultOutboxDir(), defaultRateDir(), {
|
|
206
|
+
deliverCodex: (threadId, content, busyTimeoutMs) => deliverToCodexThread(threadId, content, { busyTimeoutMs }),
|
|
207
|
+
err: (line) => process.stderr.write(`${line}\n`),
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
await drainAtEntry();
|
|
212
|
+
}
|
|
213
|
+
return 0;
|
|
214
|
+
}
|
|
180
215
|
if (command === 'send') {
|
|
181
216
|
if (rest.includes('--help')) {
|
|
182
217
|
process.stdout.write(usage);
|
|
@@ -202,9 +237,9 @@ async function main(argv) {
|
|
|
202
237
|
return 0;
|
|
203
238
|
}
|
|
204
239
|
try {
|
|
205
|
-
const { json } = parseStatusArgs(rest);
|
|
240
|
+
const { json, conversations } = parseStatusArgs(rest);
|
|
206
241
|
await drainAtEntry();
|
|
207
|
-
const output = await runStatus(realStatusDeps(), json);
|
|
242
|
+
const output = await runStatus(realStatusDeps(), json, conversations);
|
|
208
243
|
process.stdout.write(`${output}\n`);
|
|
209
244
|
return 0;
|
|
210
245
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/codex/client.js
CHANGED
|
@@ -48,10 +48,15 @@ export function openCodexSession(options = {}) {
|
|
|
48
48
|
rpc.notify('initialized', {});
|
|
49
49
|
},
|
|
50
50
|
async listThreads() {
|
|
51
|
+
// Absent sourceKinds, the server defaults to interactive-only sources
|
|
52
|
+
// (cli/vscode — app-server filters.rs INTERACTIVE_SESSION_SOURCES), so
|
|
53
|
+
// `codex exec` threads (source=exec, B19/B20 drill §5.1) would never be
|
|
54
|
+
// listed. Legal values = ThreadSourceKind enum (v2 protocol schema).
|
|
51
55
|
const result = await rpc.request('thread/list', {
|
|
52
56
|
archived: false,
|
|
53
57
|
limit: 20,
|
|
54
58
|
sortKey: 'recency_at',
|
|
59
|
+
sourceKinds: ['cli', 'vscode', 'exec'],
|
|
55
60
|
useStateDbOnly: true,
|
|
56
61
|
});
|
|
57
62
|
if (!isRecord(result) || !Array.isArray(result.data)) {
|
package/dist/codex/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/codex/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAA6B,MAAM,UAAU,CAAC;AACrE,OAAO,EACL,qBAAqB,GAGtB,MAAM,gBAAgB,CAAC;AAiDxB,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,IAAI,cAAc,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvD,MAAM,aAAa,CAAC,2CAA2C,CAAC,CAAC;IACnE,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,YAAY,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa;YAChB,OAAO,cAAc,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,4EAA4E;YAC5E,OAAO,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAChF,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,MAAM,CAAC;QACb,CAAC;QACD;YACE,MAAM,aAAa,CAAC,qCAAqC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA+B,EAAE;IAChE,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,OAAO,GAAiB;YAC5B,KAAK,CAAC,UAAU;gBACd,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC9B,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBACvC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;iBACxE,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,KAAK,CAAC,WAAW;gBACf,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE;oBAC9C,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,YAAY;oBACrB,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrD,MAAM,aAAa,CAAC,0CAA0C,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;wBACjD,MAAM,aAAa,CAAC,8BAA8B,CAAC,CAAC;oBACtD,CAAC;oBACD,OAAO;wBACL,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;wBACpD,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;qBAC1C,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,QAAgB;gBACjC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE;oBAChD,YAAY,EAAE,IAAI;oBAClB,QAAQ;iBACT,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACnF,MAAM,aAAa,CAAC,iDAAiD,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrD,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAY;gBAC5C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC7C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;oBAClB,QAAQ;oBACR,WAAW,EAAE,WAAW;iBACzB,CAAC,CAAC;gBACH,IACE,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACjB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ;oBAClC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,EACtC,CAAC;oBACD,MAAM,aAAa,CAAC,mCAAmC,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5D,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,cAAsB,EAAE,IAAY;gBACpE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC7C,cAAc;oBACd,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;oBAClB,QAAQ;iBACT,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC3D,MAAM,aAAa,CAAC,qCAAqC,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,QAAgB;gBAChC,MAAM,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,GAAW;gBAC3B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC1F,MAAM,aAAa,CAAC,0CAA0C,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,QAAgB;gBACjC,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,aAAa;gBACX,OAAO,GAAG,CAAC,aAAa,CAAC;YAC3B,CAAC;YACD,KAAK,CAAC,KAAK;gBACT,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;SACF,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/codex/client.ts"],"names":[],"mappings":"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"}
|
package/dist/codex/deliver.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { MultichatError } from '../errors.js';
|
|
2
2
|
import { openCodexSession, } from './client.js';
|
|
3
3
|
import { CodexRpcRejectedError } from './rpc.js';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* B19 stall budget: a writer lock that never releases or a thread that never
|
|
6
|
+
* loads parks after ~10s (about 3 polls at the default 3s interval — enough to
|
|
7
|
+
* ride out transient stalls) instead of blocking the sender for the old 120s.
|
|
8
|
+
* send.ts maps both outcomes to parked; the watchdog re-delivers.
|
|
9
|
+
*/
|
|
10
|
+
const STALL_PARK_TIMEOUT_MS = 10_000;
|
|
5
11
|
const DEFAULT_POLL_INTERVAL_MS = 3_000;
|
|
6
12
|
/** Server-side rejection text when a codex TUI window holds the thread writer. */
|
|
7
13
|
const ACTIVE_WRITER_PATTERN = /already has an active writer/i;
|
|
@@ -15,7 +21,7 @@ const STDERR_EXCERPT_CHARS = 300;
|
|
|
15
21
|
const DAEMON_START_HINT = 'codex app-server daemon 可能未启动,可运行: codex app-server daemon start';
|
|
16
22
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
23
|
export async function deliverToCodexThread(threadId, content, options = {}) {
|
|
18
|
-
const
|
|
24
|
+
const stallTimeoutMs = Math.min(options.busyTimeoutMs ?? STALL_PARK_TIMEOUT_MS, STALL_PARK_TIMEOUT_MS);
|
|
19
25
|
const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
20
26
|
const sessionFactory = options.sessionFactory ?? openCodexSession();
|
|
21
27
|
let session;
|
|
@@ -26,15 +32,18 @@ export async function deliverToCodexThread(threadId, content, options = {}) {
|
|
|
26
32
|
throw spawnFailure(err);
|
|
27
33
|
}
|
|
28
34
|
let resumed = false;
|
|
35
|
+
/** True when the turn/start below queues onto a running turn (daemon >=0.160). */
|
|
36
|
+
let queuedOnBusyThread = false;
|
|
29
37
|
try {
|
|
30
38
|
try {
|
|
31
39
|
await session.initialize();
|
|
32
|
-
const deadline = Date.now() +
|
|
33
|
-
// Disposition loop: idle -> proceed; busy
|
|
34
|
-
//
|
|
35
|
-
// waiting_approval -> APPROVAL_REQUIRED
|
|
36
|
-
// system_error -> fail;
|
|
37
|
-
//
|
|
40
|
+
const deadline = Date.now() + stallTimeoutMs;
|
|
41
|
+
// Disposition loop: idle -> proceed; busy -> proceed too (daemon
|
|
42
|
+
// >=0.160 accepts turn/start against a busy thread and serializes it —
|
|
43
|
+
// measured inbox semantics); waiting_approval -> APPROVAL_REQUIRED
|
|
44
|
+
// (never answered for the user); system_error -> fail; a TUI
|
|
45
|
+
// active-writer rejection or not_loaded keep polling (legacy old-daemon
|
|
46
|
+
// path; the server also loads asynchronously after resume).
|
|
38
47
|
let writerHeld = false;
|
|
39
48
|
for (;;) {
|
|
40
49
|
let status;
|
|
@@ -60,23 +69,26 @@ export async function deliverToCodexThread(threadId, content, options = {}) {
|
|
|
60
69
|
}
|
|
61
70
|
if (status !== undefined) {
|
|
62
71
|
resumed = true;
|
|
63
|
-
if (status === 'idle')
|
|
72
|
+
if (status === 'idle' || status === 'busy') {
|
|
73
|
+
queuedOnBusyThread = status === 'busy';
|
|
64
74
|
break;
|
|
75
|
+
}
|
|
65
76
|
if (status === 'waiting_approval') {
|
|
66
77
|
throw new MultichatError('CODEX_APPROVAL_REQUIRED', `Codex thread ${threadId} is waiting for an approval; only the user can answer it.`);
|
|
67
78
|
}
|
|
68
79
|
if (status === 'system_error') {
|
|
69
80
|
throw protocolFailure(`Codex thread ${threadId} is in system_error state.`, undefined);
|
|
70
81
|
}
|
|
71
|
-
// Resume succeeded, so no writer lock;
|
|
82
|
+
// Resume succeeded, so no writer lock; only not_loaded remains,
|
|
83
|
+
// which resolves asynchronously — keep polling.
|
|
72
84
|
writerHeld = false;
|
|
73
85
|
}
|
|
74
86
|
if (Date.now() + pollIntervalMs > deadline) {
|
|
75
87
|
if (writerHeld) {
|
|
76
|
-
throw new MultichatError('CODEX_THREAD_LOCKED', `Codex thread ${threadId} 正被 codex 窗口占用,等待 ${
|
|
88
|
+
throw new MultichatError('CODEX_THREAD_LOCKED', `Codex thread ${threadId} 正被 codex 窗口占用,等待 ${stallTimeoutMs / 1000}s 未释放。` +
|
|
77
89
|
'关闭该窗口后重发将立即送达;或改投其它线程。');
|
|
78
90
|
}
|
|
79
|
-
throw new MultichatError('CODEX_THREAD_BUSY_TIMEOUT', `Codex thread ${threadId}
|
|
91
|
+
throw new MultichatError('CODEX_THREAD_BUSY_TIMEOUT', `Codex thread ${threadId} did not become reachable within ${stallTimeoutMs}ms.`);
|
|
80
92
|
}
|
|
81
93
|
await sleep(pollIntervalMs);
|
|
82
94
|
}
|
|
@@ -100,6 +112,11 @@ export async function deliverToCodexThread(threadId, content, options = {}) {
|
|
|
100
112
|
}
|
|
101
113
|
catch (err) {
|
|
102
114
|
if (err instanceof CodexRpcRejectedError) {
|
|
115
|
+
// An old daemon may reject a turn/start against a busy thread where
|
|
116
|
+
// 0.160+ queues it: surface as BUSY so the outbox parks it.
|
|
117
|
+
if (queuedOnBusyThread) {
|
|
118
|
+
throw new MultichatError('CODEX_THREAD_BUSY_TIMEOUT', `Codex thread ${threadId} is busy and this daemon does not queue turns: ${err.message}`, { cause: err });
|
|
119
|
+
}
|
|
103
120
|
throw new MultichatError('CODEX_TURN_REJECTED', `Codex rejected the turn for thread ${threadId}: ${err.message}`, { cause: err });
|
|
104
121
|
}
|
|
105
122
|
// Timeout/transport/protocol after the write was sent: acceptance is
|
|
@@ -109,7 +126,7 @@ export async function deliverToCodexThread(threadId, content, options = {}) {
|
|
|
109
126
|
if (turn.status !== 'inProgress') {
|
|
110
127
|
throw new MultichatError('CODEX_WRITE_UNCERTAIN', `Turn for thread ${threadId} returned unexpected status: ${turn.status}.`);
|
|
111
128
|
}
|
|
112
|
-
return { status: 'accepted', turnId: turn.id };
|
|
129
|
+
return { status: 'accepted', turnId: turn.id, queued: queuedOnBusyThread };
|
|
113
130
|
}
|
|
114
131
|
finally {
|
|
115
132
|
if (resumed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../src/codex/deliver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,gBAAgB,GAIjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../src/codex/deliver.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,4 +115,10 @@ export function lookupRolloutMetas(codexHome, threadIds) {
|
|
|
115
115
|
export function lookupRolloutMeta(codexHome, threadId) {
|
|
116
116
|
return lookupRolloutMetas(codexHome, [threadId]).get(threadId);
|
|
117
117
|
}
|
|
118
|
+
/** Rollout file path for one thread id; undefined when no rollout exists. */
|
|
119
|
+
export function findRolloutFile(codexHome, threadId) {
|
|
120
|
+
if (threadId.length === 0)
|
|
121
|
+
return undefined;
|
|
122
|
+
return findRolloutFiles(join(codexHome, 'sessions'), new Set([threadId])).get(threadId);
|
|
123
|
+
}
|
|
118
124
|
//# sourceMappingURL=rollout-meta.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollout-meta.js","sourceRoot":"","sources":["../../src/codex/rollout-meta.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rollout-meta.js","sourceRoot":"","sources":["../../src/codex/rollout-meta.ts"],"names":[],"mappings":"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"}
|
package/dist/codex/transport.js
CHANGED
|
@@ -11,6 +11,24 @@ const SPAWN_TIMEOUT_MS = 10_000;
|
|
|
11
11
|
const WS_CLOSE_TIMEOUT_MS = 2_000;
|
|
12
12
|
const GRACEFUL_EXIT_MS = 2_000;
|
|
13
13
|
const KILL_EXIT_TIMEOUT_MS = 1_500;
|
|
14
|
+
/**
|
|
15
|
+
* Identity vars that must never leak into the spawned codex proxy: a parent
|
|
16
|
+
* Claude Code or Codex CLI session would otherwise make the codex side see a
|
|
17
|
+
* dual identity (CALLER_IDENTITY_CONFLICT, measured 2026-10-02 B5).
|
|
18
|
+
*/
|
|
19
|
+
const STRIP_ENV_KEYS = [
|
|
20
|
+
'CLAUDE_CODE_MESSAGING_SOCKET',
|
|
21
|
+
'CLAUDE_CODE_MESSAGING_TOKEN',
|
|
22
|
+
'CLAUDE_CODE_SESSION_ID',
|
|
23
|
+
'CODEX_THREAD_ID',
|
|
24
|
+
'CODEX_SESSION_ID',
|
|
25
|
+
];
|
|
26
|
+
export function sanitizeProxyEnv(env) {
|
|
27
|
+
const clean = { ...env };
|
|
28
|
+
for (const key of STRIP_ENV_KEYS)
|
|
29
|
+
delete clean[key];
|
|
30
|
+
return clean;
|
|
31
|
+
}
|
|
14
32
|
/**
|
|
15
33
|
* Resolve the codex executable. On Windows the npm shim (`codex.cmd`) cannot be
|
|
16
34
|
* spawned without a shell, so the native exe is located explicitly.
|
|
@@ -279,13 +297,16 @@ export async function wsChannelFactory(duplex) {
|
|
|
279
297
|
* does not exit on its own.
|
|
280
298
|
*/
|
|
281
299
|
export async function openCodexProxySession(options = {}) {
|
|
282
|
-
|
|
300
|
+
// An injected spawnProxy ignores the command argument entirely: resolve the
|
|
301
|
+
// real executable only when the default spawner will run, so hermetic tests
|
|
302
|
+
// (and codex-less CI runners) do not require a local codex install.
|
|
303
|
+
const command = options.executable ?? (options.spawnProxy !== undefined ? 'codex' : resolveCodexExecutable());
|
|
283
304
|
const doSpawn = options.spawnProxy ??
|
|
284
305
|
((cmd, args) => spawn(cmd, [...args], {
|
|
285
306
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
286
307
|
shell: false,
|
|
287
308
|
windowsHide: true,
|
|
288
|
-
env: process.env,
|
|
309
|
+
env: sanitizeProxyEnv(process.env),
|
|
289
310
|
}));
|
|
290
311
|
const channelFactory = options.channelFactory ?? wsChannelFactory;
|
|
291
312
|
let child;
|