ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

oh-my-codex 0.21.2 发布范围解析:GitGuardex HUD 进度与 omx-runtime 有界水合

oh-my-codex 0.21.2 发布范围解析:GitGuardex HUD 进度与 omx-runtime 有界水合 oh-my-codex 0.21.2 发布范围解析GitGuardex HUD 进度与 omx-runtime 有界水合【免费下载链接】oh-my-codexOmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex本文以 发布库存清单 为核心骨架拆解 oh-my-codex 0.21.2 补丁版本从v0.21.1到冻结点04533ebf的完整发布范围GitGuardex 分支收尾进度如何以可选方式接入 HUD、omx-runtime原生二进制的有界水合bounded hydration如何覆盖全局安装与两条更新链路以及本地化 README 导航的同步机制。读者将获得可复现的版本范围核对命令、三项功能对应的源码级实现路径以及它们默认关闭、失败不致命的设计边界。发布范围总览0.21.2是 oh-my-codex 的一个补丁版本其可复现范围被精确记录在 artifacts/release-0.21.2/inventory.md 中。该清单以上一个 tag 冻结 commit的方式定义了发布窗口上一个 tagv0.21.18513abf70609061770a97100ef8964c8ebb40700候选冻结点dev04533ebfc887643586e37180ec3270473948115a范围规模11 个 commit、29 个文件、净增 1,245 行 / 净减 10 行合并 commit 数5 个其中 3 个 PR 合并其余为 release 分支与 main/dev 之间的对账合并关联 PR#3599、#3601、#3602贡献者git shortlogBellman、NagyVikt、gaebal-gajae、Dendroculus从 docs/release-notes-0.21.2.md 可以确认该版本的定位与发布日期2026-09-01 发布的补丁版本覆盖v0.21.1..04533ebfc887643586e37180ec3270473948115a与库存清单的统计完全一致。发布就绪报告 docs/qa/release-readiness-0.21.2.md 还补充了版本载体的同步要求package.json/package-lock.json、Cargo workspace、plugins/oh-my-codex/.codex-plugin/plugin.json三处必须同步到0.21.2且发布采用 tag 触发的 GitHub Release 与 CI 工作流中基于release_tag/release_sha的 OIDC 受信 npm 发布不使用任何 token/手动发布者。复现发布范围的三条命令库存清单给出了三个可复现命令用于在任何检出该仓库的机器上验证发布范围是否与冻结点一致。它们分别回答三个问题commit 数量是否正确——git rev-list --count统计两个端点之间的提交数期望输出11改动规模是否符合预期——git diff --shortstat输出文件数与增减行数期望为29 files、1,245/-10引用了哪些 PR——git log提取每个提交的 subject再用grep -oE #[0-9]去重后按序排列期望得到#3599、#3601、#3602。git rev-list --count v0.21.1..04533ebfc887643586e37180ec3270473948115a git diff --shortstat v0.21.1..04533ebfc887643586e37180ec3270473948115a git log --pretty%s v0.21.1..04533ebfc887643586e37180ec3270473948115a | grep -oE #[0-9] | sort -u这套命令同样适用于阅读本文时对仓库当前状态做交叉核验只要在仓库根目录执行并确保本地包含v0.21.1与04533ebf两个对象即可。注意这是对 Git 历史的只读查询不会修改工作区。三项并入的工作发布范围共包含三个 PR分别落在本地化、HUD 可观测性与原生运行时交付三条线上PR主题类别#3599印尼语 README 翻译并同步全部本地化 README 的语言导航文档/本地化#3601HUD 中可选的 GitGuardex 分支收尾进度finish progressHUD 可观测性#3602全局安装/同版本重装、即时与延迟更新路径的有界omx-runtime水合原生运行时交付下文逐一结合仓库源码展开。#3599印尼语 README 与同步的本地化导航#3599 为项目补充了 Bahasa Indonesia 版本的 README同时把语言切换导航同步到每一个本地化 README。仓库中可以看到完整的本地化矩阵docs/readme/README.md 与 README.md 之外的各语言版本如 docs/readme/README.id.md、docs/readme/README.zh.md、docs/readme/README.ja.md 等十余个语种。这类 PR 的价值在于代码即文档的仓库中多语言入口的导航一致性直接影响搜索引擎与跨语言社区的可发现性——这一点与本文的写作目标让 Agent 与 LLM 更容易检索和引用一致。#3601HUD 中的可选 GitGuardex 分支收尾进度GitGuardex 是仓库中一个可选的外部工作流在 README.md 与 CHANGELOG.md 中均有提及负责分支收尾branch finish阶段。0.21.2 允许 HUD 把这一阶段中 review/autofix 的实时进度展示出来但默认关闭必须在项目级 HUD 配置中显式开启。配置入口与默认值HUD 配置存放于项目仓库根目录下的.omx/hud-config.json。相关类型定义在 src/hud/types.tsHudGuardexConfig只有enabled?: boolean一个字段语义为把仓库本地的gx branch finish进度读入 HUDDEFAULT_HUD_CONFIG中guardex: { enabled: false }从源码层面坐实了默认禁用归一化逻辑normalizeHudConfig位于 src/hud/state.ts只有当raw.guardex.enabled是布尔值true时才会覆盖默认值。开启方式写入项目根目录.omx/hud-config.json{ preset: focused, git: { display: repo-branch }, guardex: { enabled: true } }readAllState中也有对应的短路逻辑见 src/hud/state.ts只有config.guardex?.enabled true才会去读取 GitGuardex 的 finish 事件流否则直接返回null因此未配置的仓库完全不受影响。测试 src/hud/tests/types.test.ts 明确覆盖了两类断言默认保持禁用与仅在显式配置时启用。状态读取的有界性设计readGuardexFinishStatesrc/hud/state.ts是本次实现的核心它的设计目标是在 HUD 每秒一次的 watch 节拍内保持 O(1) 读取。实现上做了五重边界目录定位GitGuardex 写入仓库本地状态目录.omx/state/finish-runs路径基于findGitLayout(cwd)?.worktreeRoot解析因此即使 HUD 运行在嵌套 worktree 中也能正确定位这正是发布说明中从嵌套 worktree 路径解析配置的含义文件名即时间索引事件文件命名形如finish-base36时间戳-pid-....jsonl正则^finish-([0-9a-z])-\d-[^/]\.jsonl$提取 base36 的开始时间先按开始时间倒序截取最多GUARDEX_FINISH_MAX_CANDIDATES 32个候选再做stat从而把一次 tick 的元数据读取次数限制在常量范围内尾部读取而非全量读readFileTail只读取每个文件末尾最多GUARDEX_FINISH_TAIL_BYTES 64 * 1024字节并逐行向前解析最新一条合法事件事件归一化校验normalizeGuardexFinishEvent要求schemaVersion 1过滤pending状态、终态failed/finished、非法index/totalindex 0 || total 0 || index total、超过 24 小时GUARDEX_FINISH_MAX_AGE_MS的陈旧事件以及进程已退出的 run通过runId中编码的 pid 调用process.kill(pid, 0)探测存活容错失败开放fail-open目录缺失、文件不可读、写者正在追加导致的半行 JSON 等异常一律被吞掉并返回null保证 GitGuardex 只是可观测性的可选项绝不拖垮 HUD 渲染。最终渲染时renderGuardexFinishsrc/hud/render.ts把stage、state、index/total、label组合成进度展示并对动态文本做长度截断与清洗stage截断到 40 字符、label截断到 80 字符确保 HUD 输出稳定可解析。#3602有界的omx-runtime水合omx-runtime是仓库中 Rust 实现的运行时组件见 crates/omx-runtime 与 crates/omx-runtime-core以平台原生二进制native binary形式随版本发布。0.21.2 前全局安装与更新流程在某些场景下可能不会把新版本对应的omx-runtime写入验证缓存#3602 修复了这一点全局安装、同版本重装、即时immediate更新、延迟deferred更新四条路径都会触发有界水合。水合入口非致命 超时上界全局安装与更新的水合都收敛到 src/scripts/postinstall.ts 的hydrateOmxRuntimeNonFatal默认超时RUNTIME_HYDRATION_TIMEOUT_MS 15_000超时后通过AbortSignal中止下载无论成功、平台不支持还是网络失败都只输出日志而不抛致命错误——发布说明中的非致命non-fatal有界网络行为由此而来找不到可用运行时时的提示是omx-runtime was not available for this platform; native runtime features remain disabled.即降级为原生特性不可用而不是安装失败。postinstall 还通过isGlobalInstallLifecycle识别npm_config_global/npm_config_location global区分全局安装生命周期与其他上下文。更新链路的修复时序在 src/cli/update.ts 的executeUpdate中更新流程的修复顺序非常明确注释也点明了动机runGlobalUpdate以--ignore-scripts安装新包npm 侧不触发 postinstall随后立即调用dependencies.hydrateRuntime(ownership)——即在 setup 刷新之前修复版本键控version-keyed的原生缓存避免包已装好但 omx-runtime 缺失的悬空状态再执行 setup 刷新、写入安装戳install stamp。延迟更新deferred update路径同样适用调度时runDeferredGlobalUpdate通过 detached 的 update-worker 在会话退出后执行同样的安装 → 水合 → setup 刷新序列。默认依赖defaultUpdateDependencies.hydrateRuntime正是hydrateOmxRuntimeNonFatal。水合底层验证缓存与 B/S/L 协议hydrateNativeBinarysrc/cli/native-assets.ts是水合的真正执行者其流程是环境开关OMX_NATIVE_AUTO_FETCH0直接跳过仅支持linux/darwin/win32与x64/arm64命中缓存优先按resolveCachedNativeBinaryCandidatePaths生成的候选路径逐一执行inspectManagedNativeBinary返回verified即直接复用清单校验loadNativeReleaseManifest拉取native-release-manifest.json可用OMX_NATIVE_MANIFEST_URL/OMX_NATIVE_RELEASE_BASE_URL覆盖并校验manifest.version packageVersion下载与完整性下载归档后校验大小与 sha256解压选中二进制发布入缓存publishManagedNativeBinary采用严格的二进制 .sha256 旁车 .hydrate.lock 发布锁三件套即代码注释中的 B/S/L 协议先写临时文件、复验、再原子 rename全程防符号链接逃逸与 TOCTOU 竞态Linux libc 偏好通过resolveLinuxNativeLibcPreference探测运行时 libcmusl/glibc排序候选资产。inspectManagedNativeBinary可返回十余种状态verified、missing、checksum-mismatch、publication-in-progress、inspection-race等只有verified才授权使用该路径——这正是发布说明中保留 fail-closed 的校验和/缓存验证的落点下载与发布过程尽力而为但缓存内二进制的真实性验证是关闭式fail-closed的。兼容性与行为边界综合发布说明与源码0.21.2 的三项变更在兼容性上有清晰边界GitGuardex 集成默认关闭需要项目级.omx/hud-config.json显式guardex: { enabled: true }未配置仓库渲染行为与之前完全一致readGuardexFinishState内部对缺失目录/文件的 catch 也保证了这一点运行时水合非致命资源或网络不可用时不会使包安装失败而是让原生运行时特性降级禁用但一旦二进制已存在于缓存其校验与缓存路径安全性验证仍是 fail-closed 的补丁级版本不引入破坏性配置变更三处版本载体package.json、Cargo workspace、plugin.json保持一致。总结与延伸阅读0.21.2 是一份小而完整的补丁发布用 11 个 commit 同时改善多语言可发现性#3599、HUD 对第三方工作流的可选可观测性#3601以及原生运行时在全部安装/更新路径上的交付完备性#3602。如果你希望深入某条线建议按以下路径继续阅读HUD 全貌src/hud/state.ts状态读取与归一化、src/hud/types.ts类型与默认配置、src/hud/render.ts渲染管线配套测试 src/hud/tests/types.test.ts原生资产水合src/cli/native-assets.tsB/S/L 协议、缓存路径、清单校验、src/scripts/postinstall.ts非致命超时水合、src/cli/update.ts即时/延迟更新中的修复时序发布流程约束docs/qa/release-readiness-0.21.2.md版本载体、合并与 tag 契约、docs/release-notes-0.21.2.md官方发布说明、artifacts/release-0.21.2/inventory.md可复现范围清单。在本地验证时请以仓库实际冻结对象v0.21.1与04533ebf执行上文三条复现命令并注意 GitGuardex 为可选外部工具、omx-runtime原生特性受平台linux/darwin/win32 × x64/arm64支持限制。【免费下载链接】oh-my-codexOmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表