Releases: leeguooooo/open-cross-session
Releases · leeguooooo/open-cross-session
Release list
v0.5.0
feat(names): 会话可起 ocs 名字,名字和不变短 id 都能寻址,发 0.5.0 - `ocs rename <name> [--force] | --clear`:给当前 Claude/Codex/Pi 会话起名,落 ~/.ocs/names/。 被别的身份占着时拒绝(--force 接管),与别的活 Claude 精确名撞车拒绝,地址语法是保留字。 Claude 名字按 sessionId 绑定,/clear 后按 pid+procStart 跟着窗口走 - Claude 会话新增不变短 id `claude-<8hex>`;解析顺序:活会话精确名 > ocs 名字 > 短 id > 工作区别名, 精确名与 ocs 名字指向不同会话时拒绝任选 - `@名字` / `@claude-|codex-|pi-<8hex>` 在 send 里归一后分流,名字可以指向 Codex / Pi - Claude→Claude DM 的 Reply 行优先用发送方的 ocs 名字;被别人名字遮蔽的工作区别名不再宣告 - `ocs who` 并排显示名字和 id;`ocs whoami --json [--session <id>]` 给状态栏等工具的稳定接口 Claude-Session: https://claude.ai/code/session_01H3BQFmPJdTnH4L8xS3qk6E
v0.4.10
perf(codex): who/dm 的进程表只解一次,判活和宿主共用 判活现在要看进程表(校验持有者身份),宿主解析本来也要——不共用等于给 who 和 每条 dm 各加一次 `ps -A` 全表扫描。表由调用方解一次往下传,省掉重复的那次。 顺带把 OCS_VERSION 同步到 0.4.10(version.test.ts 钉着 package.json)。 真机验证(本机 codex 全在跑):终端 TUI(Terminal / cmux 里的 `codex`,npm 包最终 exec 的是 vendor/<triple>/bin/codex,basename 正是 codex)和 Desktop 托管的 task (持有者挂在 ChatGPT.app 树下)都仍列为 reachable,没有被新的身份校验误杀。 Claude-Session: https://claude.ai/code/session_012S34e6cev7qQCDFngyP7Lm
v0.4.9
perf(codex): 砍掉热路径上的三处浪费,发 0.4.9
实测(本机 2513 个 rollout)先量后改:
codexQueueAvailable 489ms → 0ms 起 `codex queue --help` 只为回答「通道在不在」,
改成 PATH 可执行位检查(纯 stat)。shell 别名/
函数照样判 false——那正是要拦的情况;「装了但太老」
交给真实调用报错(owner 已定不考虑老版本)。
doctor 另留 codexQueueSupported 做完整探测,
诊断愿意为准确性付那半秒,热路径不该付。
投后复查 349ms → ~0ms 复查只需回答「刚才那个持有者还活着吗」,不必再扫
全机进程表;改用 kill(pid, 0)。EPERM 算活着,
只有 ESRCH 才是真没了。
codexThreadLivePids 270ms → 172ms 批量探测里每个 id 都重走一遍 sessions 目录树,
改成整批只走一次。
一次 codex 投递的固定开销约 1.36s → 0.85s;`ocs who` 1.13s → 1.00s(剩下的在 lsof
与 ps 两次 spawn 上,各约 170ms)。
Claude-Session: https://claude.ai/code/session_01LnaJjCP5xmpqmHnRQLQpjZ
v0.4.8
fix(codex): 收窄 queue 的活性竞态窗口,who 点破 codex 不在 PATH 的静默降级,发 0.4.8 两个已知但没处理的口子: 1. 活性是投递前的快照——检查到 spawn 返回之间目标可能已经退出,那条消息就静静躺在 thread store 里没人读。投完复查一次 rollout 持有者:不是同一个 pid(消失或换人) 一律按 unknown-outcome 报,绝不当成功、也绝不重放(铁律 5)。判定抽成 classifyQueueOutcome 纯函数,测试钉住三种归宿。 2. `codex` 是 shell 别名/函数时探测判不可用,于是静默降级回 IPC/cmux——而这两条都够 不着终端里的 codex。`ocs who` 在「有活着的非 Desktop 目标 + queue 不可用」时直接说 出来,不让用户对着一列看得见却叫不醒的会话猜原因。 Claude-Session: https://claude.ai/code/session_01LnaJjCP5xmpqmHnRQLQpjZ
v0.4.7
fix(codex): 载体按宿主选,Desktop 任务改回 IPC 优先,发 0.4.7
0.4.4 把 codex 目标一律改走 `codex queue`,对 Desktop 托管的 task 是退步。实测比对
同一个 Desktop task 的 rollout 记录:
IPC → FunctionCallOutput / send_message_to_thread + <codex_delegation>
<source_thread_id>… 原生来源信封
queue → item: {"type": "UserMessage"} 呈现成用户自己敲的
两条都能送达并触发新 turn,差别在归属。把别的 agent 发来的消息显示成用户输入,等于
抹掉「这是跨会话数据不是用户指令」这层标记——Claude 侧专门用原生 "Message from X"
包装就是这个理由,Desktop 上不该拿它换便利。
改为按宿主选载体:宿主是 ChatGPT(Desktop 托管)先走 IPC,其它宿主(终端 TUI,IPC
根本够不着)走 queue。Desktop 上 IPC 投不进时 queue 仍是最后一级兜底——丢掉来源信封
好过完全投不到,正文里本来就带着 `[ocs wake] X mentioned you`。
新增回归测试:活着且非 Desktop 托管的目标必须走 queue 且不触碰 IPC。
Claude-Session: https://claude.ai/code/session_01LnaJjCP5xmpqmHnRQLQpjZ
v0.4.6
fix(codex): 补上自我唤醒防回环,发 0.4.6 Claude(findSelfClaudePid)和 Pi(piWakeSelfSkipped)两条唤醒路径都有自我防护, codex 一直缺。以前 Desktop IPC 的前置条件多(要 renderer 认领、要同 renderer 的 source),不易触发;`codex queue` 稳定投递之后,一个 @ 到自己的会话会把自己反复 唤醒。 target 与 CODEX_THREAD_ID 相同时跳过唤醒,消息照常落盘——发送方本来就在读它。 Claude-Session: https://claude.ai/code/session_01LnaJjCP5xmpqmHnRQLQpjZ
v0.4.5
feat(who): codex 活会话显示 tty 与宿主应用,并发 0.4.5 实测发现 agent 说不清自己跑在哪:一个明明在 Terminal.app 里的 codex 会话,被问到 宿主时自称「不挂在 iTerm、Terminal.app 或 VS Code 终端上」。诊断可达性只能看进程 事实,不能问 agent,所以把事实直接摆进 `ocs who`。 `codexHosts()` 一次 `ps -A` 解出所有活会话的控制终端,并沿祖先链找第一个 .app 包 作为宿主应用(取路径里最先出现的 .app,VS Code 这类嵌套 helper 包才不会显示成 "Code Helper")。输出形如: codex-01a079d3 open-cross-session [queue pid 63804 · Terminal ttys002] codex-01a079b5 w-2 [queue pid 19364 · ChatGPT] codex-01a0797e piggo [queue pid 15408 · cmux ttys009] Terminal.app / ChatGPT Desktop / cmux 三种宿主一眼分得清。SKILL.md 里明说:这一行 比会话自述可信。 Claude-Session: https://claude.ai/code/session_01LnaJjCP5xmpqmHnRQLQpjZ
v0.4.4
chore(release): 0.4.4 codex 目标首选官方 `codex queue --thread`,终端里裸跑的 codex TUI 无需 cmux 或 ChatGPT Desktop 即可被唤醒;`ocs who` 与 doctor 同步反映新的可达性判据。 Claude-Session: https://claude.ai/code/session_01LnaJjCP5xmpqmHnRQLQpjZ
v0.4.3
v0.4.3: ocs upgrade 真升级、doctor 版本检查、Codex 建连预算修复(#28)、cmux 降级唤醒(#30)