Codex 监督¶
目标¶
Codex 监督允许 OpenClaw 操作员发现原生 Codex 会话, 创建 Gateway 本地分支,或通过常规 OpenClaw Chat 界面 继续符合条件的配对节点线程。 Codex App Server 仍然是线程和模型循环的所有者。OpenClaw 提供 fleet 目录、已认证的操作员 UI、会话绑定和通道投递。
该功能属于官方 codex 插件。没有单独的
Supervisor 插件或第二个 Codex 协议实现。
本规范使用以下阶段名称:
- Gateway 本地分支:OpenClaw 从已存储或空闲的本地 Codex 源创建的新受监督 Chat, 而不是恢复该源线程。
- 待处理 harness 分支:该分支在其第一轮之前,有界历史已被投影, 但尚不存在规范 Codex 线程。
- Chat 镜像(可见历史镜像):投影到 Chat 中的可见用户和 助手消息的有界副本。
- 可见历史分支:未映射的 Gateway 本地源,仅携带 该镜像历史,因此其规范 harness 线程永远不会恢复源。
- 规范 appServer 源分支:插件在固定源快照后使用
threadSource: "appServer"创建的原生 Codex 线程。 - 规范完整 Codex harness 线程:该规范线程一旦以 OpenClaw 的完整 harness 工具面运行; 之后每个模型轮次都在其上运行。
- 受监督的模型锁定 Chat:绑定到受监督线程的 OpenClaw Chat, 并处于仅限 Codex 的模型和运行时锁定之下。
产品边界¶
只要 Codex 插件处于活动状态,目录就会注册,除非使用以下设置显式禁用原生会话发现:
使用以下设置启用面向 agent 的监督工具:
当前产品支持:
- 仅列出未归档的 Codex 线程。
- 按稳定的主机身份对本地和已加入的配对节点行进行分组。
- 从已存储或空闲的 Gateway 本地线程创建常规、模型锁定的 Chat 分支, 在其第一轮时启动其完整 Codex harness 线程,或打开为较早分支创建的 Chat。
- 当节点的目录和 CLI 恢复命令已通告且可调用,并且调用者具有
operator.admin时, 通过模型锁定的 Chat 继续已存储或空闲的配对节点线程。后续消息会在其节点上恢复该确切的原生 线程,而不是创建下文所述的 Gateway 本地分支。 - 仅在明确确认没有其他 runner 之后,才归档已存储或空闲的 Gateway 本地线程。
- 显示活动本地源,但不提供新建分支或归档控件,同时仍允许打开现有的受监督 Chat。
- 在主侧边栏中显示每个主机的最新行,在会话页面上保留完整目录,并为本地和配对节点行提供有界的、 基于游标分页的转录读取。
- 按主机隔离目录故障。
目录是未归档集合。其中的行仍可能具有空闲、活动、notLoaded 或错误轮次状态。
面向 agent 的监督仍为可选加入。引导式入门会在原生 Codex 安装检测成功且所选推理后端通过其实时检查后,
尝试安装并启用它,这与用户选择哪个主后端无关。只有当该机会性插件设置成功时,
监督才会激活。显式禁用的插件、策略阻止或
supervision.enabled: false 对监督工具仍具有权威性,但不会禁用操作员会话目录。
sessionCatalog.enabled: false 会禁用操作员发现和配对节点目录命令;Codex
提供程序和 harness 仍保持活动。
所有权¶
codex 插件拥有所有 Codex App Server 行为:
- 端点发现和连接生命周期
- 协议初始化和版本检查
- 线程列表、读取、恢复、归档和事件处理
- 审批和用户输入桥接
- 原生线程到 OpenClaw 会话的绑定
- 继续后仅限 Codex 的模型和 harness 强制
Control UI 和 Gateway 消费该插件拥有的服务。它们不会直接读取 Codex rollout 文件,也不会实现另一个 App Server 客户端。
默认本地拓扑为:
Codex Desktop -> private stdio App Server -> user Codex home
^
OpenClaw Codex plugin -> supervision App Server connection
(defaults to managed user-home stdio; explicit appServer settings are honored)
-> passive source catalog and read
-> snapshot pin -> canonical appServer-source branch
-> visible-history injection and every later supervised Chat turn
Ordinary OpenClaw Codex sessions -> managed agent-home stdio by default
-> ordinary full harness threads -> OpenClaw Chat and channel delivery
启用监督不会改变常规 Codex harness:它默认仍为 agent 作用域。独立的监督连接默认
使用受管理的 user-home stdio,因此其目录和快照操作可以看到原生
已存储线程。显式的 appServer 连接设置会被遵循。当
homeScope 未设置时,监督连接会将其解析为 stdio 或 Unix 的 "user",
以及 WebSocket 的 "agent"。仅当常规 harness 也应共享原生 Codex
home 时,才显式设置 appServer.homeScope: "user"。
从 Codex 侧边栏组采用的 Gateway 本地 Chat 是例外:
其私有监督绑定会将源读取、规范分支创建和后续轮次保持在监督连接上。实时状态和所有权仍保持
进程本地;对 OpenClaw 监督进程未知的线程为 notLoaded,
即使 Codex Desktop 正在积极运行它。
目录读取和固定源租约显式选择原生身份验证。 它们不会导入或替换 OpenClaw 身份验证存储或所选 Codex home 中的凭据。 这也适用于配置为 agent home 作用域的主目录源:其物理 home 和连接指纹保持不变。 常规受管理推理保留其 agent 身份验证预检。
Codex 具有一个实验性的标准本地守护进程,并带有独立的由安装程序管理的引导契约。此功能不得隐式地引导、声明或假定该守护进程。
目录流程¶
通用 Gateway 方法 sessions.catalog.list 会分发到 codex 目录提供程序,该提供程序始终请求 archived: false,并让 App Server 应用其交互式来源默认值:cli、vscode、Atlas 和 ChatGPT。它会组合:
- 来自监督 App Server 的 Gateway 本地
thread/list结果,其默认使用受管理的用户主目录 stdio。 - 来自每个已连接且已选择加入的节点的
codex.appServer.threads.list.v1结果。
转录选择在本地使用带有 itemsView: "full" 的 thread/turns/list,或在所选节点上使用版本化的 codex.appServer.thread.turns.list.v1 命令。每个响应最多包含 20 个已持久化轮次,以及不透明的向前/向后游标。Control UI 请求最新优先的分页,按时间顺序渲染每一页,并在前面插入较早的页面。它从不回退到无限制的 thread/read。OpenClaw 还会在序列化项页面超过 20 MiB 时拒绝该页面,使其无法跨越节点或 Gateway 传输。
原生 macOS 配对节点实现仅支持未设置/默认或显式 appServer.transport: "stdio",且监督范围为未设置/默认或显式 appServer.homeScope: "user"。它会将配置的 command、args 和规范化后的 clearEnv 传入子进程。对于 "unix"、"websocket" 或显式 homeScope: "agent",它既不宣告目录能力,也不宣告命令;直接调用也会失败关闭。对于代理范围配置,它绝不能暴露用户 Codex 主目录,也不能用本地 stdio 替代显式端点。
无头节点目录默认使用节点原生的 CODEX_HOME 或 ~/.codex,独立于 Gateway 的路由代理和节点的代理名册。原生读取器保留配置的命令、参数和已清除的环境变量。目录读取和原生终端恢复使用与节点现有 CLI 会话列表和继续命令相同的主目录。
Gateway 仍会为已发布节点发送其可选代理 id:v2026.9.4 在相同命令名称下将其用作严格的本地来源选择器。更新后的原生读取器仅将该字段验证为无操作的路由上下文。显式代理范围和非 stdio 来源配置保留其随附的本地所有者选择,包括拒绝缺失或已移除的所有者。两条路径都不会静默替换为不同来源。仅通过版本化的节点来源契约以及针对这些已配置读取器的升级过渡来弃用此兼容性。
目录投影会规范化标识符、标题、cwd、状态、活动等待标志、时间戳、来源、模型提供程序、Codex 版本和 Git 分支。它不返回转录预览、轮次、rollout 路径、Codex 主目录路径、Git 远程、提交 SHA、原始端点或原始 App Server 错误。转录响应仅包含显式请求的 App Server 项页面及其不透明游标。
主机故障保持为每个主机结果的本地属性。离线节点或不可用的本地 App Server 不会从页面中移除健康主机。连接性是主机属性,而不是线程状态:失败的主机结果不包含新的会话行,也不会将 offline 投影到原生线程上。
空目录不会创建侧边栏部分,即使它存在错误或继续游标。当健康的游标主机在当前所有者筛选器下没有可见行时,现有数据所有者会在每次刷新之间为每个目录推进一页。已接受的页面保留其游标和页面深度进度;后续遍历继续该搜索,而不是从同一第一页重新开始。发现过程在隐藏时暂停,并在错误或游标循环时停止推进。包含可见会话的目录在另一主机失败时仍然存在。
Control UI 请求渐进式目录更新。每个本地或配对主机在其自身 App Server 列表稳定后出现;聚合响应仍然是兼容性和恢复快照。可见页面在连接性变化后、获得焦点时以及最多每 30 秒进行一次协调,并在变化后进行更快的遍历。因此,在另一客户端中创建的原生 Codex 会话最终会被发现,而无需将它们导入 OpenClaw 存储。
目录发现是被动的。列出或读取元数据不得调用 thread/resume、将 OpenClaw 客户端订阅到实时线程请求,或响应审批。
搜索仅针对标题且大小写不敏感。对于每个返回的目录页面,Gateway 和配对 Mac 会扫描有限数量的原生页面,而不会将查询传递给 App Server,因为原生搜索也可能匹配转录预览。返回的原生游标允许调用者继续扫描。
操作员 CLI 边界¶
插件注册了三个由 Gateway 支持的 shell 命令:
openclaw codex sessions [--agent <id>] [--search <text>] [--host <id>] [--limit <count>] [--cursor <cursor>] [--json] [gateway-options]
openclaw codex continue <thread-id> [--agent <id>] [--host <id>] [--json] [gateway-options]
openclaw codex archive <thread-id> --confirm-no-other-runner [--agent <id>] [--host <id>] [--json] [gateway-options]
[gateway-options] 是 --url <url>、--token <token>、--timeout <ms> 以及继承的 --expect-final 开关。会话列表默认值为 75,000 ms;continue 和 archive 默认值为 30,000 ms;--expect-final 对这些一元 RPC 没有额外效果。会话搜索仅针对标题且大小写不敏感;每个响应扫描有限数量的原生页面链,--cursor 继续较早的结果。limit 默认每个主机为 50,接受 1 到 100,并且游标需要一个稳定的 --host 目标。没有任何命令接受 archived/include-archived 选项。三个命令都接受 --agent <id> 和 --host <id>。continue 和 archive 默认为 gateway:local;列出的不透明本地主机 id 会选择另一个本地存储。shell 命令仅请求 operator.write,因此将节点主机传递给 continue 本身并不满足配对节点提供程序的 operator.admin 要求。除非 Gateway 单独向已认证身份授予该范围,否则会被拒绝。推荐的配对节点继续界面是下文所述的由管理员授权的 Control UI 路径。Archive 保持 Gateway 本地,并要求显式确认标志。
It looks like you pasted a technical specification, but didn’t include an instruction.
What would you like me to do with it? For example, I can:
- summarize it
- simplify it
- turn it into clearer documentation
- explain specific terms like
thread/fork,canonical provenance, orsupervised turns - fact-check or critique the design
- convert it into an API/design doc
- answer questions about the behavior described
If you want, I can also provide a concise summary of the passage right now.
该通知仅取代早先的 OpenClaw 通用策略。独立的受管、守护、安全、协作和原生项目指令仍然具有权威性。取代是文本层面的,而非机器强制删除。追加内容是会话配置历史:之后被拒绝的用户轮次不会将其回滚,并且独占的用户轮次截断会保留先前的配置更新,包括为被排除请求计算的 hook 输出。刷新没有客户端分配的项目 ID、用户轮次注释、镜像条目或模型轮次。
每次物理刷新写入和过载重试都会重新验证其确切的主机、配置、源/绑定、信号和物理客户端所有者;交接在确认之后会再次检查它们。已接受的恢复失败永远不会将绑定轮换到新线程。不确定的投递会退役确切的物理客户端,并且不能触发启动或整个 fork 重放。现有原生历史会被保留。对于新的子项,不确定性会在提交前拒绝本地删除,并在未证明静默前阻止归档;现有的未就绪初始化结果仍可供检查。
侧边问题将其当前问题、非继续、非变更以及继承工具/审批的仅引用规则放入通用 fork 配置和相同的受保护开发者刷新中。它们不再注入合成用户边界。清理只拥有确切的侧边子项,并且不会中断从未开始的轮次。
全新启动和初始导入历史物化不需要额外刷新。普通非受监督的冷、热和隐身路径保留其现有行为和排除项。手动压缩、原生审查和目标保留其现有配置所有者;独立冷操作没有权威的最近一次运行通用主体可供刷新。未来被接受的受监督运行会提供当前配置和策略交接。策略存储、回执、历史扫描、保留标志或额外用户轮次都不会填补该缺口。
就绪状态会封存创建权限。在就绪之前,已注册的删除所有者仅对确切的子项状态和已验证的全新原生工件进行补偿;源/后继状态会被保留。丢失的原生响应不会授权猜测孤儿 ID,就绪后的发布错误也不能删除子项。
本地继续¶
对于已存储或空闲的 Gateway 本地行,UI 调用 sessions.catalog.continue,并传入 catalogId: "codex" 以及主机和线程 ID。该插件:
- 如果源已有受监督 Chat,则复用现有的受监督 Chat。
- 否则,将受限的用户和助手历史投影到源的最后终端持久化轮次(已完成、被中断或失败)中,形成新的 OpenClaw Chat,并记录一个待处理 harness 分支。
- 存储待处理的仅限 Codex 的模型锁定策略,而不是具体的模型或提供商选择,同时存储私有监督连接范围,并返回 OpenClaw
sessionKey。
历史投影会选择可见用户和助手消息的最新尾部,硬性限制为 200 条消息、总计 512 KiB 的 UTF-8 文本,以及每条消息 64 KiB。它会将图像和本地图像输入替换为 [Image attachment],从不复制图像负载或路径,并省略推理、工具调用和工具结果。
UI 使用该会话键导航到普通 Chat。此时尚不存在规范 harness 线程。在第一次普通 Chat 轮次中,harness 会安装真实的 Codex 审批、征询、事件和投递处理器,然后:
- 使用监督连接调用原生
thread/fork,参数为ephemeral: true和excludeTurns: true,不带模型或提供商覆盖,并固定已持久化的源快照。Codex 当前的ConfigManager状态会选择模型和提供商,fork 响应会报告实际配对。如果模型与源中记录的最后模型不同,Codex 会发出其正常的模型差异警告。harness 在创建规范线程之前,会在那条确切探针和物理连接上确认thread/unsubscribe。该探针永远不会被持久化或归档。 - 在同一连接上,以
threadSource: "appServer"、OpenClaw 的 cwd、策略、配置、环境、完整的 OpenClaw harness 工具面,以及此次初始启动由 fork 返回的确切模型和提供商,启动规范完整 Codex harness 线程。 - 通过该连接注入受限的可见用户和助手历史,提交规范绑定且不丢弃其监督范围,并运行该轮次。
在第一次轮次之前,Chat 是一个带可见历史镜像的锁定待处理分支;之后,每个模型轮次都会通过监督连接上的规范 Codex harness 线程运行。该分支不是完整的原生 rollout 克隆:源推理、工具调用和工具结果被有意省略。如果快照固定或规范线程创建失败,待处理分支仍可重试。绑定竞争、监督被禁用,或监督连接不可用或不匹配,会在轮次运行前失败关闭,而不是回退到普通 agent-home harness。
这保证的是 Codex 拥有的选择,而不是保留源的历史模型。fork 返回的配对用于规范线程启动,Codex 会持久化该线程的原生模型和提供商。后续恢复会省略 OpenClaw 模型和提供商覆盖,因此 Codex 会恢复已持久化的配对。如果另一个原生 Codex 控制更改了规范线程,OpenClaw 会接受该原生持久化选择。外层 OpenClaw 模型和回退链永远不会替代它。
对于受监督的模型锁定 Chat,模型更改、会话删除以及会话重置/新建操作都会失败关闭。修改 /codex model <model>、/codex bind、/codex resume(包括节点 --bind here)以及 /codex detach 或 /codex unbind 也会失败关闭,因为它们会替换或清除绑定。/codex model 查询以及 /codex fast、/codex permissions 和 /codex threads 仍然可用。codex_threads 代理工具不能附加新的 fork 或归档已绑定的原生线程。列表和仅元数据读取仍然可用;转录字段需要 supervision.allowRawTranscripts,而重命名、取消归档、分离 fork 以及归档无关线程需要 supervision.allowWriteControls。这两个选项都不能替换锁定绑定。否则,删除或重置 OpenClaw 条目会丢弃原生绑定,并在看似 Codex 的会话背后创建或允许一个通用线程。因此,保留维护会保留模型锁定条目,即使它们超过普通年龄、数量或磁盘预算限制。禁用或卸载拥有该条目的插件也会保留锁定和插件所有权标记。Chat 将保持不可用并失败关闭,直到同一插件被重新启用;清理永远不会将其转换为普通模型会话。
此操作永远不会恢复或修改源。临时 fork 固定一个快照;它不是持久续接线程。在第一轮启动一个独立的规范 harness 线程,可防止 OpenClaw 仅仅因为进程本地状态未能看到由 Desktop 拥有的轮次而成为竞争的源写入者。可见历史镜像和固定快照可能遗漏活动源中尚未完成的工作。原始 CLI、VS Code、Atlas 或 ChatGPT 源仍然符合原生和 OpenClaw 目录的资格。规范分支在监督存储中仍然是原生 Codex 线程,但原生客户端可能会过滤其 appServer 源类型,因此 Codex Desktop 可见性不是契约。
归档行为¶
对于已存储或空闲的 Gateway 本地行,sessions.catalog.archive 配合 catalogId: "codex" 需要显式 confirmNoOtherRunner: true,重新读取当前进程本地状态,仅对 idle 或 notLoaded 继续,调用原生 thread/archive,并且只有在 Codex 接受该操作后才返回成功。随后该行离开未归档目录。
新读取得到的活动或错误状态会拒绝归档。源中处于初始化或待处理状态的受监督分支同样会拒绝归档:在源可以归档之前,第一个 Chat 轮次必须使其规范分支实体化。对于确切目标或任何未归档的派生后代,已知的活动 OpenClaw 绑定所有者也会拒绝归档。OpenClaw 对 Codex 的实验性 thread/list ancestorThreadId 关系进行分页,并在请求或响应错误、游标或线程循环以及安全限制耗尽时失败关闭。原生归档可能会关闭已加载的父级和后代工作,因此归档不是中断快捷方式。读取、后代枚举和归档调用不是原子的。独立客户端仍可能拥有或开始处理在本地显示为空闲或 notLoaded 的行。无其他运行者确认覆盖未知客户端以及该竞态,直到 Codex 拥有条件归档或跨进程租约。禁止配对节点归档。
Codex 目录中没有已归档视图。在另一个所有者授权的 Codex 界面中使用 thread/unarchive 恢复的线程,会重新符合未归档目录的资格。
活动线程安全¶
Codex 在一个 App Server 的客户端之间对线程的变更进行串行化,但它不暴露独占的跨进程运行者或审批所有者租约。独立的 stdio App Server 可以追加到同一个 rollout,而每个服务器只能看到自己的内存状态。审批请求也可能到达一个服务器的所有订阅者,第一个有效响应会完成该请求。
因此:
- 被动目录客户端不会订阅或自动拒绝审批
- 当前报告为活动的行既不暴露新分支,也不暴露归档
- 未映射的 Gateway 本地源会成为可见历史分支,其规范 harness 线程永远不会恢复源
notLoaded显示为活动状态未知,只有在知情的无其他运行者确认之后才能归档- 本地归档需要该确认以及一次新的
idle或notLoaded读取,同时承认读取与归档之间的协议竞态
中断和多客户端交接是未来的产品决策。显示活动行并不隐含这些决策。
配对节点边界¶
配对节点续接使用现有的请求/响应式 Codex CLI resume 命令,而不是远程 App Server harness 流。节点必须已连接,并且以下三个命令都必须由 Gateway 的节点调用策略同时通告并允许:
codex.appServer.threads.list.v1codex.appServer.thread.turns.list.v1codex.cli.session.resume
resume 命令具有危险性,除了节点已批准的命令表面外,还需要显式 gateway.nodes.commands.allow 授权;gateway.nodes.commands.deny 仍然优先。仅原生 macOS 目录和终端中继不会通告此 CLI-resume 命令,但 Mac 应用可以从其嵌入式节点工作进程合并额外命令。资格遵循实时命令集,而不是主机平台。
sessions.catalog.continue 在加入任何待处理 adoption 之前需要 operator.admin。它会重新检查实时节点能力,并在未归档目录中重新定位源。只有交互式 idle 或 notLoaded 行符合条件;活动、错误、已归档、不可用或非交互式源会被拒绝。对于新 Chat,它会读取一页最多 50 个最新轮次的有界页面,并导入该页面中最后一个终止轮次及之前的可见用户和助手历史,使用与本地续接相同的历史大小限制。
插件创建或复用一个具备 agent 资格、模型锁定的 Chat,并返回一个 codex-cli-node-session 会话绑定,其中包含确切的线程 id、节点 id、拥有 agent 和 cwd。Gateway 在插件完成或取消隐藏 Chat 之前安装该绑定。此目录操作期间不会发生原生 fork 或 resume。后续授权消息会在拥有节点上针对该确切原生线程运行 codex exec resume,prompt 通过 stdin 传入,并使用节点的原生 CLI 配置返回最终文本。它们不会启动 Gateway 本地规范分支,也不会转发完整的 App Server 审批、工具和增量流或结构化附件。绑定的轮次保留所有者/管理员检查,并在 OpenClaw 沙箱化激活期间被阻止。
节点运行者在其进程内拒绝同一线程重叠的 OpenClaw resume 轮次;它不提供跨原生 Codex 客户端的租约。操作员必须避免在其他地方并发使用该线程。缺少所需能力的节点仍保持可读,但没有 Chat 续接。配对节点归档仍然禁止;终端中继不会改变任一门控。
权限¶
每台计算机都在本地选择加入。启用 Gateway 不会授权另一个节点读取其 Codex 元数据。节点能力必须通过正常的配对和命令策略审批。
Fleet 列表、转录查看、本地继续和归档使用
operator.write Gateway 作用域。配对节点继续还需要
operator.admin,后续绑定轮次保留原生执行
所有者/管理员授权检查。任一作用域都不会绕过节点连接、
命令审批、调用策略或来源资格检查。
自主代理和独立 MCP 访问是独立的。随附的
codex_endpoint_probe、codex_sessions_list、codex_session_read、
codex_session_send 和 codex_session_interrupt 工具契约仍由
codex 插件拥有。启用监督后,原始 codex_threads 转录
读取和由转录派生的列表字段也需要
supervision.allowRawTranscripts;每次 codex_threads 分叉、重命名、归档
或取消归档都需要 supervision.allowWriteControls。这两项策略默认
禁用。
兼容性¶
openclaw doctor --fix 会迁移随附的 plugins.entries.codex-supervisor
配置,包括端点和转录/写入策略,以及插件
允许/拒绝引用,迁移到
plugins.entries.codex.config.supervision。显式的规范目标
值在冲突中获胜。迁移后,运行时代码仅使用规范的 codex 插件
结构。
官方插件恰好保留五个 Supervisor 兼容工具:
codex_endpoint_probe、codex_sessions_list、codex_session_read、
codex_session_send 和 codex_session_interrupt。会话列表默认仅包含已加载项;
没有 loaded_only 参数。include_stored: true 会添加
未归档的状态数据库行,每个端点受 max_stored_sessions
限制(默认 200,接受范围 1 到 1,000);已加载行不受该设置
限制。由转录派生的字段和读取仍受
allowRawTranscripts 控制;发送和中断仍受 allowWriteControls 控制。
兼容发送永远不会启动或恢复空闲线程。mode: "start" 始终
被拒绝;"auto" 和 "steer" 只能引导可读的活动轮次。
中断同样需要一个可读的活动轮次。空闲继续会路由
到原生 Codex 目录,使完整 harness 拥有审批、工具和绑定。
独立旧版 MCP 适配器从官方插件解析这些相同工具,
并且是唯一遵循保留的旧版策略环境变量的路径。
2026.8.1 目录 UI、Gateway 方法、节点能力和 CLI 注册并未
在旧插件 id 下发布。它们直接迁移到 codex 所有权,
而不引入第二个运行时门面。
未来工作¶
- 超出当前 CLI 恢复路径的完整远程 App Server harness 流式传输
- 用于客户端同时交接的显式 runner 和审批所有者租约
- 在存在 runner 所有权租约或等效 fencing 之后进行远程归档
- 中断以及更丰富的活动会话观察
- Codex Desktop、CLI 和 OpenClaw 之间可审计的交接
归档浏览不是计划中的监督侧边栏的一部分。原生 Codex 界面仍然是归档线程的恢复路径。
验收测试¶
- 启用监督会列出未归档的本地会话。
- 归档会话永远不会出现在目录响应或 UI 中。
- 当另一个主机失败时,健康主机仍保持可见;不可用主机 不会返回新的行,也不会编造离线会话状态。
- 存储或空闲的本地行会创建一个带有仅限 Codex 的 模型/运行时锁的 Chat 镜像;第一轮会固定一个临时快照并启动 规范的完整 harness 线程,重复“继续”会打开现有 Chat。
- 第一轮在快照分叉上省略模型/提供商覆盖,并将 规范启动固定为 Codex 返回的精确配对,即使 Codex 警告 其当前模型与来源最后记录的模型不同。
- 待处理和已提交的受监督绑定使用监督连接进行 来源访问、规范分支创建以及后续每一轮;普通 Codex 会话仍保持代理作用域。
- 后续恢复会省略 OpenClaw 模型/提供商覆盖,保留 Codex 的 规范持久化选择,接受对该线程的独立原生更改, 并且绝不替换外层 OpenClaw 模型或回退链。
- 禁用监督或失去绑定/连接生命周期会失败关闭, 而不是将 Chat 移动到普通 agent-home harness。
- 受监督的模型锁定 Chat 在保护原生绑定期间不能被删除。
- Chat 最多镜像 200 条用户和助手消息,总计 512 KiB, 每条消息 64 KiB。图像变为占位符;来源推理、工具调用、 工具结果、图像载荷和本地路径不会被克隆。
- 分支流程永远不会恢复来源线程。
- 原始来源仍然符合两个目录的资格。规范原生
分支使用
appServer来源类型,并且不保证出现在 Codex Desktop 中。 - 活动本地来源不能创建分支或归档;现有 受监督 Chat 仍可打开。
- 活动状态未知的行可以在不确认的情况下分支;归档需要 显式的无其他 runner 确认。
- 具有正在初始化或待处理受监督分支的来源,在第一个 Chat 轮次生成规范分支之前不能被归档。
- 针对精确目标或任何未归档生成后代的已知活动绑定所有者会阻止归档;后代枚举失败会失败关闭, 显式确认仍负责未知客户端和状态到归档的竞态。
- 已确认的存储或空闲本地归档会在原生成功后删除该行。
- 配对节点继续需要一个已连接节点,该节点已通告并可调用全部三个命令,
一个交互式
idle或notLoaded来源,以及operator.admin;缺少权限会在采用去重之前被拒绝。 - 配对节点继续会创建或复用一个具有有界历史的模型锁定 Chat, 并在最终确定可见性之前安装其会话绑定。 后续授权消息会在其节点上恢复精确的原生线程,而不是 会话族兄弟或 Gateway 本地分支。
- 没有继续能力的配对节点行仍可读,并且没有 配对节点行提供归档。
- 被动列表从不订阅或响应线程审批。
- 旧版 Supervisor 配置迁移到规范 Codex 配置结构。
- 旧版列表默认仅包含已加载项,存储枚举遵守其每端点 上限,并且兼容发送永远不会启动或恢复空闲线程。
相关¶
- Codex supervision - 本规范的面向用户指南
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw