Research Hub·← 返回索引research.jingyijun.com
打开报告目录

System dossier ·observed 2026-07-11 ·Asia/Shanghai

LazyCodex 与 Codex 如何协作

.codex-plugin/plugin.json、21 个生命周期 Hook、25 个 Skill、10 个 Agent role、5 个 MCP server,一直追到 Codex 的 Hook discovery、信任哈希并发 command runner、自动更新和 Stop 续跑机制每个被提到的本机文件与工具都给出绝对路径;完整安装面另附 2,196 行清单

本机实证 官方契约 上游版本 分析/推断 总体 WARN:安装完整工作流有限制
TERM
当前环境没有名为 “LazyIndex”的独立组件

对本机 OMO 4.16.2、LazyCodex 上游和 OpenAI Codex 上游做源码搜索LazyIndex 命中均为 0。结合现有安装,本文将它解释为 LazyCodex / OMO。如果你原指另一个同名项目,需要用项目链接重新定界

为什么总体是 WARN,以及怎样只读复验

本机 4.16.2 比研究时上游 4.16.3 落后一版安装完整性最小 runtime probe 已通过具体工作流仍受 teammodeulw-plan配置迁移和 PostCompact 已知问题影响升级前先做 dry-run

npx --yes lazycodex-ai@4.16.2 update --dry-run 查看完整升级、Hook 复信任与回滚步骤
4.16.2本机 LazyCodex / OMO
4.16.3研究时上游最新
0.144.1本机与最新稳定 Codex
2,196插件文件与 symlink 对象
21 / 19Hook 文件 / 4.16.2 已注册
25顶层 Skills
10物化 Agent roles
5 + 12MCP servers + CLI links
/

索引加载中

01 · Executive summary

先说结论:它是 Codex 的扩展层,执行内核仍由 Codex 提供

OpenAI Codex 继续提供模型、会话、审批、沙箱和工具执行内核;LazyCodex / OMO 把可安装的工作流、生命周期脚本、MCP server、角色配置和本地状态挂到 Codex 的插件与 Hook 扩展点上。

安装完整性通过

Codex 0.144.1、插件 payload、19 个已声明 Hook 的 trust hash、10 个 agent materialization、12 个 CLI link 与隔离运行时探针通过检查

版本落后一版

本机 OMO 4.16.2;2026-07-10 已发布 4.16.3。差异集中在 Hook 注册、Agent 模型路由、teammode transport 与工作流 Skill

Codex 决定什么时候执行

Hook discovery、信任、matcher、并发、超时、stdin/stdout/stderr 和阻断语义都由 Codex Hook 引擎实施;OMO 只提供声明和脚本[S1][S5]

更新提示存在模式不匹配

本机 marketplace 是 local,而 4.16.2 提示codex plugin marketplace upgrade 只适用于 Git marketplace;可审计路径是备份后运行固定版本安装器,并显式关闭 autonomous 权限写入。

从用户视角看,OMO 的价值可分为四层:Skill 规定可复用的做事方法;Hook 在生命周期边界注入、检查或续跑;MCP/CLI 提供实时工具Agent role 为并行或专门任务绑定模型与指令。Codex 仍负责读取上下文、决定调用哪个 Skill/Tool、执行审批与沙箱、汇总结果并结束会话。官方文档也把 Skill、MCP、Agent 和 Hook 视作不同作用域的自定义面[S3]

02 · Freshness model

“在哪里”“还能信多久”必须一起读

同一个路径事实可能很稳定,也可能下一次启动就变化。本文把时效拆成六级,避免把安装配置、会话暴露和网络连通性混成一个“可用/不可用”。

官方契约

插件 manifest、Hook 事件模型、Skill/MCP 的职责边界。仍可能随 Codex release 演进,但比本机配置更稳定。

developers.openai.com + release commit
版本级

OMO 4.16.2 / 4.16.3 的文件、模型路由、Hook 清单。只对指定 tag 有效。

v4.16.2 / v4.16.3
安装级

本机 cache、bin link、materialized agent 和 plugin manifest。重装或升级后要重新盘点。

~/.codex/plugins/cache/...
配置级

config.toml、Hook trust hash、MCP enable override。用户编辑后立即变化。

~/.codex/config.toml
会话级

当前会话实际暴露了哪些 MCP 工具、加载了哪些 Skill、LSP 是否有 active client。

new thread / restart may differ
瞬时网络

远程 MCP endpoint、GitHub、npm 与文档站可达性。一次 405、timeout 或成功都不能外推。

probe again before diagnosis

03 · Ownership boundary

四个名字,四种所有权

