## 背景 PR #1099 把 `worker.ts` 四处 inline no-transport 判定(`apiOnly || http_async_ || http_wait_`)收敛到 `core/types` 的中央 `larkTransportEnabled`。复审时确认 `cli.ts` 还有**两处同类 inline**未收敛: - `currentTurnHasNoTransport(...)` - `assertSessionTransportOrExit(...)` (两处的 source-lock 见 `test/api-only-mode-wiring.test.ts:310` / `:350`。) ## 为什么没并入 #1099 `cli.ts` 的宿主是 **botmux CLI 瘦壳进程**,与 worker/daemon 是**不同信任域**: - 不便直接引 daemon 侧类型/模块(`core/types`)。 - 收敛前需先想清 CLI 侧该 import 哪个真值源——**可能不是 `core/types`**,而是 CLI 自己的等价物;这不是纯搬运。 强行按"看起来同类"合并会跨信任域耦合,因此拆出独立跟踪。 ## 待办 1. 厘清 CLI 侧 no-transport 判定应依赖的真值源(core/types 直引 vs CLI 本地等价物 vs 共享一个无 daemon 依赖的纯函数)。 2. 若可共享,抽一个不含 daemon 依赖的纯谓词,worker 与 cli 同源。 3. 收敛 `currentTurnHasNoTransport` / `assertSessionTransportOrExit`,同步更新对应 source-lock。 4. 保持 `isHttpVirtualSession` 的 nullish 容忍语义一致(#1099 已在中央谓词加)。 ## 参考 - #1099(worker.ts 四处收敛 + 中央谓词 nullish 容忍)
背景
PR #1099 把
worker.ts四处 inline no-transport 判定(apiOnly || http_async_ || http_wait_)收敛到core/types的中央larkTransportEnabled。复审时确认cli.ts还有两处同类 inline未收敛:currentTurnHasNoTransport(...)assertSessionTransportOrExit(...)(两处的 source-lock 见
test/api-only-mode-wiring.test.ts:310/:350。)为什么没并入 #1099
cli.ts的宿主是 botmux CLI 瘦壳进程,与 worker/daemon 是不同信任域:core/types)。core/types,而是 CLI 自己的等价物;这不是纯搬运。强行按"看起来同类"合并会跨信任域耦合,因此拆出独立跟踪。
待办
currentTurnHasNoTransport/assertSessionTransportOrExit,同步更新对应 source-lock。isHttpVirtualSession的 nullish 容忍语义一致(refactor(worker): 收敛四份 no-transport inline 谓词到中央 larkTransportEnabled #1099 已在中央谓词加)。参考