Repository navigation
Releases: SeemSeam/claude_codex_bridge
Releases · SeemSeam/claude_codex_bridge
Release list
v8.7.19
v8.7.19
English
OMP Mobile native questions and runtime status
- Render native Collab select/editor questions as separate interactive cards, with descriptions and custom text input. Answers use
ui-response, not ordinary chat prompts, over HTTP or encrypted Relay. - Fence answers to namespace, native session, generation and request ID. Clear ended/disconnected requests; uncertain sends are not automatically retried. Pending questions prevent ordinary prompts from draining through the dialog.
- Show bounded native runtime metadata: elapsed time, current step, queue depth, model/thinking/context usage, task progress and Todo counts. Missing evidence stays unavailable rather than being inferred from prose or terminal rendering.
- Show running status inside the current working reply bubble without repeating it above the timeline. Preserve assistant prose and remove misleading unfinished/no-answer placeholders.
Readable content and reliable attribution
- Replace raw JSON original-content pages with a full-screen semantic Markdown reader. Reasoning and tools fold independently; Unicode-safe pages retain immutable version/branch fences and exact source blocks.
- Replace the mobile Tab shortcut with the Codex Queue action, preserving user drafts and uploaded attachments.
- Keep Pi/OMP completion tracking bound to the parent session through in-process subagent turns; subagent events no longer supersede the parent request or leak into its reply.
Verification and upgrade
- Exercised before release preparation: 154 targeted Python tests, 40 Bun runtime tests and 91 targeted Flutter tests passed; Flutter analysis reported no issues. A real OMP 18.12.6 CollabHost completed select/editor responses with zero model calls. Android API 35 exercised actual option selection and editor submission in an isolated application surface.
- These are targeted checks, not a full-suite or every-device qualification claim. The Android card smoke and native host smoke are separate checks, not a claim of one combined live-project network scenario.
- Upgrade the server gateway and Android app together. Existing OMP processes load the bridge after a normal restart when idle. Do not interrupt busy agents or clear history. Unsupported/oversized dialogs still require desktop interaction. Windows remains beta.
中文
OMP 手机原生交互与运行状态
- Collab 原生选择/编辑问题显示为独立交互卡片,支持选项说明及自定义输入。通过 HTTP 或加密 Relay 返回原生
ui-response,不再作为普通聊天消息排队。 - 使用命名空间、会话、代次和请求编号防止旧答案误投;请求结束或断线清除待答状态,发送结果不明时不自动重试。原生对话待回答期间不继续派发普通排队消息。
- 展示有界原生状态:运行时间、当前步骤、队列深度、模型/思考等级/上下文用量、任务进度及 Todo 数量。缺失证据保持不可用,不从正文或终端文字猜测。
- 正在运行的状态放在当前回复气泡内,不在时间线上方重复显示;保留助手正文,去掉误导性的“工具未完成/无回答”占位。
内容阅读与回复归属
- 原始 JSON 页改为全屏语义 Markdown 阅读器,思考和工具独立折叠;Unicode 安全分页保持不可变版本/分支边界及精确源文本。
- 手机 Tab 快捷键改为 Codex Queue 操作,保留草稿与上传附件。
- Pi/OMP 请求绑定在进程内子代理回合期间仍归属父会话,子代理事件不再覆盖父请求或混入父回复。
验证与升级
- 发布准备前已执行:154 项针对性 Python 回归、40 项 Bun 运行时回归、91 项 Flutter 回归通过,Flutter 静态分析无问题。真实 OMP 18.12.6 CollabHost 选择/编辑回复通过,零模型调用;Android API 35 隔离界面实际点选与编辑提交通过。
- 以上不是仓库全量测试或所有设备验收;Android 卡片与原生宿主分别验证,不冒称一次完整真实项目网络联调。
- 服务端 gateway 和 Android App 一起升级;已有 OMP 空闲后正常重启加载桥接,不中断忙碌 Agent,不清空历史。超出有界限制的对话仍需桌面处理;Windows 继续作为 beta。
v8.7.18
v8.7.18
English
Stable OMP Mobile connections and complete history
- Keep an authenticated healthy Collab connection alive when a history query fails. Report history and connection failures separately instead of repeatedly closing/rejoining as
collab:1/collab:2. - Replace whole-session ancestry export and its 16,384-entry ceiling with indexed native parent-chain pages, bounded to 128 records / 256 KiB. Signed cursors are owner/session/branch-fenced and remain valid across appends; genuine branch changes reject stale cursors.
- Retain at most 512 recent entries / 4 MiB in the live bridge while consuming the native snapshot barrier. Older history is read on demand, not lost when the recent replica evicts it. Oversized records use lossless byte chunks; complete turns preserve intermediate prose, tool calls and results.
- Preserve loaded phone pages and disclosure state across same-branch refreshes. Fence cross-transport append races so stale pending/stream metadata cannot duplicate an already durable input.
Readable, bounded reply bubbles
- Oversized replies display structured recent content directly in the bubble rather than only a 512-character prefix and a raw original-content link.
- Bound each serialized inline item, including its original-content cursor, to 24 KiB, at most 8 entries / 24 blocks. Prioritize latest assistant prose (up to 8,000 Unicode characters, reduced by the actual byte budget); recent process snippets are limited to 1,500 characters per block.
- Replace the bounded window within the same bubble on refresh rather than accumulating stale windows. Keep normal full-turn merging unchanged. Oversized user inputs retain a readable bounded tail. Original content and its hash remain unchanged and separately pageable.
Verification and upgrade
- Local Android API 35 emulator, actual OMP 18.12.6 native host, generated bridge, production gateway and encrypted Relay passed long-history and readable-bubble scenarios. The fixture contained 28,702 records, a 19,001-entry metadata gap, 141,678,063 raw history bytes and 63,257,173 replicated message bytes. All 200 initial conversation items were traversed; the 987,082-byte Unicode/tool original matched its SHA-256 after 31 content pages.
- Verified history failure/recovery without extra join/leave notices, append-safe replay, genuine branch isolation, FIFO, and same-bubble live tail replacement. No paid model requests. Actual OMP PTY reply-receipt smoke also passed after the history bridge changes.
- Release qualification: 285 targeted Python regressions, 21 runtime tests and 62 targeted Flutter tests passed; Flutter analysis reported no issues, npm pack verification passed, and actual OMP PTY receipt smoke passed. These are exercised selections, not a claim that the entire repository suite was run.
- Update server and Android app together. Already-running OMP extensions need a normal restart when idle; do not interrupt busy Agents or clear history to upgrade. The legacy macOS route and other Provider routes are unchanged; Windows remains beta. Existing pairing is preserved by the managed Mobile gateway restart.
- The emulator scenarios use isolated fixtures, not a claim that every phone/network or live project has been qualified. The local modified gateway was separately installed and restarted for owner testing; no formal release tag was previously published for those source changes.
中文
稳定连接与完整历史
- 历史查询失败不再关闭健康的 Collab 连接;区分历史数据错误和连接错误,避免
collab:1/collab:2反复跳动。 - 全量 ancestry 导出及其 16,384 条上限改为原生索引父链分页,每页最多 128 条 / 256 KiB。签名游标绑定宿主、会话及分支,支持同分支追加;真实分支变化时拒绝旧游标。
- 实时桥最多保留 512 条 / 4 MiB 近期记录,并正常消费原生快照结束屏障;旧历史按需读取,不因近期缓存淘汰而丢失。超大记录分块无损传输,完整回合保留中间正文及工具调用、结果。
- 同分支刷新保留手机已加载旧页和展开状态;修复原生历史先于实时快照到达时,旧待发/流式信息造成重复输入的竞态。
有上限的可读对话泡
- 超长回复直接显示最近的结构化正文与执行信息,不再只有开头 512 字符和原始 JSON 阅读入口。
- 单项包含原文游标的序列化内容不超过 24 KiB,最多 8 条记录 / 24 个块;优先保留最新正文,最多 8,000 个 Unicode 字符,实际字节预算不足时缩短;过程单块最多 1,500 字符。
- 同一气泡刷新替换最新窗口,不累积旧窗口;普通完整回合的合并保持不变。超长用户输入显示有界尾部,完整原文与哈希保持不变,仍可另外分页读取。
验证与升级
- 本地 Android API 35 虚拟机结合真实 OMP 18.12.6 原生宿主、生成桥、生产网关和加密 Relay 验收通过。夹具包含 28,702 条记录、19,001 条元数据间隔、141,678,063 字节原始历史、63,257,173 字节实际复制消息;初始 200 条对话项全部遍历,987,082 字节 Unicode/工具原文经 31 页读取后 SHA-256 一致。
- 历史错误恢复无额外 join/leave、追加后旧页重读、真实分支隔离、FIFO、同气泡最新尾部替换均通过;零付费模型调用。历史桥变更后的真实 OMP PTY 回执烟测也通过。
- 发布门禁:285 项针对性 Python 回归、21 项运行时测试、62 项 Flutter 测试通过,Flutter 静态分析无问题,npm 打包检查和真实 OMP PTY 回执烟测通过;不冒称执行了仓库全量测试。
- 服务器和 Android 应用一起更新;已有 OMP 扩展需在空闲时正常重启加载,不中断忙碌 Agent,也不清空历史。Mac legacy 与其他 Provider 路由不变,Windows 仍为 beta;受管 Mobile 网关重启保留配对。
- 虚拟机验收使用隔离夹具,不等于所有手机、网络或真实项目均已验收。本地修改网关此前另行安装重启供用户测试,这些源码变更此前未发布正式标签。
v8.7.17
v8.7.17
English
OMP reply receipts are not business completion
- Returned replies no longer have to wait behind an entire long-running OMP business turn. The native bridge exposes bounded, owner-bound
reply_deliverandreply_statusrequests;reply_capabilitiesadvertisesreply_ingress_version: 1. - A custom
ccb-replyis delivered as an aside at a safe step boundary, without clearing the composer, superseding the active ask anchor, or starting a concurrent turn. - Only a persisted native
custom_messagewith the exactccb-replydelivery identity and matching body hash counts as a receipt. A request being accepted, queued or still pending is not proof of receipt. - That receipt releases the delivery mailbox. It means the reply has reached native session history, not that the recipient has finished reading, reasoning about, or acting on it. Subsequent business processing keeps its own lifecycle.
- Ambiguous sends are resolved through status queries rather than blindly replayed. Pending, missing and unknown outcomes are not promoted to successful receipts.
Upgrade and compatibility
- Existing OMP processes must restart normally when idle to load the updated extension. Updating files alone does not change an already running extension; do not interrupt or restart a busy session, including busy
nozeli, to apply this update. - Update server and Android app together. Current metadata and APK references are v8.7.17; the Android build number is 8070017. Windows retains beta status.
- Preserve v8.7.16's sender-identity recovery and historical release entries. The WeChat invitation image and README QR cache key
a9f2d800are unchanged.
Release qualification
- Publication requires a passing receipt smoke against the actual installed OMP. Source-level expectations or an accepted bridge request alone do not qualify as persisted native receipt evidence.
- Local preview installed with the release installer; installed
ccb --print-versionreturnedv8.7.17. 363 targeted regressions and npm pack verification passed. - Actual installed OMP 18.12.6 PTY plus a loopback streaming provider: two replies admitted while a native tool was running, both exact on-disk receipts consumed at 1.32s before the original turn finished at 1.36s. Duplicate admission produced no extra native entries; original anchor and unsubmitted draft remained unchanged. No external model requests or live-project business replay.
- Admission intent is fsynced before native send. Receipt requires a matching newline-terminated native JSONL record and fsync; in-memory queue acceptance alone never completes delivery. Unresolved intents fail closed across restart.
中文
OMP 回复收据不等于业务处理完成
- 返回回复不再必须等待 OMP 的整个长业务回合结束。原生桥提供有界、绑定归属的
reply_deliver、reply_status请求,通过reply_capabilities的reply_ingress_version: 1声明支持。 - 自定义
ccb-reply在安全步骤边界作为 aside 投递,不清空输入框、不取代活跃 ask 锚点,也不启动并发回合。 - 只有具有精确
ccb-reply投递身份、正文哈希匹配且已持久化的原生custom_message才算收据。接口接受、排队或 pending 均不代表已经收到。 - 收据用于释放投递邮箱,表示回复已进入原生会话历史,不代表接收方已完成阅读、推理或后续业务处理;业务处理保留自己的生命周期。
- 发送结果不明时查询状态,不盲目重放。pending、missing、unknown 状态不能被提升为成功收据。
升级与兼容性
- 已有 OMP 进程必须在空闲后正常重启,才能加载新扩展。仅更新磁盘文件不会改变已运行的扩展;不要为升级打断或重启忙碌会话,包括忙碌的
nozeli。 - 服务器与 Android 应用一起更新。当前版本元数据与 APK 引用为 v8.7.17,Android 构建号为 8070017;Windows 继续保持 beta 状态。
- 保留 v8.7.16 的发送者身份恢复与全部历史版本记录。微信邀请图片及 README 二维码缓存标识
a9f2d800保持不变。
发布资格
- 发布前必须通过真实已安装 OMP 的收据冒烟验证。仅源码预期或桥请求被接受,不能替代原生持久化收据证据。
- 已使用发布安装器安装本地候选,已安装
ccb --print-version输出v8.7.17;363 项针对性回归与 npm 打包检查通过。 - 真实已安装 OMP 18.12.6 PTY 配合本地流式接口:原生工具运行中接收两条回复,1.32 秒时两条磁盘收据均被消费,原回合 1.36 秒才结束。重复准入未新增记录,原锚点与未发送草稿不变;未调用外部模型、未重放真实项目业务。
- 原生发送前 fsync 投递意图;收据必须匹配完整原生 JSONL 记录并完成 fsync,不能凭内存排队判定成功;重启后未解决意图保持未知且不重放。
v8.7.16
v8.7.16
English
OMP Python ask caller identity
- Include commit
6d3ae4a53. OMP's Python tool can filterCCB_*andCODEX_*from subprocess environments while retainingPI_*. Anaskfrom a shared workspace could therefore be attributed touser, leaving its completed reply without an Agent mailbox return. - Recover the caller only when
PI_CODING_AGENT_DIRcanonically matches the current runtime's exactagents/<configured-agent>/provider-state/omp/home/.omp/agentpath and the Agent uses OMP. Relocated runtime roots are supported. - Explicit sender and existing runtime/actor/session identity retain precedence. A supplied invalid runtime path is not overridden. Unmanaged homes, foreign projects, unknown Agents, other providers and escaping symlinks do not acquire an Agent identity.
- Existing jobs are not relabeled or replayed. No Provider authentication, environment allowlist or native installation is changed. This does not repair unrelated human-turn supersession.
Community and compatibility
- Replace the WeChat group 2 invitation image with the supplied QR, valid until October 29, and refresh all README image cache keys.
- Retain all v8.7.15 incremental conversation and durable FIFO fixes. Update server and Android app together; queue runtime changes still require a normal restart of idle OMP Agents when safe. No active Agent is forcibly restarted by this release.
- Linux OMP Collab and the legacy macOS route retain their existing boundaries. Other Provider routing is unchanged. Windows remains beta.
Verification scope
- The included fix has recorded failing-before/passing-after regressions and an isolated probe using OMP 18.12.5's real
filterEnv; see identity evidence. - That probe verifies filtered-environment compatibility, not a live model roundtrip. Publication checks are performed separately for this release.
- Release qualification: 253 identity/routing/provider/release regressions passed;
npm pack --dry-runpassed. A fresh filtered-environment subprocess recoveredfrontdesk, preserved explicit sender precedence and rejected an unmanaged home; the actual CLI printedv8.7.16. The stored QR matches the supplied image byte-for-byte and was visually checked.
中文
OMP Python ask 调用者身份
- 纳入提交
6d3ae4a53。OMP Python 工具可能过滤子进程环境中的CCB_*、CODEX_*,但保留PI_*。共享工作区内发起的ask因此可能被归为user,任务完成后没有 Agent 邮箱接收回执。 - 仅当
PI_CODING_AGENT_DIR的规范路径精确匹配当前运行态的agents/<已配置Agent>/provider-state/omp/home/.omp/agent,且该 Agent 使用 OMP 时恢复调用者;支持迁移后的运行态根目录。 - 显式 sender 和原有 runtime/actor/session 身份优先级不变;已提供但无效的 runtime 路径不会被此回退覆盖。非托管目录、其他项目、未知 Agent、其他 Provider 及逃逸符号链接不会获得 Agent 身份。
- 不重标记或重放历史任务,不修改 Provider 鉴权、环境白名单或原生安装;不声称修复人为回合取代等其他故障。
社区与兼容性
- 更新微信技术群 2 的邀请图及所有 README 图片缓存标识;用户提供的新二维码有效期至 10 月 29 日。
- 保留 v8.7.15 的增量对话与持久化 FIFO 修复。服务器和 Android 应用一起更新;此前队列运行时变更仍需在安全空闲时正常重启 OMP Agent,本版不会强制重启活动 Agent。
- Linux OMP Collab、Mac legacy 路由及其他 Provider 的边界保持不变,Windows 仍为 beta。
验证边界
- 本次纳入的修复已有先失败后通过的回归,以及调用 OMP 18.12.5 真实
filterEnv的隔离探针,见身份修复证据。 - 该探针证明过滤后环境兼容性,不代表真实模型往返;本版另行执行发布检查。
- 本版发布检查:身份、路由、Provider 及打包相关回归 253 项通过,
npm pack --dry-run通过。独立过滤环境子进程恢复frontdesk、保留显式 sender 优先级并拒绝非托管目录;实际 CLI 输出v8.7.16。仓库二维码与附件字节一致,已目视核对。
v8.7.15
v8.7.15
English
Continuous OMP Mobile conversations
- Refresh the same native session/branch incrementally by stable identity, retaining loaded older pages and disclosure state. Explicit session, generation, namespace or native branch changes invalidate the active projection instead of merging unrelated history.
- Keep every visible assistant text block in native order. Later assistant messages no longer replace earlier prose; reasoning and tool details remain foldable. Explicit ephemeral stream entries are replaced by durable native records without text-based deduplication. Previously loaded inline content remains reachable as a labeled older snapshot when a turn exceeds the inline budget.
- Accept messages while Linux OMP is running into a persisted, bounded FIFO. Show Queued and Needs review separately from execution. Only dispatch when the host is idle, the native editor is empty and no interactive input is required; never steer into the running turn.
- Require ordered native input association and observed start/stop before dispatching the next item. Persist handoff uncertainty before socket writes. Unknown submissions never replay; disconnected, changed-generation or restarted queues are held for review instead of silently resending. Exact input bindings preserve queued-to-native bubble identity after pending bodies are evicted.
Relay repair and compatibility
- Include the v8.7.14 Relay byte-budget/original-content and canonical message-target repairs. v8.7.14 publication was paused after user feedback; its immutable tag and partial prerelease are retained, not overwritten. Upgrade to v8.7.15 rather than the incomplete prerelease.
- Linux alone enables the OMP Collab route; macOS retains the original OMP terminal/native-history route and other Providers remain unchanged. Update server and app together. Queue runtime changes require normally restarting idle OMP agents when safe; active work is not forcibly interrupted by the release.
- Pending queues are limited to 64 inputs and 1 MiB of bodies, with 256 KiB per input and a 4 MiB owner-only journal. Capacity rejects new submissions rather than deleting unresolved evidence. Upstream prompt admission is not atomic with concurrent desktop interaction; uncertain outcomes remain explicit.
Exercised verification
- Android API 35 through the real TLS CCB Relay and upstream CollabHost: large history/original reconstruction, live/durable identity, older-page retention, intermediate prose retention, three UI sends while one runs, dispatch order 4→5→6, maximum one active prompt, empty final queue, model controls, stale fences, reconnect and background pause.
- Flutter full regression: 874 passed, one skipped; static analysis clean. Bun queue/model tests: 23 passed. Selected server/Relay regression: 232 passed; actual OMP TUI model/readback/shutdown and upstream CollabHost smoke passed without paid model calls.
- Deterministic model-free fixture results prove transport/UI/state behavior, not external model quality. No new macOS hardware acceptance is claimed.
中文
OMP 手机连续对话
- 同一原生会话/分支按稳定身份增量刷新,保留已加载的旧分页和展开状态。会话、运行代次、命名空间或原生分支变化时明确失效,不拼接无关历史。
- 按原生顺序保留全部可见 assistant 正文,后续回复不再替换前面的说明;推理和工具细节仍可折叠。临时流 entry 由持久原生记录替换,不按文字猜测去重。回合超出内联预算时,已加载内容作为明确标注的旧快照继续可读。
- Linux OMP 运行中接受新输入进入有界持久 FIFO,显示“排队”和“需复核”,不把排队当执行。宿主空闲、桌面编辑器为空且无需交互输入时才逐条派发,不使用 steer 插入当前回合。
- 下一条派发前要求原生输入精确关联及已观察到开始/停稳;写 socket 前持久化未知状态。未知请求不重放;断连、换代和重启后的队列暂停待复核。精确原生绑定使排队泡转原生输入后保持身份,正文回收后也不残留重复泡。
Relay 修复与兼容
- 包含 v8.7.14 的 Relay 字节预算、原文分页和消息目标字段修复。v8.7.14 因用户反馈暂停发布,已推送标签与部分预发布产物保留不重打,请升级 v8.7.15。
- 新 Collab 仍仅在 Linux 启用;Mac 保留原终端输入/原生历史,其他 Provider 路由不变。服务器和手机应用一起更新;队列运行时需在安全空闲时正常重启 OMP,发布不会强制中断活动任务。
- 待处理最多 64 条、正文共 1 MiB,单条 256 KiB,属主私有队列日志 4 MiB;满额拒绝新请求,不删除未解决证据。上游不能保证派发与并发桌面操作原子,未知结果会明确保留。
验证
- Android API 35 经真实 TLS CCB Relay 与上游 CollabHost,覆盖大历史/原文还原、实时转持久身份、旧分页和中间正文保留、第一轮运行时连续三次 UI 发送、按 4→5→6 派发、最大一个活动请求、最终队列为空,以及模型、过期代次、重连和后台暂停。
- Flutter 全量 874 通过、1 跳过,静态分析无问题;Bun 队列/模型 23 通过;选定服务端/Relay 232 通过;实际 OMP TUI 模型读回/退出与上游 Host 烟测通过,未发付费模型请求。
- 无付费确定性夹具证明传输、界面和状态,不外推模型质量;不宣称新增 Mac 实机验收。
v8.7.14 — incomplete; mobile release paused
v8.7.14
English
Repair OMP conversations over CCB Relay
- Bound Linux OMP history pages by conservative serialized bytes, rather than item count alone. Large real sessions no longer exceed the unchanged 512 KiB Relay inner-message limit.
- Oversized turns and user inputs retain an explicit preview and Read original action. Complete projected originals are returned in versioned UTF-8-safe pages of at most 32 KiB; cursors bind project, agent, namespace, session, generation and content hash. No silent truncation or history clearing.
- Return sanitized, correlated Relay payload-limit errors instead of leaving requests to time out. Mobile distinguishes a conversation-load error from explicit native-host unavailability.
- Forward canonical mobile message target
agentthrough Relay, retain compatibleagent_nameclients, and reject conflicting identities. OMP session/generation fences remain intact.
Compatibility and upgrade
- Update both CCB server and Mobile. The app alone cannot repair an old server's oversized responses. Normally restart the Mobile gateway to load server changes; OMP history and active sessions need not be cleared or forcibly restarted.
- Linux-only OMP Collab policy remains unchanged. Mac retains the legacy terminal/native-history route; other Provider routes remain unchanged.
- Official Android APK uses the normal application ID and release signing. The opt-in
.relaytestDebug application ID is only for parallel-install repair testing.
Exercised verification
- Android API 35 ran the production encrypted TLS CCB Relay and host connector, production gateway and Flutter repository against a real upstream OMP CollabHost with deterministic model-free outputs.
- Traversed 196 history items over four pages with exact IDs; reconstructed a 987,082-byte original over 31 pages with matching UTF-8 offsets and SHA-256. Send/live-to-durable/tool/model/stale-fence/disconnect/reconnect/background checks passed with no increased Relay cap and no external model calls.
- Flutter full regression: 865 passed, one skipped; static analysis clean. Python Relay/gateway regression: 216 passed. Real current-project history above 3 MiB encoded into an approximately 103 KiB bounded default page.
中文
修复经 CCB Relay 加载 OMP 对话
- Linux OMP 历史按序列化字节预算分页,不再只限制条数;真实大历史不会超过保持不变的 Relay 512 KiB 内层消息上限。
- 超大回合和用户输入保留明确预览与“阅读原文”。完整投影原文使用不超过 32 KiB 的 UTF-8 安全分页;游标绑定项目、Agent、命名空间、会话、运行代次及内容摘要,不静默截断、不清空历史。
- Relay 回包超限返回脱敏且关联原请求的错误,不再使请求超时。手机区分会话加载失败与明确的原生宿主不可用。
- 修复 Relay 发送目标字段错配:使用手机标准字段
agent,兼容原agent_name调用并拒绝冲突身份;保留 OMP 会话/代次校验。
兼容与升级
- CCB 服务器和 Mobile 需要一起更新;仅更新 APK 不能修复旧服务器的大回包。正常重启 Mobile 网关加载补丁即可,不必清空 OMP 历史或强制重启活动会话。
- OMP 新 Collab 仍仅限 Linux;Mac 保留原终端输入与原生历史路由,其他 Provider 路由不变。
- 正式 APK 使用原包名与发布签名;可选
.relaytestDebug 包名仅供并装测试。
已执行验证
- Android API 35 使用生产 TLS 加密 CCB Relay、主机连接器、网关、Flutter 仓库,以及真实上游 OMP CollabHost;模型输出为确定性无付费夹具。
- 196 条历史跨四页逐 ID 核对;987,082 字节原文跨 31 页还原,UTF-8 偏移与 SHA-256 一致。发送、实时转持久、工具、模型、过期代次拒绝、断线重连、后台暂停通过;未放宽 Relay 上限,未调用外部模型。
- Flutter 全量 865 通过、1 跳过,静态分析无问题;Python Relay/网关 216 通过;当前项目超过 3 MiB 的真实历史被编码为约 103 KiB 的有界默认页。
v8.7.13
v8.7.13
English
OMP Mobile: Linux Collab integration
- Linux OMP agents attach Mobile to the existing native TUI through a private loopback Collab relay. Native snapshots, live output, reasoning, tool calls and results are grouped into user-anchored reply bubbles.
- Preserve exact ancestry when upstream Collab omits metadata entries. Cross-launch unique submission keys avoid collisions; retries retain the original key. Uncertain prompt admission is not presented as successful execution and is never automatically replayed.
- Select the current native model and supported thinking level from Mobile. Changes use the same host/session, require idle/draft and revision guards, and confirm native readback without changing project configuration or restarting the agent.
- Pause selected-agent refresh in the background; show explicit disconnect/reconnect state. Bound local transport memory and clean up the supervised process group on exit.
Compatibility and upgrade
- New Collab routing is Linux-only. macOS keeps the original OMP terminal-input/native-history route. Mobile follows the server-advertised capability, not the provider name alone. Other Provider routes remain unchanged.
- Update both CCB and Mobile. Normally restart idle Linux OMP agents when safe to load the new supervisor; existing sessions are not forcibly interrupted. Mac does not require the Collab supervisor.
- Synchronize desktop, npm and Mobile version identity (Android versionCode 8070013), including the in-app update fallback and download entry.
Verification scope
- Flutter full regression: 857 passed, one skipped; static analysis clean. Gateway/OMP routing regression: 231 passed, two skipped; Bun protocol/model regression: 13 passed; actual Linux OMP TUI model/readback/shutdown smoke passed.
- Android API 35 exercised live/durable turns, tool folding, same-session model selection, stale fences, disconnect/reconnect and background suspension. A separate current-project paid-model request read real files and exposed the ancestry issue, whose original result was recovered without replay.
- macOS legacy routing is covered by platform-simulated contracts, not a new macOS hardware acceptance claim. Android deterministic fixtures do not establish paid-model quality. Interactive approvals and remote session branching are not included.
中文
OMP 手机端:Linux Collab 接入
- Linux OMP 通过私有本机 Collab Relay 连接现有原生 TUI,快照、实时正文、推理、工具调用和结果按用户回合聚合为对话气泡。
- 修复上游省略元数据造成的祖先断链;新请求使用跨启动唯一幂等键,重试保留原键。准入不确定时明确展示,不自动重放请求。
- 手机端可选择当前原生模型及支持的思考等级;同宿主、同会话操作,校验忙闲、桌面草稿和运行版本,读回确认生效,不改项目配置、不重启 Agent。
- 后台暂停当前 Agent 刷新;显式展示断连与重连,限制传输内存,退出时回收受管进程组。
兼容与升级
- 仅 Linux 开放新 Collab 路由;Mac 保留原 OMP 终端输入和原生历史路由。 手机依据服务端能力声明分流,其他 Provider 接入方式不变。
- CCB 和 Mobile 一并更新;Linux OMP 请在任务空闲且安全时正常重启以加载新 supervisor,不强制中断已有会话。Mac 不启动 Collab supervisor。
- 同步桌面、npm、Mobile 版本号(Android versionCode 8070013),修正应用内版本回退值和下载入口。
验证边界
- Flutter 全量 857 通过、1 跳过,静态分析无问题;网关/OMP 路由 231 通过、2 跳过;Bun 协议/模型 13 通过;Linux 真实 TUI 模型切换读回和退出烟测通过。
- Android API 35 覆盖实时转持久、工具折叠、同会话选模型、过期代次拒绝、重连和后台暂停。当前项目另有真实付费模型只读请求,暴露并修复祖先问题后无重放恢复原结果。
- Mac 原路由使用平台模拟合同回归,不宣称新增 Mac 实机验收;确定性 Android 夹具不等于付费模型质量验证。本版不包含交互授权应答和远程会话分支控制。
v8.7.12
v8.7.12
Released: 2026-10-19
English
Reply delivery and communication status
- Include PR #395 with reviewed follow-up repairs: a reply pending for at least five minutes can recover a proven orphaned delivery lease while retaining its original job and attempt. Recovery no longer creates replacement jobs that remain queued indefinitely.
- Preserve valid lease ownership and execution evidence. Live jobs, pending events and uncertain state reads continue to block automatic intervention; elapsed time alone does not authorize resending a reply.
- Successful silent tasks and callback child tasks show terminal status instead of a permanent reply-queued indicator. Pending reply deliveries appear in the communication list, linked to their source task, and the list retains 20 recent rows.
Composer compatibility
- Recognize titled Claude input borders and known undimmed Codex placeholders/status layouts. Restore support for trailing spaces on ordinary Claude borders.
- Keep busy/menu checks, human draft protection and first-in-first-out delivery. These changes do not authorize arbitrary unknown input layouts.
Native maintenance and compatibility
- Include the separately reviewed PR #384 native maintenance changes: configuration protection, transactional update/rollback support, and terminal compatibility checks. This platform implementation remains isolated from the shared delivery changes.
- Continue to include PR #386's explicit V3 workflow admission checks, already shipped in v8.7.11; ordinary V2 Frontdesk routing remains independent of Planner and activation-style task IDs.
Upgrade notes
- Update CCB, then safely reopen affected projects to load the new daemon. No project configuration or conversation migration is required. Desktop, npm and Mobile version metadata are synchronized; no new Mobile interface behavior is included.
- A stale lease referencing an existing pending event or ambiguous execution state is intentionally retained for diagnosis. A timeout is not proof that a reply was never delivered.
中文
回复投递与通信状态
- 包含 PR #395 及审查后的补充修复:回复等待至少五分钟后,可恢复已确认失效的投递租约,并保留原 job 与 attempt;恢复过程不再创建会永久残留的替代排队任务。
- 保留有效租约归属和执行证据。活动任务、待处理事件及状态读取不确定时继续阻止自动干预;仅凭等待时长不会重新发送回复。
- 静默成功任务和 callback 子任务正确显示终态,不再永久显示回复排队。待投递回复在通信列表中单独展示并关联来源任务,列表保留最近 20 条记录。
输入框兼容性
- 识别带标题的 Claude 输入边框,以及已知的无淡化样式 Codex 占位文字和状态栏;恢复普通 Claude 边框对尾部空格的兼容。
- 保留忙碌与菜单检查、人工草稿保护和先进先出投递;任意未知输入布局仍不放行。
原生维护与兼容性
- 包含单独审查的 PR #384 原生维护改动:配置保护、事务式更新与回滚,以及终端兼容性检查;平台实现与共享投递修复保持隔离。
- 继续包含已在 v8.7.11 发布的 PR #386 显式 V3 工作流准入检查;普通 V2 Frontdesk 路由仍无需 Planner 或激活格式的任务 ID。
升级说明
- 更新 CCB 后,在可以安全中断工作时重新打开受影响项目,以加载新版 daemon。无需迁移项目配置或对话。桌面、npm 与 Mobile 版本元数据同步,不包含新的 Mobile 界面行为。
- 若失效租约仍指向已存在的待处理事件,或执行状态不明确,会保留现场供诊断;超时本身不能证明回复从未送达。
v8.7.11
v8.7.11
Released: 2026-10-13
English
V2 workflow compatibility
- Ordinary V2 Frontdesk → Executor → Workers projects can submit normal or silent asks without a Planner or activation-style task ID. Agent names alone no longer enable the V3 agentic-loop workflow.
- Gate Frontdesk/Detailer handoffs, startup journal recovery and Frontdesk completion checks on the loaded project's explicit workflow configuration. Old workflow journals cannot replay tasks into a V2 project; opted-in V3 workflows retain their strict checks.
Pi request attribution and cancellation
- Include PR #385: retain request attribution when image processing transforms Pi prompt input but preserves request and dispatch headers, preventing affected completions from remaining stuck in running state.
- Scope Pi cancellation to the exact active request. Unrelated native input and other requests no longer receive Escape from a stale cancellation.
- Preserve digest matching, legacy persisted jobs, raw no-wrap input and OMP compatibility.
Community and upgrade notes
- Refresh the WeChat technical group 2 QR image and README cache identifiers using the owner's replacement image, valid until October 20.
- Upgrade CCB and safely reopen affected projects to load the updated daemon and projected Pi extension. No project configuration or conversation migration is required. Desktop, npm and mobile version metadata are synchronized; no new mobile UI behavior is included.
- Dispatcher/storage and actual generated-extension replay regressions were verified. An authenticated Pi model roundtrip using transformed image input is not qualified by this release verification. Local repairs of overwritten development launchers are host maintenance, not a new installer feature.
中文
V2 工作流兼容性
- 普通 V2 Frontdesk → Executor → Workers 项目可正常发送普通或静默 ask,无需 Planner 或激活格式的任务 ID。代理名称本身不再触发 V3 agentic-loop 工作流。
- Frontdesk/Detailer 交接、启动日志恢复和 Frontdesk 完成检查均以已加载项目的显式工作流配置为准。旧工作流日志不会向 V2 项目重放任务;显式启用 V3 工作流时仍保留严格检查。
Pi 请求归属与取消
- 包含 PR #385:图片处理改变 Pi 提示正文但保留请求和派发标识时,仍能正确识别请求归属,避免受影响的任务已完成却持续显示 running。
- Pi 取消操作仅对准确匹配的当前活动请求发送 Escape,过期取消不会干扰其他请求或原生输入。
- 保留摘要匹配、旧版持久化任务、原始 no-wrap 输入及 OMP 兼容性。
社区与升级说明
- 使用项目所有者提供的新图片刷新微信技术群 2 二维码及 README 缓存标识,图片标注有效期至 10 月 20 日。
- 更新 CCB 后,在可以安全中断工作时重新打开受影响项目,以加载新版 daemon 和投影的 Pi 扩展。无需迁移项目配置或对话。桌面、npm 与手机端版本元数据同步;不包含新的手机界面行为。
- 已验证 dispatcher/storage 回归及实际生成扩展的事件重放。本次发布验证不包含经过身份认证的 Pi 模型图片转换往返测试。本机被覆盖的开发命令入口修复属于主机维护,不代表新增安装器功能。
v8.7.10
v8.7.10
Released: 2026-10-10
English
Pi startup and plugin snapshots
- Reuse verified local Pi plugin snapshots before copying files. Unchanged packages still receive content validation, while shared dependencies are copied once per resolved installation instead of once per dependency branch.
- Preserve dependency versions, scoped packages, optional dependencies and cycles with snapshot-internal links. A real MCP SDK/Zod fixture reduced
es-errorsfrom 88 physical copies to one and loaded successfully in Pi. - Add opt-in
.ccb-snapshot-exclude: one literal relative file or directory path per line, with blank lines and#comments allowed. For example,official-backup/excludes a backup directory. Patterns and negation are not supported;.gitignoreis not applied automatically, so ignored runtime build outputs remain available. - Reclaim abandoned staging directories created by the new snapshot builder after an interrupted process, without deleting final snapshots or changing external Provider files.
- Forward
CCB_STARTUP_TRANSACTION_TIMEOUT_Sthrough the CLI, keeper and daemon environment boundaries. Explicit values now reach the startup policy; the default remains 30 seconds.
Verification and upgrade notes
- Verified real Pi extension loading, SDK/Zod imports, and cold/warm full startup of two Pi agents with fresh per-run model responses and extension callback evidence. Focused and expanded regression tests cover cache tampering, content changes, shared module identity, interrupted/concurrent builds and timeout propagation.
- Update CCB, then safely reopen affected projects to use the new startup implementation. No conversation migration is required. Existing snapshots remain usable; the new cache layout is populated on the next full startup.
- Legacy temporary directories without ownership evidence are not automatically removed. The original macOS
empty response from ccbdincident has not been reproduced or proven fixed; this release addresses confirmed snapshot and timeout propagation defects. - Desktop, npm and mobile version metadata are synchronized. No new mobile interface behavior is included.
中文
Pi 启动与插件快照
- 在复制文件前复用已验证的 Pi 本地插件快照。未变化的包仍执行内容校验;共享依赖按实际安装目录只复制一次,不再沿每条依赖分支重复展开。
- 通过快照内部链接保留依赖版本、作用域包、可选依赖和循环依赖。真实 MCP SDK/Zod 测试插件中的
es-errors从 88 个实体副本减少为 1 个,并成功在 Pi 中加载。 - 新增可选的
.ccb-snapshot-exclude:每行填写一个相对文件或目录路径,支持空行和#注释。例如,official-backup/可排除备份目录。不支持通配模式或否定规则;不会自动应用.gitignore,以保留被 Git 忽略但运行必需的编译产物。 - 进程中断后,新版快照构建器可回收自己遗留的临时目录,不删除最终快照,也不修改外部 Provider 文件。
- 将
CCB_STARTUP_TRANSACTION_TIMEOUT_S传递到 CLI、keeper 和 daemon 后台环境。显式设置现在能够到达启动策略;默认值仍为 30 秒。
验证与升级说明
- 已验证真实 Pi 扩展加载、SDK/Zod 导入,以及两个 Pi Agent 的完整冷启动和缓存复用启动;每轮均核对新的模型回复及扩展回调证据。专项和扩展回归覆盖缓存篡改、内容变更、共享模块身份、中断与并发构建、超时参数传递。
- 更新 CCB 后,在可以安全中断工作时重新打开受影响项目,启用新版启动实现。无需迁移对话。已有快照仍可使用;新版缓存布局会在下一次完整启动时建立。
- 缺少所有权证据的旧版临时目录不会自动删除。原始 macOS
empty response from ccbd事件尚未复现,也未证明已解决;本版修复已确认的快照和超时参数传递问题。 - 桌面、npm 与手机端版本元数据同步;不包含新的手机界面行为。