“LazyCodex”“OMO”“oh-my-openagent”“Codex”分属发行、插件、核心上游与宿主层。区分这些所有权,才能判断一个问题该改配置、重装插件、向 LazyCodex 报告,还是追到 OpenAI Codex。

OpenAI Codex

宿主与执行内核。拥有插件 loader、Hook engine、会话、审批、沙箱、工具调用与 TUI 的 /hooks 管理界面。

OMO plugin

本机真正被 Codex 启用的插件名:omo@sisyphuslabs。manifest 把 Skills、Hooks、MCP 与界面元数据交给 Codex

LazyCodex

面向 Codex 的安装器、marketplace 和发行层。源码仓库中包含生成后的 plugins/omo/ payload。

oh-my-openagent

OMO 的核心开发上游,承载共享组件、工作流和生成链路。4.16.3 的对应 tag commit 为 c0af948d…

判断责任归属的最短路径:manifest/安装 materialization 问题先看 LazyCodex;Hook 是否被发现、信任、并发或阻断先看 Codex;某个 Skill/Hook 脚本自身逻辑先看 OMO / oh-my-openagent;用户的 memory_stop.py 属于本机自定义配置,不应归咎于 LazyCodex。

04 · Runtime lifecycle

从一条 Prompt 到 Stop:真正的协作时序

OMO 仅在明确事件点注入上下文、执行检查提示续跑;其余推理和工具调用Codex 完成

一个回合的主路径

节点按阅读顺序表示生命周期先后;宽屏箭头只表达顺序,具体回合会按事件、matcher、enable 与 trust 选择性触发

matcher / trust / enable 均可让 Hook 跳过
  1. Session bootSessionStart
  2. User promptUserPromptSubmit
  3. Skill selectionskills/*/SKILL.md
  4. Before toolPreToolUse
  5. Tool / MCP.mcp.json / shell
  6. After toolPostToolUse
  7. Finish gateStop / SubagentStop
上下文注入SessionStartUserPromptSubmit 和部分输出可向 Codex 增加规则、工作流 bootstrap继续执行提示
机械约束PreToolUse 可在工具执行前决策;PostToolUse 可反馈诊断;Stop 可阻止结束并要求继续。
职责边界Skill 编排做法,系统动作由 MCP、CLI 或宿主工具执行;最终是否调用仍由 Codex 的上下文和策略决定

典型路径

  1. Codex 启动线程,加载插件和配置层;5 个 SessionStart Hook 负责规则、遥测、自动更新、bootstrap 与 CodeGraph 指引。
  2. 用户提交 prompt,3 个 UserPromptSubmit Hook 处理项目规则、ultrawork 触发词和 ulw-loop steering。
  3. Codex 根据 prompt 与 Skill description 选择是否读取某个 SKILL.md;Skill 再引导它调用 shell、MCP 或 Agent。
  4. 工具调用前后触发 Pre/Post Hook。OMO 可实施 goal budget、comment checker、LSP diagnostics、规则匹配、CodeGraph 引导和 thread title hygiene。
  5. 发生 compact 时,PostCompact Hook 重置缓存;结束时,Stop/SubagentStop Hook 判断工作流是否应该续跑,以及 executor evidence 是否完整。

05 · Disk layout

安装后到底写了什么

本机插件根目录包含 2,180 个普通文件和 16 个 symlink,约 466 MiB;大部分体积来自 node_modules/顶层语义远比体积更重要。

/home/jingyijun/.codex/
├── config.toml                              # plugin、MCP、trust、agents 注册
├── hooks.json                               # 用户自定义 Hook,不属于 OMO
├── hooks/
│   ├── memory_stop.py
│   ├── memory_worker.py
│   └── memory_schema.json
├── agents/*.toml                            # 10 个物化 role
├── backups/pre-lazycodex-20260710-170805/   # 安装前备份
└── plugins/
    ├── cache/sisyphuslabs/omo/4.16.2/       # 插件 payload 根
    │   ├── .codex-plugin/plugin.json        # 必需入口
    │   ├── .mcp.json                        # 5 个 MCP server
    │   ├── hooks/*.json                     # 21 个 Hook 文件
    │   ├── skills/*/SKILL.md                 # 25 个顶层 Skill
    │   ├── components/                       # 15 个安装组件
    │   ├── dist/                             # 聚合 CLI runtime
    │   ├── scripts/                          # 安装、同步、自动更新
    │   └── node_modules/                     # bundled runtime dependencies
    └── data/omo-sisyphuslabs/                # 可变插件数据
        ├── auto-update.json / .log
        ├── bootstrap/
        ├── daemon/v0.1.0/
        └── sessions/

/home/jingyijun/.local/bin/                  # 12 个插件 CLI symlink
/home/jingyijun/.omo/                        # CodeGraph 与 OMO 用户状态
└── codegraph/projects/workspace-63f57d842c75bdea/codegraph.db
插件根4.16.2
/home/jingyijun/.codex/plugins/cache/sisyphuslabs/omo/4.16.2

安装 payload;升级或清理 cache 后路径变化。

配置可变
/home/jingyijun/.codex/config.toml

含 local marketplace、插件启用、MCP override、19 个 trusted_hash 和 10 个 agent registration。

06 · Plugin entry

plugin.json所有协作面的路由表

Codex 不会递归猜测 OMO 的所有目录。它从 manifest 读取 Skills、Hooks 和 MCP 的声明,再由 loader 解析相对路径、创建插件数据根并交给对应子系统。官方插件文档也规定 .codex-plugin/plugin.json 是必需入口[S2][S10]

{
  "name": "omo",
  "version": "4.16.2",
  "skills": "./skills/",
  "hooks": [
    "./hooks/session-start-loading-project-rules.json",
    "... 18 more registered files ..."
  ],
  "mcpServers": "./.mcp.json"
}

Skills

./skills/ 是目录入口。Codex 先看 Skill 元数据,再按触发条件读取完整 SKILL.md,这就是 progressive disclosure。

Hooks

4.16.2 manifest 显式列出 19 个文件,因此默认 hooks/hooks.json 不参与;目录里另有 2 个文件处于“存在但未注册”状态。

MCP

.mcp.json 同时包含远程 URL 和本地 stdio command;本地 command 已在安装时改写为可执行的绝对路径。

Plugin data

Hook 命令获得 PLUGIN_ROOTPLUGIN_DATA 以及兼容用的 CLAUDE_PLUGIN_ROOT/CLAUDE_PLUGIN_DATA[S2][S5]

本机 manifest
/home/jingyijun/.codex/plugins/cache/sisyphuslabs/omo/4.16.2/.codex-plugin/plugin.json
4.16.3 checkout临时
/tmp/lazycodex-sources/lazycodex-source/plugins/omo/.codex-plugin/plugin.json

研究 checkout,永久引用应使用固定 commit URL。

07 · Codex internals

一次 Hook 执行包含发现、信任、并发输出解析

Codex 先发现并规范化 Hook,再判断 matcher、enable 和 trust,之后并发启动同步 command,最后按事件解析输出。下面每一步都有具体源码位置。

1
按来源层合并

Hook 可来自 managed requirements、系统/用户/项目 config layer 的 hooks.json 与 inline TOML,以及插件 manifest。若同一层同时有 JSON 和 TOML,Codex 会警告,并继续加载两者[S1][S5]

/tmp/lazycodex-sources/openai-codex-source/codex-rs/hooks/src/engine/discovery.rs
2
规范化 matcher

PreToolUsePostToolUseSessionStartSubagentStop、Compact 等保留 matcher;UserPromptSubmitStop 当前忽略 matcher。精确值、管道分隔和正则均可用[S8]

codex-rs/hooks/src/events/common.rs:105-164
3
先检查 enable,再检查 trust

enabled=false 始终跳过。其他 command 只有来源为 managed、持久化 hash 为 Trusted,或本次启动显式使用 --dangerously-bypass-hook-trust 时才进入执行列表;该危险参数只绕过持久 trust,仍尊重 disabled 状态[S5][S20]

discovery.rs:527-545 + utils/cli/src/shared_options.rs:51-54
4
信任会打开宿主级执行边界

Codex 的启动审查明确提示:被信任的 command Hook 可以在常规工具沙箱之外运行。最终可读写范围由启动 Codex 的宿主用户、进程环境和操作系统权限决定[S21]

codex-rs/tui/src/startup_hooks_review.rs:214-218
5
能力支持具有版本边界

当前只有 type: command 真正执行。promptagent 会被解析后跳过;async: true 同样被跳过并发出 warning。默认 timeout 为 600 秒,OMO 自己把各 Hook 收紧到 5–60 秒[S4][S5]

discovery.rs:461-555
6
同一事件的多个 Hook 并发启动

dispatcher 把所有匹配 handler 放入 FuturesUnordered,按完成顺序采集,再恢复配置顺序返回;多个 command 进程会并行工作[S6]

codex-rs/hooks/src/engine/dispatcher.rs:89-116
7
进程契约

Hook 进程 cwd 是会话 cwd;stdin 收到事件 JSON;stdout/stderr 被分别捕获;超时后进程被丢弃。非 Windows 默认使用 $SHELL -lc[S7]

codex-rs/hooks/src/engine/command_runner.rs:49-195
8
输出语义取决于事件

普通文本可作为附加上下文;事件专用 JSON 可表达 permission decision、block reason、continuation prompt 等。非零退出码与 stderr 也会按事件映射为反馈或阻断。

codex-rs/hooks/src/events/*.rs + engine/output_parser.rs

Feature 默认开启

[features] hooks = true 是 stable 且默认开启;旧键 codex_hooks 是 legacy alias[S9]

项目层需要信任

不受信项目会跳过项目 .codex/ 层,包括 project config、hooks 和 rules;用户与系统层仍独立加载[S1]

关键 Codex 源码文件与固定链接

完整 31 文件台账见 codex-hook-engine-files.tsv。研究 checkout 位于 /tmp,可能被清理;报告来源列表提供 release-pinned GitHub URL。

08 · OMO lifecycle hooks

21 个文件,4.16.2 实际注册 19 个

Codex 只发现 manifest 已注册的文件。4.16.2 manifest 漏掉了 Git Bash reminder 的 PreToolUse 和 PostCompact reset;4.16.3 已把二者补入 manifest

SessionStart5 个:规则、遥测、更新、bootstrap、CodeGraph
UserPromptSubmit3 个:规则、ultrawork、ulw-loop
PreToolUse2 个文件;4.16.2 注册 1 个
PostToolUse5 个:comments、LSP、CodeGraph、rules、title
PostCompact3 个文件;4.16.2 注册 2 个
Stop1 个:start-work continuation
SubagentStop2 个:continuation + evidence gate
TimeoutOMO 设为 5–60 秒;Codex 默认值为 600 秒

正在加载 21 个 Hook 文件…

每行对应一个 Hook JSON 文件中的 command handler。
事件 / 文件Matcher / Timeout命令4.16.24.16.3绝对路径
通过 HTTP 打开报告时加载完整 TSV;直接 file:// 打开可使用上方下载链接。

未注册 1

pre-tool-use-recommending-git-bash-mcp.json 在磁盘存在,但 4.16.2 manifest 未引用。

未注册 2

post-compact-resetting-git-bash-mcp-reminder.json 同样存在但不进入 4.16.2 discovery。

09 · Reusable workflows

25 个 Skill 编排“如何做”动作交给工具执行

Skill 的 description 决定何时被选择,完整 SKILL.md 决定步骤、引用、脚本和验收。Skill 可以要求调用 MCP、CLI 或 Agent,但它本身只是 Codex 读取的工作流包[S3]

代码理解与质量

ast-greplsplsp-setupprogrammingdebuggingrefactorremove-ai-slops

研究与会话

coding-agent-sessionsultimate-browsingulw-researchinit-deep

计划与编排

ultraworkulw-planulw-loopstart-workteammodereview-work

LazyCodex 运维

lcx-doctorlcx-report-buglcx-contribute-bug-fixrulescomment-checkerfrontendvisual-qagit-master

ulw-plan 触发碰撞

本机 4.16.2 与固定 4.16.3 均可复现:技能名中的 ulw 会额外触发完整 Ultrawork Hook。采用 ulw-plan → start-work → review-work 时,先阅读 issue #124,并监控是否出现双重工作流与长时间等待[S24]

根目录的 init-deep 风险

本工作区根已经有完整 AGENTS.md。不要在 /home/jingyijun/Projects/workspace 根目录运行 $omo:init-deep,避免覆盖现有分层规则;如需初始化,应在明确缺少规则的独立子项目内执行。

正在加载 25 个 Skill…

文件数包含该 Skill 的 scripts、references 与其他支持文件。
SkillDescriptionFiles / Scripts / Refs4.16.3 变化SKILL.md 绝对路径
加载中…

10 · Agent roles

Agent role源文件物化与注册

10 个 role 的源 TOML 位于插件 components/ultrawork/agents/安装器将它们复制到 ~/.codex/agents/,再在 config.toml [agents.*] 中注册。源文件与 materialized 文件SHA256 全部一致

Agent materialization

模型路由属于高易变配置;能力判断应绑定目标版本重新验证。

4.16.3:10/10 role 路由发生变化
  1. Sourcecomponents/ultrawork/agents/*.toml
  2. Materialized~/.codex/agents/*.toml
  3. Registered~/.codex/config.toml [agents.*]

正在加载 10 个 Agent role…

4.16.3 model 名来自固定 tag;未来版本可能再次变化。
Role职责本机模型 / effort4.16.3 模型 / effort源与物化路径
加载中…

本机 4.16.2 使用 gpt-5.4-minigpt-5.5 系列;4.16.3 把角色切到 gpt-5.6-terra / gpt-5.6-sol,且 Momus effort 变为 ultra。这说明 Agent role 表最容易过时,任何性能或成本判断都应在目标版本上重新读取 TOML。

11 · MCP and CLI

5 个 MCP server、17 个已知 MCP tool12 个插件 CLI link

“配置里启用”只代表 Codex会尝试启动;“本会话暴露”才代表当前线程已拿到工具 schema;远程 endpoint 的工具集还可能由服务端动态变化。

CodeGraph

本地 stdio/Node runtime,当前暴露 codegraph_exploresearchnodecallers。索引数据库在 ~/.omo/codegraph/…/codegraph.db

LSP

本地 daemon MCP,当前暴露 8 个工具;探针时有 42 个内置 server 定义,仅 ruff 已安装,active client 为 0。

Context7 / grep_app

两者都是远程 HTTP MCP。Context7 当前有 2 个工具;grep_app 配置启用但本次隔离启动 transport closed,当前会话未暴露。

Git Bash

实现包含 which_bashdiagnoserun;本机 Linux 配置为 disabled,符合该组件面向 Windows Git Bash 的平台选择。

MCP 配置
/home/jingyijun/.codex/plugins/cache/sisyphuslabs/omo/4.16.2/.mcp.json
CLI links
/home/jingyijun/.local/bin/

12 个 symlink 均指向当前 4.16.2 cache;升级后应重验 link target。

正在加载工具和 CLI 台账…

远程 MCP tool 没有本地实现文件时,以配置路径 + endpoint 落位。
类型 / 名称用途配置或 link实现或 endpoint启用 / 本会话暴露运行观测
加载中…

12 · Components

15 个已安装组件,4.16.3 多出 lsp-tools-mcp

组件是 Hook、MCP、CLI 与 Skill 的实现载体。它们在源码中可独立维护,但最终被聚合成一个 OMO plugin namespace。

正在加载组件台账…

“upstream-only”表示研究时最新 tag 存在、当前 4.16.2 安装不存在。
Component状态 / 用途主入口文档文件统计4.16.3 变化
加载中…

13 · State and trust

代码之外,还有一层会变的状态面

诊断 LazyCodex 时,不能只看 cache payload。trust、updater throttle、daemon endpoint、CodeGraph index 和 telemetry 都在插件根之外。

Hook trust

~/.codex/config.toml 中有 19 个 [hooks.state."omo@sisyphuslabs:…"],每个包含 trusted_hash。升级改动 Hook 定义后需要重新批准。

Plugin data

~/.codex/plugins/data/omo-sisyphuslabs/ 承载 updater、bootstrap、daemon、model catalog 和 per-session JSON;这是运行状态,不应与不可变 payload 混做 checksum。

CodeGraph

codegraph.db-wal-shm 会随 watcher 更新。报告记录路径和观测状态,不把数据库 hash 当版本号。

用户 Memory Hook

~/.codex/hooks.json 的 Stop Hook 把事件排队给 memory_stop.py/memory_worker.py。它独立于 OMO,问题归因必须分开。

运行状态
/home/jingyijun/.codex/plugins/data/omo-sisyphuslabs/auto-update.json
瞬时索引
/home/jingyijun/.omo/codegraph/projects/workspace-63f57d842c75bdea/codegraph.db
用户 Hook非 OMO
/home/jingyijun/.codex/hooks/memory_stop.py

插件外关键路径已单独做 SHA/mtime 台账。

14 · Install, update, rollback

版本检查能发现更新,升级提示仍可能失效

本机上一次成功检查启动了 24 小时节流,4.16.3 恰好在窗口内发布;与此同时,release note 推荐的 marketplace 命令与本机 local source 模式不兼容。

lazycodex-ai@4.16.2 发布

本机随后安装 4.16.2,payload mtime 约为 17:08 +08:00。

自动更新检查:up-to-date

auto-update.json 将本次记录为成功,启动 24 小时 throttle。

lazycodex-ai@4.16.3 发布

比上一次成功检查晚约 4 小时 54 分。

多次 SessionStart:throttled / child disabled

仍未到 24 小时窗口,主检查被节流;一次子流程带 disabled 标记用于避免递归。

1
先做只读检查

确认磁盘版本与上游,再看 updater 状态和本机 marketplace 类型。

npx --yes lazycodex-ai@4.16.2 update --dry-run
2
备份并检查安装器权限

固定 4.16.3 源码显示安装器默认会启用 autonomous 权限。先备份 ~/.codex/config.toml、审查安装源码与目标版本,再显式关闭该写入。

npx --yes lazycodex-ai@4.16.3 install --no-codex-autonomous
3
升级后新开会话并审查 Hooks

Hook 定义 hash 变化后,在交互 TUI 使用 /hooks 查看、信任或禁用,再运行 doctor 与最小 runtime probe。

codex
4
卸载与回滚

uninstall 会立即修改 ~/.codex/config.toml,删除 sisyphuslabs cache、临时 marketplace 和托管 Agent link;它没有 dry-run 或二次确认。回滚优先重装固定旧版并显式关闭 autonomous 权限,再按差异选择性恢复备份。

npx --yes lazycodex-ai@4.16.3 uninstallnpx --yes lazycodex-ai@4.16.2 install --no-codex-autonomous/home/jingyijun/.codex/backups/pre-lazycodex-20260710-170805/

陷阱一:marketplace upgrade

本机 [marketplaces.sisyphuslabs] source_type = "local";Codex 源码的 upgrade path 只解析 Git marketplace。不要把报错理解为插件损坏。

陷阱二:用最新版 CLI 检查旧安装

npx lazycodex-ai@4.16.3 update --dry-run 返回 “already up to date” 只说明当前执行包是 4.16.3,不代表 ~/.codex/plugins/cache/…/4.16.2 已升级。

陷阱三:autonomous 是高权限写入

--codex-autonomous 会写入 approval_policy = "never"sandbox_mode = "danger-full-access"、网络启用和隐藏警告设置;当前安装器默认也会采用该模式。只有在外部隔离且完成审查时才考虑它。

固定版本仍会改状态

--no-codex-autonomous 只阻止上述权限升级;安装仍会写插件 cache、配置、Hook trust、Agent role、CLI link、feature 与 MCP 状态。执行前要留备份和 diff。

安装、权限与卸载的固定源码位置
  • /tmp/lazycodex-sources/lazycodex-source/src/packages/omo-codex/scripts/install/permissions.mjs:5-14:autonomous 权限具体写入[S26]
  • /tmp/lazycodex-sources/lazycodex-source/src/packages/omo-codex/scripts/install/cli-args.mjs:34-42,100-102:正反权限参数与 uninstall → cleanup 映射[S27]
  • /tmp/lazycodex-sources/lazycodex-source/src/packages/omo-codex/scripts/install-local.mjs:152-162:默认 autonomousPermissions !== false 与配置更新入口[S28]
  • /tmp/lazycodex-sources/lazycodex-source/src/src/cli/install-codex/codex-cleanup.ts:28-69:配置清理、cache 删除和托管 Agent link 删除[S29]

这些 /tmp 路径是研究 checkout,可能被清理;永久逐文件证据固定到 LazyCodex v4.16.3 commit bb8764ca… 所指向的 src gitlink 65715d1c…

15 · Version delta

4.16.3 共改变 110 个路径,涉及注册、路由与工作流

对 LazyCodex 固定 tag v4.16.2..v4.16.3plugins/omo/ 做源码 diff,共 110 个路径变化。

Hook 完整注册

两个 Git Bash reminder JSON 被补进 manifest,21 个 Hook 文件全部进入 discovery。

Agent 模型路由全面变化

10 个 role 全部变更,主要切换到 gpt-5.6-terra / gpt-5.6-sol。这是高易变面。

teammode transport

优先选择原生 MultiAgentV2 的 flat spawn_agent/task_name,Codex App thread 退为 fallback;新增 team-transport.mjs

规则与工作流同步

Hephaestus 增加 GPT-5.6 variant,ulw-plan/ulw-loop workflow、ulw-researchvisual-qa 等更新,并新增 lsp-tools-mcp 组件。

完整 add/modify/rename 列表保留源码相对路径与 4.16.3 checkout 绝对路径。

16 · Doctor verdict

健康度结论:安装完整性 PASS,工作流状态 WARN

插件 payload 与最小运行探针通过;版本落后一版、更新提示不匹配、一次远程 MCP 启动降级及四项公开已知问题,使“所有工作流均可用”这一更强结论无法成立。

诊断只读执行,没有改动用户安装。
检查结论证据
Codex 版本PASScodex-cli 0.144.1,与最新稳定 release 一致。
Plugin payloadPASSmanifest、Skills、MCP entrypoint、Hooks 与组件 runtime 存在且非空。
Hooks / agents / bin linksPASS19 个已声明 Hook 均有 trusted hash;10 个 materialized agent SHA 匹配;12 个 symlink target 存在。
真实运行PASS + WARN隔离 codex exec exit 0 并返回目标文本;stderr 同时有一次 grep_app transport closed。
LazyCodex 版本WARN本机 4.16.2,上游 4.16.3。
升级建议WARNrelease note 命令面向 Git marketplace,与本机 local marketplace 不一致。
公开 issue 状态观测于 2026-07-11;升级后仍需逐项复验。
已知限制受影响版本 / 本机判断影响与当前处置来源
teammode 缺少旧 codex_app.* thread tools本机 4.16.2 受影响;4.16.3 增加 flat MultiAgentV2 transport,尚未在本机升级态做端到端验证。4.16.2 无法按原契约创建耐久 team member;当前报告只确认安装完整,不把 teammode 计入已验证工作流。#119
空白配置 bootstrap 可能写入 GPT-5.5 profile4.16.2 / 固定 4.16.3 源码路径仍需警惕;本机已有显式 GPT-5.6 配置,本次未观察到覆盖。新建或缺少根模型字段的项目配置应在 SessionStart 后做 diff;必要时使用文档中的迁移禁用开关并复核。#123
$omo:ulw-plan 额外触发完整 Ultrawork本机 4.16.2 与固定 4.16.3 均已用 packaged hook probe 复现。规划请求可能继承第二套 goal、委派和等待契约;使用常见三段工作流前先确认 prompt 中没有意外的双重激活。#124
GPT-5.6 PostCompact 落入 200K fallback本机 4.16.2 与固定 4.16.3 均缺 GPT-5.6 context budget 映射,并落入 200K fallback;issue 中已有验证补丁,尚未进入本报告固定 tag。compaction 后恢复上下文可能被过度截断;长会话应检查 PostCompact 输出和后续发行说明。#125

17 · Security and privacy

风险集中在新增的可执行边界

Hook command、MCP server、CLI link 和 Agent role 都扩展了 Codex 的行为面,应按代码依赖审查其来源、权限、数据流和更新方式。

Hook 命令权限

command 使用会话 cwd 和继承后的环境运行,能读写宿主用户权限范围内的文件;被信任后可运行在 Codex 常规工具沙箱之外。信任 hash 只能确认定义一致,命令内容仍需单独审查。

远程 MCP

Context7 与 grep_app 会把查询发送到远程服务。不要在查询中放 API key、客户数据、私有源码片段或凭证。

本地遥测

OMO telemetry 状态位于 plugins/data/omo-sisyphuslabs/sessions/。报告只记录目录和角色,不展开会话 JSON,避免泄露对话元数据。

用户 Memory Hook

Stop 事件触发的后台 worker 会写全局记忆目录。它有独立的 schema、queue 与 backup,升级 OMO 不会自动审计这一用户逻辑。

建议的最小审计顺序

  1. 先看 .codex-plugin/plugin.json 声明了哪些 Hook 和 MCP。
  2. 逐个审查 Hook JSON 的 command、timeout、matcher 与目标 entrypoint。
  3. 检查 ~/.codex/config.toml 的 enable override 与 trusted hash。
  4. 确认远程 MCP 查询不带敏感信息;检查本地 stdio entrypoint 是否仍落在期望版本。
  5. 升级后重新执行 runtime probe,并查看 /hooks,不要无条件全信任。

18 · Full inventory

完整 2,196 行文件与 symlink 搜索器

清单覆盖插件根下 2,180 个普通文件和 16 个 symlink,每行包含相对路径、绝对路径对象类型link target、target 是否存在、大小、mtime、SHA256、顶层类别时效范围

滚动到本节或使用搜索器时加载 installed-files.tsv…

为控制 DOM 规模,页面最多显示当前筛选的前 200 行;TSV 保留全部 2,196 行。
相对路径类型 / 类别大小 / mtimeSHA256绝对路径 / link target
加载中…

直接以 file:// 打开时,浏览器通常禁止 fetch 同目录 TSV;完整数据仍保存在下方直链中。

如何启用完整搜索器

在专题目录运行:

cd /home/jingyijun/Projects/workspace/research/lazycodex-codex-integration-study
python3 -m http.server 8766 --bind 127.0.0.1

# 浏览器打开
http://127.0.0.1:8766/reports/2026-07-11-lazycodex-codex-integration.html

19 · Sources and reproduction

来源、固定版本与复验命令

本报告优先使用本机实证、OpenAI 官方文档、固定 release 源码和 LazyCodex / OMO 固定 tag。临时 checkout 路径只用于本次研究,永久引用使用 commit-pinned URL。

  1. [S1]OpenAI Codex Advanced Configuration

    Hook 来源、项目层信任、JSON 与 inline TOML。研究快照 SHA256:c9703f7d…518f28

  2. [S2]OpenAI Build plugins

    plugin structure、manifest path rules、Skills/MCP/Hooks、PLUGIN_ROOT/PLUGIN_DATA。SHA256:0716a152…573c6

  3. [S3]OpenAI Customization

    AGENTS、Skills、MCP、Subagents 与组合边界。SHA256:6a855fee…2edd2d70

  4. [S4]OpenAI Configuration Reference

    features.hooks、command-only 支持状态、MCP 字段。SHA256:e3e8c202…2796da5

  5. [S5]Codex 0.144.1 Hook discovery.rs

    来源合并、plugin env、matcher validation、async/prompt/agent skip、timeout、hash 与 trust。

  6. [S6]Codex 0.144.1 dispatcher.rs

    FuturesUnordered 并发启动和结果排序。

  7. [S7]Codex 0.144.1 command_runner.rs

    cwd、stdin、stdout/stderr、timeout、shell invocation。

  8. [S8]Codex 0.144.1 events/common.rs

    哪些事件保留 matcher,以及 exact / pipe / regex 匹配。

  9. [S9]Codex hooks feature

    canonical key 为 hooks、Stable、default enabled;legacy alias 在 features/src/legacy.rs

  10. [S10]Codex plugin manifest parser

    插件 manifest 与 loader / manager 的源码边界。

  11. [S11]LazyCodex v4.16.3 release

    commit bb8764ca1754148ca56478d433c42b91c550e0f4,发布于 2026-07-10T14:06:12Z。

  12. [S12]oh-my-openagent v4.16.3 release

    commit c0af948da3d21ae4e843ec9b555bc883b042342b

  13. [S13]npm registry:lazycodex-ai@4.16.3

    registry 发布时间 2026-07-10T14:03:50.500Z;固定版本 JSON 端点在研究时返回 200。

  14. [S14]本报告来源与证据台账

    官方 Markdown SHA、版本 commit、运行时探针、更新链路与不确定性记录。

  15. [S15]研究简报

    范围、范围边界、必答问题、来源优先级和时效要求。

  16. [S16]最终 HTML 运行时审计

    三项调试假设、浏览器交互、CJK 修复、Lighthouse 因果实验和清理记录。

  17. [S17]结构化证据校验结果

    2,196 个插件对象和全部 TSV 路径、类型、大小、SHA256、相对链接的复验结果。

  18. [S18]真实 Chrome 浏览器 QA JSON

    320 / 375 / 768 / 1280 四档 overflow、动态加载、搜索、过滤、复制、clipboard、快捷键、目录与 disclosure 证据。

  19. [S19]Lighthouse 生产式预览结果

    移动/桌面各 3 次;Performance、Accessibility、Best Practices 中位数均为 100。

  20. [S20]Codex Hook trust bypass CLI

    --dangerously-bypass-hook-trust 仅面向已自行审查 Hook 来源的自动化;固定到本机 0.144.1 release commit。

  21. [S21]Codex Hook startup review

    TUI 明示 trusted Hooks 可以在沙箱之外运行;固定到本机 0.144.1 release commit。

  22. [S22]LazyCodex issue #119

    OMO 4.16.2 teammode 与 Codex CLI 0.144.1 缺失 codex_app.* thread tools 的兼容性问题。

  23. [S23]LazyCodex issue #123

    SessionStart 配置迁移可能把 GPT-5.5 profile 写入缺少根模型设置的项目配置。

  24. [S24]LazyCodex issue #124

    $omo:ulw-plan 与通用 Ultrawork 关键词 Hook 的确定性触发碰撞。

  25. [S25]LazyCodex issue #125

    GPT-5.6 PostCompact 使用 200K fallback;issue 中包含已验证、尚未进入固定 tag 的修补方案。

  26. [S26]OMO install permissions.mjs

    固定到 LazyCodex src gitlink commit;autonomous 权限写入的逐行证据。

  27. [S27]OMO install cli-args.mjs

    权限参数位于 34-42uninstall 映射位于 100-102

  28. [S28]OMO install-local.mjs

    默认 autonomous 条件与配置更新入口,固定到 gitlink commit。

  29. [S29]OMO codex-cleanup.ts

    卸载时的配置修复、cache 删除与托管 Agent link 清理。

最小复验命令
# 版本与入口
codex --version
command -v codex
jq .version /home/jingyijun/.codex/plugins/cache/sisyphuslabs/omo/4.16.2/.codex-plugin/plugin.json

# Hook / Skill / Agent / MCP 数量
find /home/jingyijun/.codex/plugins/cache/sisyphuslabs/omo/4.16.2/hooks -name '*.json' | wc -l
find /home/jingyijun/.codex/plugins/cache/sisyphuslabs/omo/4.16.2/skills -mindepth 1 -maxdepth 1 -name SKILL.md | wc -l
find /home/jingyijun/.codex/agents -name '*.toml' | wc -l
jq '.mcpServers | keys' /home/jingyijun/.codex/plugins/cache/sisyphuslabs/omo/4.16.2/.mcp.json

# 更新 dry-run;不会改安装
npx --yes lazycodex-ai@4.16.2 update --dry-run

# 最小真实运行
codex exec --skip-git-repo-check --json \
  'Reply exactly LAZYCODEX_RUNTIME_OK. Do not use tools.'