oh-my-opencode 4.19.2 → 4.19.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/.agents/command/get-unpublished-changes.md +2 -0
  2. package/.agents/command/omomomo.md +1 -1
  3. package/.agents/command/publish.md +102 -28
  4. package/.agents/skills/get-unpublished-changes/SKILL.md +2 -0
  5. package/.agents/skills/hyperplan/SKILL.md +3 -3
  6. package/.agents/skills/omomomo/SKILL.md +1 -1
  7. package/.agents/skills/publish/SKILL.md +27 -6
  8. package/.opencode/command/get-unpublished-changes.md +2 -0
  9. package/.opencode/command/omomomo.md +1 -1
  10. package/.opencode/command/publish.md +102 -28
  11. package/.opencode/skills/hyperplan/SKILL.md +3 -3
  12. package/THIRD-PARTY-NOTICES.md +7 -7
  13. package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
  14. package/dist/agents/sisyphus-runtime-prompt-reconciler.d.ts +1 -1
  15. package/dist/cli/config-migrate.d.ts +8 -0
  16. package/dist/cli/doctor/checks/deprecated-reasoning-keys.d.ts +2 -0
  17. package/dist/cli/doctor/checks/legacy-config-leftovers.d.ts +10 -0
  18. package/dist/cli/doctor/checks/model-resolution-config.d.ts +1 -1
  19. package/dist/cli/doctor/checks/tools-lsp.d.ts +1 -1
  20. package/dist/cli/doctor/framework/constants.d.ts +1 -1
  21. package/dist/cli/index.js +95684 -92814
  22. package/dist/cli-node/index.js +95650 -92780
  23. package/dist/config/schema/agent-overrides.d.ts +800 -0
  24. package/dist/config/schema/categories.d.ts +132 -0
  25. package/dist/config/schema/fallback-models.d.ts +50 -0
  26. package/dist/config/schema/oh-my-opencode-config.d.ts +818 -2
  27. package/dist/config/validate.d.ts +2 -1
  28. package/dist/config-migration/deep-diff.d.ts +1 -0
  29. package/dist/config-migration/discovery-paths.d.ts +11 -0
  30. package/dist/config-migration/discovery-roots.d.ts +7 -0
  31. package/dist/config-migration/discovery.d.ts +4 -0
  32. package/dist/config-migration/index.d.ts +10 -0
  33. package/dist/config-migration/legacy-history.d.ts +3 -0
  34. package/dist/config-migration/migration-executor.d.ts +4 -0
  35. package/dist/config-migration/migration-plans.d.ts +15 -0
  36. package/dist/config-migration/reasoning-unification.d.ts +3 -0
  37. package/dist/config-migration/record-values.d.ts +4 -0
  38. package/dist/config-migration/schema-url.d.ts +1 -0
  39. package/dist/config-migration/transform-config-jsonc.d.ts +2 -0
  40. package/dist/config-migration/transform-opencode.d.ts +2 -0
  41. package/dist/config-migration/transform-types.d.ts +24 -0
  42. package/dist/config-migration/types.d.ts +39 -0
  43. package/dist/features/builtin-commands/templates/hyperplan.d.ts +1 -1
  44. package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +2 -0
  45. package/dist/hooks/auto-update-checker/constants.d.ts +3 -3
  46. package/dist/hooks/codegraph-bootstrap/command-runner.d.ts +1 -0
  47. package/dist/hooks/model-fallback/next-fallback.d.ts +1 -0
  48. package/dist/hooks/runtime-fallback/constants.d.ts +1 -1
  49. package/dist/index.js +12368 -9788
  50. package/dist/oh-my-opencode.schema.json +1672 -8
  51. package/dist/plugin-config/omo-config-chain.d.ts +14 -0
  52. package/dist/plugin-config/unknown-key-diagnostics.d.ts +5 -0
  53. package/dist/plugin-config.d.ts +2 -2
  54. package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +1 -0
  55. package/dist/shared/agent-display-names.d.ts +1 -1
  56. package/dist/shared/agent-variant.d.ts +11 -0
  57. package/dist/shared/jsonc-parser.d.ts +1 -1
  58. package/dist/shared/migration.d.ts +5 -1
  59. package/dist/shared/opencode-config-dir-types.d.ts +0 -1
  60. package/dist/shared/plugin-identity.d.ts +6 -8
  61. package/dist/shared/project-discovery-dirs.d.ts +0 -1
  62. package/dist/shared/session-prompt-params-helpers.d.ts +6 -1
  63. package/dist/skills/coding-agent-sessions/SKILL.md +4 -3
  64. package/dist/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  65. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
  66. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
  67. package/dist/skills/data-scientist/SKILL.md +243 -0
  68. package/dist/skills/data-scientist/references/common-scenarios.md +176 -0
  69. package/dist/skills/data-scientist/references/execution-templates.md +197 -0
  70. package/dist/skills/data-scientist/references/integration-patterns.md +153 -0
  71. package/dist/skills/data-scientist/references/performance-benchmarks.md +37 -0
  72. package/dist/skills/data-scientist/references/uv-setup.md +78 -0
  73. package/dist/skills/data-scientist/scripts/quick-query.py +111 -0
  74. package/dist/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
  75. package/dist/skills/data-scientist/scripts/setup-uv.sh +60 -0
  76. package/dist/skills/debugging/SKILL.md +1 -1
  77. package/dist/skills/frontend/ATTRIBUTION.md +7 -0
  78. package/dist/skills/frontend/SKILL.md +4 -1
  79. package/dist/skills/frontend/references/design/README.md +8 -0
  80. package/dist/skills/frontend/references/design/_INDEX.md +14 -1
  81. package/dist/skills/frontend/references/design/interaction-skill.md +144 -0
  82. package/dist/skills/programming/SKILL.md +1 -2
  83. package/dist/skills/ulw-plan/SKILL.md +1 -1
  84. package/dist/skills/ulw-research/SKILL.md +122 -11
  85. package/dist/startup-migration.d.ts +28 -0
  86. package/dist/testing/create-plugin-module.d.ts +4 -0
  87. package/dist/tools/delegate-task/builtin-categories.d.ts +1 -0
  88. package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
  89. package/dist/tools/delegate-task/constants.d.ts +1 -1
  90. package/dist/tui.js +6040 -5443
  91. package/package.json +13 -13
  92. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +21 -5
  93. package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +11 -2
  94. package/packages/omo-codex/THIRD-PARTY-NOTICES.md +2 -2
  95. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  96. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +21 -3
  97. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  98. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  99. package/packages/omo-codex/plugin/components/codegraph/AGENTS.md +11 -5
  100. package/packages/omo-codex/plugin/components/codegraph/NOTICE +1 -1
  101. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +10373 -2570
  102. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +7502 -574
  103. package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
  104. package/packages/omo-codex/plugin/components/codegraph/src/hook-input.ts +33 -0
  105. package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +36 -10
  106. package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +164 -159
  107. package/packages/omo-codex/plugin/components/codegraph/src/post-tool-use-hook.ts +34 -0
  108. package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +20 -2
  109. package/packages/omo-codex/plugin/components/codegraph/src/session-start-command.ts +106 -0
  110. package/packages/omo-codex/plugin/components/codegraph/src/session-start-cooldown.ts +145 -0
  111. package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +21 -0
  112. package/packages/omo-codex/plugin/components/codegraph/src/session-start-lock.ts +139 -0
  113. package/packages/omo-codex/plugin/components/codegraph/src/session-start-outcome.ts +15 -0
  114. package/packages/omo-codex/plugin/components/codegraph/src/session-start-paths.ts +32 -0
  115. package/packages/omo-codex/plugin/components/codegraph/src/session-start-project.ts +109 -0
  116. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker-result.ts +148 -0
  117. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +126 -175
  118. package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +4 -4
  119. package/packages/omo-codex/plugin/components/codegraph/test/hook-session-start-guard.test.ts +160 -0
  120. package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +12 -138
  121. package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +34 -24
  122. package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +3 -3
  123. package/packages/omo-codex/plugin/components/codegraph/test/package-runtime.test.ts +2 -2
  124. package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +5 -5
  125. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +3 -3
  126. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +1 -1
  127. package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +45 -0
  128. package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +2 -2
  129. package/packages/omo-codex/plugin/components/codegraph/test/session-start-node-support.test.ts +70 -13
  130. package/packages/omo-codex/plugin/components/codegraph/test/session-start-project.test.ts +58 -0
  131. package/packages/omo-codex/plugin/components/codegraph/test/session-start-state.test.ts +104 -0
  132. package/packages/omo-codex/plugin/components/codegraph/test/session-start-trust-boundary.test.ts +4 -2
  133. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-cooldown.test.ts +116 -0
  134. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +58 -57
  135. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  136. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  137. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  138. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  139. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  140. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  141. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  142. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  143. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  144. package/packages/omo-codex/plugin/components/rules/dist/cli.js +32 -15
  145. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  146. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  147. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +1 -1
  148. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  149. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  150. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  151. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  152. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  153. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  154. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  155. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  156. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +1 -1
  157. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  158. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  159. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +17 -0
  160. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  161. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  162. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  163. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  164. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  165. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  166. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  167. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  168. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  169. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  170. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  171. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  172. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  173. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  174. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  175. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  176. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  177. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  178. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  179. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  180. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  181. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  182. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  183. package/packages/omo-codex/plugin/package-lock.json +42 -41
  184. package/packages/omo-codex/plugin/package.json +1 -1
  185. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +6 -0
  186. package/packages/omo-codex/plugin/shared/src/config-loader.ts +165 -16
  187. package/packages/omo-codex/plugin/shared/src/config-migration.ts +162 -0
  188. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +186 -9
  189. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +4 -3
  190. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  191. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
  192. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
  193. package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +243 -0
  194. package/packages/omo-codex/plugin/skills/data-scientist/agents/openai.yaml +2 -0
  195. package/packages/omo-codex/plugin/skills/data-scientist/references/common-scenarios.md +176 -0
  196. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-templates.md +197 -0
  197. package/packages/omo-codex/plugin/skills/data-scientist/references/integration-patterns.md +153 -0
  198. package/packages/omo-codex/plugin/skills/data-scientist/references/performance-benchmarks.md +37 -0
  199. package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +78 -0
  200. package/packages/omo-codex/plugin/skills/data-scientist/scripts/quick-query.py +111 -0
  201. package/packages/omo-codex/plugin/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
  202. package/packages/omo-codex/plugin/skills/data-scientist/scripts/setup-uv.sh +60 -0
  203. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
  204. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +7 -0
  205. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +4 -1
  206. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +8 -0
  207. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +14 -1
  208. package/packages/omo-codex/plugin/skills/frontend/references/design/interaction-skill.md +144 -0
  209. package/packages/omo-codex/plugin/skills/programming/SKILL.md +1 -2
  210. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +17 -0
  211. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
  212. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +121 -11
  213. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +7 -0
  214. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +12 -0
  215. package/packages/omo-codex/scripts/install-dist/install-local.mjs +24 -5
  216. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +4 -3
  217. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +3 -1
  218. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
  219. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
  220. package/packages/shared-skills/skills/data-scientist/SKILL.md +243 -0
  221. package/packages/shared-skills/skills/data-scientist/references/common-scenarios.md +176 -0
  222. package/packages/shared-skills/skills/data-scientist/references/execution-templates.md +197 -0
  223. package/packages/shared-skills/skills/data-scientist/references/integration-patterns.md +153 -0
  224. package/packages/shared-skills/skills/data-scientist/references/performance-benchmarks.md +37 -0
  225. package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +78 -0
  226. package/packages/shared-skills/skills/data-scientist/scripts/quick-query.py +111 -0
  227. package/packages/shared-skills/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
  228. package/packages/shared-skills/skills/data-scientist/scripts/setup-uv.sh +60 -0
  229. package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
  230. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +7 -0
  231. package/packages/shared-skills/skills/frontend/SKILL.md +4 -1
  232. package/packages/shared-skills/skills/frontend/references/design/README.md +8 -0
  233. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +14 -1
  234. package/packages/shared-skills/skills/frontend/references/design/interaction-skill.md +144 -0
  235. package/packages/shared-skills/skills/programming/SKILL.md +1 -2
  236. package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
  237. package/packages/shared-skills/skills/ulw-research/SKILL.md +122 -11
  238. package/dist/plugin-config/layered-config-loader.d.ts +0 -2
  239. package/dist/plugin-config/single-config-loader.d.ts +0 -4
  240. package/dist/shared/migrate-legacy-config-file.d.ts +0 -1
  241. package/dist/shared/migration/config-migration.d.ts +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "4.19.2",
3
+ "version": "4.19.4",
4
4
  "description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -212,18 +212,18 @@
212
212
  "typescript": "^7.0.2"
213
213
  },
214
214
  "optionalDependencies": {
215
- "oh-my-opencode-darwin-arm64": "4.19.2",
216
- "oh-my-opencode-darwin-x64": "4.19.2",
217
- "oh-my-opencode-darwin-x64-baseline": "4.19.2",
218
- "oh-my-opencode-linux-arm64": "4.19.2",
219
- "oh-my-opencode-linux-arm64-musl": "4.19.2",
220
- "oh-my-opencode-linux-x64": "4.19.2",
221
- "oh-my-opencode-linux-x64-baseline": "4.19.2",
222
- "oh-my-opencode-linux-x64-musl": "4.19.2",
223
- "oh-my-opencode-linux-x64-musl-baseline": "4.19.2",
224
- "oh-my-opencode-windows-arm64": "4.19.2",
225
- "oh-my-opencode-windows-x64": "4.19.2",
226
- "oh-my-opencode-windows-x64-baseline": "4.19.2"
215
+ "oh-my-opencode-darwin-arm64": "4.19.4",
216
+ "oh-my-opencode-darwin-x64": "4.19.4",
217
+ "oh-my-opencode-darwin-x64-baseline": "4.19.4",
218
+ "oh-my-opencode-linux-arm64": "4.19.4",
219
+ "oh-my-opencode-linux-arm64-musl": "4.19.4",
220
+ "oh-my-opencode-linux-x64": "4.19.4",
221
+ "oh-my-opencode-linux-x64-baseline": "4.19.4",
222
+ "oh-my-opencode-linux-x64-musl": "4.19.4",
223
+ "oh-my-opencode-linux-x64-musl-baseline": "4.19.4",
224
+ "oh-my-opencode-windows-arm64": "4.19.4",
225
+ "oh-my-opencode-windows-x64": "4.19.4",
226
+ "oh-my-opencode-windows-x64-baseline": "4.19.4"
227
227
  },
228
228
  "overrides": {
229
229
  "@earendil-works/pi-agent-core": "0.80.3",
@@ -51,21 +51,23 @@ describe("LspClient diagnostics freshness", () => {
51
51
  {
52
52
  trigger: "didChange",
53
53
  diagnostics: [diagnostic("post-generation-versionless")],
54
+ awaitClientDelivery: true,
54
55
  },
55
56
  ],
56
57
  },
57
58
  { diagnosticsFreshnessTimeoutMs: 80, versionlessPublishQuiescenceMs: 20 },
58
59
  );
59
60
  await context.client.openFile(context.source);
60
- await waitForEventCount(
61
+ const versionlessDelivery = waitForEventCount(
61
62
  context.events,
62
- (event) => event.type === "serverNotification" && event.method === "textDocument/publishDiagnostics",
63
+ (event) => event.type === "clientResponse" && event.method === "workspace/configuration",
63
64
  1,
64
65
  );
66
+ const startedAt = Date.now();
65
67
  writeFileSync(context.source, "const after = 1;\n", "utf-8");
66
68
  await context.client.openFile(context.source);
69
+ expect(await versionlessDelivery).toHaveLength(1);
67
70
 
68
- const startedAt = Date.now();
69
71
  const result = await context.client.diagnostics(context.source);
70
72
  const elapsedMs = Date.now() - startedAt;
71
73
 
@@ -104,14 +106,21 @@ describe("LspClient diagnostics freshness", () => {
104
106
  trigger: "didChange",
105
107
  version: 1,
106
108
  diagnostics: [diagnostic("stale")],
109
+ awaitClientDelivery: true,
107
110
  },
108
111
  ],
109
112
  },
110
113
  { diagnosticsFreshnessTimeoutMs: 100, versionlessPublishQuiescenceMs: 5 },
111
114
  );
112
115
  await stale.client.openFile(stale.source);
116
+ const staleDelivery = waitForEventCount(
117
+ stale.events,
118
+ (event) => event.type === "clientResponse" && event.method === "workspace/configuration",
119
+ 1,
120
+ );
113
121
  writeFileSync(stale.source, "const stale = 1;\n", "utf-8");
114
122
  await stale.client.openFile(stale.source);
123
+ expect(await staleDelivery).toHaveLength(1);
115
124
 
116
125
  const staleResult = await stale.client.diagnostics(stale.source);
117
126
 
@@ -127,14 +136,21 @@ describe("LspClient diagnostics freshness", () => {
127
136
  trigger: "didChange",
128
137
  version: 3,
129
138
  diagnostics: [diagnostic("future")],
139
+ awaitClientDelivery: true,
130
140
  },
131
141
  ],
132
142
  },
133
143
  { diagnosticsFreshnessTimeoutMs: 100, versionlessPublishQuiescenceMs: 5 },
134
144
  );
135
145
  await future.client.openFile(future.source);
146
+ const futureDelivery = waitForEventCount(
147
+ future.events,
148
+ (event) => event.type === "clientResponse" && event.method === "workspace/configuration",
149
+ 1,
150
+ );
136
151
  writeFileSync(future.source, "const future = 1;\n", "utf-8");
137
152
  await future.client.openFile(future.source);
153
+ expect(await futureDelivery).toHaveLength(1);
138
154
 
139
155
  const futureResult = await future.client.diagnostics(future.source);
140
156
 
@@ -284,7 +300,7 @@ describe("LspClient diagnostics freshness", () => {
284
300
  { error: { code: -32601, message: "Method not found" } },
285
301
  ],
286
302
  },
287
- { diagnosticsFreshnessTimeoutMs: 60, versionlessPublishQuiescenceMs: 5 },
303
+ { diagnosticsFreshnessTimeoutMs: 500, versionlessPublishQuiescenceMs: 5 },
288
304
  );
289
305
 
290
306
  const first = await context.client.diagnostics(context.source);
@@ -307,7 +323,7 @@ describe("LspClient diagnostics freshness", () => {
307
323
  { error: { code: -32601, message: "Method not found" } },
308
324
  ],
309
325
  },
310
- { diagnosticsFreshnessTimeoutMs: 60, versionlessPublishQuiescenceMs: 5 },
326
+ { diagnosticsFreshnessTimeoutMs: 500, versionlessPublishQuiescenceMs: 5 },
311
327
  );
312
328
 
313
329
  const first = await context.client.diagnostics(context.source);
@@ -51,6 +51,14 @@ function finishRename(context) {
51
51
  }, delay);
52
52
  }
53
53
 
54
+ function sendPublishDeliveryBarrier() {
55
+ const id = nextServerRequestId;
56
+ nextServerRequestId += 1;
57
+ pendingServerRequests.set(String(id), { kind: "publishDeliveryBarrier", method: "workspace/configuration" });
58
+ record({ type: "serverRequest", method: "workspace/configuration", id });
59
+ send({ jsonrpc: "2.0", id, method: "workspace/configuration", params: { items: [] } });
60
+ }
61
+
54
62
  function schedulePublish(step, fallbackUri, fallbackVersion) {
55
63
  const delay = Number(step.delayMs ?? 0);
56
64
  setTimeout(() => {
@@ -61,6 +69,7 @@ function schedulePublish(step, fallbackUri, fallbackVersion) {
61
69
  };
62
70
  record({ type: "serverNotification", method: "textDocument/publishDiagnostics", params });
63
71
  send({ jsonrpc: "2.0", method: "textDocument/publishDiagnostics", params });
72
+ if (step.awaitClientDelivery === true) sendPublishDeliveryBarrier();
64
73
  }, delay);
65
74
  }
66
75
 
@@ -79,11 +88,11 @@ function handleClientResponse(message) {
79
88
  pendingServerRequests.delete(String(message.id));
80
89
  record({
81
90
  type: "clientResponse",
82
- method: "workspace/applyEdit",
91
+ method: context.method ?? "workspace/applyEdit",
83
92
  result: message.result ?? null,
84
93
  error: message.error ?? null,
85
94
  });
86
- if (context.kind === "unscoped") return;
95
+ if (context.kind === "publishDeliveryBarrier" || context.kind === "unscoped") return;
87
96
  if (typeof context.pendingApplyResponses === "number") {
88
97
  context.pendingApplyResponses -= 1;
89
98
  if (context.pendingApplyResponses > 0) return;
@@ -7,13 +7,13 @@ payloads, and component NOTICE files.
7
7
 
8
8
  ## Components
9
9
 
10
- ### @colbymchenry/codegraph@1.0.1
10
+ ### @colbymchenry/codegraph@1.5.0
11
11
  - License: MIT, from npm package metadata and root third-party notice inspection.
12
12
  - Copyright: CodeGraph contributors.
13
13
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph
14
14
  - Where-bundled: optional runtime dependency of `plugin/components/codegraph`.
15
15
 
16
- ### @colbymchenry/codegraph platform bundles@1.0.1
16
+ ### @colbymchenry/codegraph platform bundles@1.5.0
17
17
  - License: MIT for CodeGraph package metadata; bundled payloads also include a Node.js v24.16.0 runtime and vendored JavaScript/WASM dependencies. The Codex CodeGraph component ships the Node.js runtime license and bundled third-party license text at `plugin/components/codegraph/NODE-RUNTIME-LICENSES.md`.
18
18
  - Copyright: CodeGraph contributors, Node.js contributors, and bundled dependency contributors.
19
19
  - Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "4.19.2",
3
+ "version": "4.19.4",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -1420,7 +1420,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
1420
1420
  "explorer",
1421
1421
  [
1422
1422
  {
1423
- previous: { model: "gpt-5.4-mini", effort: "low" },
1423
+ previous: { model: "gpt-5.6-luna-fast", effort: "low" },
1424
1424
  current: { model: "gpt-5.6-terra", effort: "medium" }
1425
1425
  },
1426
1426
  {
@@ -1433,7 +1433,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
1433
1433
  "librarian",
1434
1434
  [
1435
1435
  {
1436
- previous: { model: "gpt-5.4-mini", effort: "low" },
1436
+ previous: { model: "gpt-5.6-luna-fast", effort: "low" },
1437
1437
  current: { model: "gpt-5.6-terra", effort: "medium" }
1438
1438
  },
1439
1439
  {
@@ -2826,6 +2826,24 @@ function stripUnquotedInlineComment3(line) {
2826
2826
 
2827
2827
  // ../src/install/codex-config-reasoning.ts
2828
2828
  var MANAGED_KEYS = ["model", "model_context_window", "model_reasoning_effort", "plan_mode_reasoning_effort"];
2829
+ var CODEX_REASONING_BY_UNIFIED_LEVEL = {
2830
+ off: "none",
2831
+ none: "none",
2832
+ minimal: "minimal",
2833
+ low: "low",
2834
+ medium: "medium",
2835
+ high: "high",
2836
+ xhigh: "xhigh",
2837
+ max: "max"
2838
+ };
2839
+ function applyReasoningOverride(catalog, reasoning) {
2840
+ if (reasoning === undefined)
2841
+ return catalog;
2842
+ const wireEffort = CODEX_REASONING_BY_UNIFIED_LEVEL[reasoning.trim().toLowerCase()];
2843
+ if (wireEffort === undefined)
2844
+ return catalog;
2845
+ return { ...catalog, current: { ...catalog.current, modelReasoningEffort: wireEffort } };
2846
+ }
2829
2847
  function ensureCodexReasoningConfig(config, catalog) {
2830
2848
  const current = readRootReasoningSettings(config);
2831
2849
  if (Object.keys(current).length > 0 && !matchesProfile(current, catalog.current) && !catalog.managedProfiles.some((profile) => matchesProfile(current, profile))) {
@@ -3166,7 +3184,7 @@ async function updateCodexConfig(input) {
3166
3184
  config = ensureFeatureEnabled(config, "plugin_hooks");
3167
3185
  config = ensureFeatureEnabled(config, "multi_agent");
3168
3186
  config = removeUnsupportedCodexMultiAgentModeConfig(config);
3169
- config = ensureCodexReasoningConfig(config, await readCodexModelCatalog(input.repoRoot));
3187
+ config = ensureCodexReasoningConfig(config, applyReasoningOverride(await readCodexModelCatalog(input.repoRoot), input.reasoning));
3170
3188
  config = ensureCodexMultiAgentV2Config(config, {
3171
3189
  multiAgentVersion: resolveCodexMultiAgentVersion(config, input.configPath)
3172
3190
  });
@@ -8,7 +8,7 @@
8
8
  "command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
9
9
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 4.19.2) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 4.19.4) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "4.19.2",
3
+ "version": "4.19.4",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## OVERVIEW
6
6
 
7
- `@sisyphuslabs/codex-codegraph` (private, Node >=20, bin `omo-codegraph`). Wraps the external CodeGraph CLI (`@colbymchenry/codegraph`, pinned `1.0.1` as optionalDependency + `CODEGRAPH_VERSION` constant) behind a stdio MCP server plus Codex lifecycle hooks. Two committed dists ship in the published payload; rebuild `dist/` in the same change as `src/` edits.
7
+ `@sisyphuslabs/codex-codegraph` (private, Node >=20, bin `omo-codegraph`). Wraps the external CodeGraph CLI (`@colbymchenry/codegraph`, pinned `1.5.0` through the shared `CODEGRAPH_PINNED_VERSION` and the component optionalDependency) behind a stdio MCP server plus Codex lifecycle hooks. Two committed dists ship in the published payload; rebuild `dist/` in the same change as `src/` edits.
8
8
 
9
9
  Codex wiring (all repo-relative to `packages/omo-codex/plugin/`):
10
10
  - **MCP:** `.mcp.json` server `codegraph` → `node components/codegraph/dist/serve.js` (`required: false`).
@@ -14,7 +14,7 @@ Codex wiring (all repo-relative to `packages/omo-codex/plugin/`):
14
14
 
15
15
  Serve pipeline (`src/serve.ts`): OMO SOT config gate (`[codex].codegraph.enabled=false` → unavailable stub) → resolve binary (`OMO_CODEGRAPH_BIN` env → bundled → provisioned `~/.omo/codegraph/bin` → PATH) → Node support gate (major 20-24; >=25 crashes CodeGraph mid-indexing; `CODEGRAPH_ALLOW_UNSAFE_NODE=1` overrides) → auto-provision into `~/.omo/codegraph` unless `codegraph.auto_provision=false` → bridge JSON-RPC to `codegraph serve --mcp`. Project cwd resolved from `OMO_CODEGRAPH_PROJECT_CWD` → `OMO_CODEGRAPH_SESSION_START_CWD` → `PWD` → wrapper cwd. When the binary is missing/disabled, `mcp-unavailable.ts` still answers `initialize`/`tools/*` with the skip reason so Codex startup never fails.
16
16
 
17
- Hook pipeline (`src/hook.ts` + `src/session-start-worker.ts`): `hook session-start` probes `status --json` (2s timeout); uninitialized project spawns a detached `hook session-start-worker` (prepare workspace + gitignore `status --json` `init` or `sync`, 60s per command) and emits a SessionStart `additionalContext` notice. Worker outcomes append to `~/.omo/codegraph/session-start.jsonl`. `hook post-tool-use` emits init guidance when a codegraph tool result indicates an uninitialized project. `cli.js` with no hook subcommand falls through to serve.
17
+ Hook pipeline (`src/hook.ts` + `src/session-start-*.ts`): `hook session-start` checks only the exact filesystem marker `<projectRoot>/.codegraph/codegraph.db`; it never invokes the upstream CLI for status. An exact database skips as initialized, an ancestor database records `skipped-nested-root`, and only a definitive no-database result may acquire the per-project atomic lock and spawn `hook session-start-worker`. Live locks record `skipped-locked`; stale locks recover into an exponential cooldown instead of spawning immediately. Worker failures and skips persist a cooldown stamp (15 minutes by default, doubling to a 24-hour cap; configurable with Codex-only `codegraph.session_start_cooldown_ms`, minimum 60000), while success clears it. The worker prepares the workspace, invokes only `codegraph init` with a 60-second tree timeout, and records success only after the exact project database appears. Hook suppressions and worker outcomes append to `~/.omo/codegraph/session-start.jsonl`. `hook post-tool-use` emits init guidance when a codegraph tool result indicates an uninitialized project. `cli.js` with no hook subcommand falls through to serve.
18
18
 
19
19
  ## includeCode CONTRACT (commit 4cf383c5b)
20
20
 
@@ -26,8 +26,14 @@ Hook pipeline (`src/hook.ts` + `src/session-start-worker.ts`): `hook session-sta
26
26
  |------|---------|
27
27
  | `src/serve.ts` | MCP entry: config/resolution/Node gates, provisioning, bridge or unavailable stub |
28
28
  | `src/cli.ts` | Hook CLI router: `hook session-start` / `hook post-tool-use` / `hook session-start-worker` / serve fallback |
29
- | `src/hook.ts` | SessionStart probe + detached worker spawn, PostToolUse guidance emission |
30
- | `src/session-start-worker.ts` | Background bootstrap: provision → workspace prep → `init`/`sync`, jsonl outcome log |
29
+ | `src/hook.ts` | SessionStart exact-root decision pipeline + detached worker spawn |
30
+ | `src/post-tool-use-hook.ts` | PostToolUse init guidance emission |
31
+ | `src/session-start-project.ts` | Exact database and ancestor-coverage filesystem probes |
32
+ | `src/session-start-lock.ts` | Atomic per-project worker lock + stale recovery |
33
+ | `src/session-start-cooldown.ts` | Persistent exponential failure cooldown state |
34
+ | `src/session-start-worker.ts` | Background bootstrap orchestration and lock lifecycle |
35
+ | `src/session-start-command.ts` | Provision/resolve + bounded `codegraph init` invocation |
36
+ | `src/session-start-outcome.ts` | `session-start.jsonl` outcome writer |
31
37
  | `src/mcp-bridge.ts` | Stdio JSON-RPC forwarder; per-request framed/line response-mode tracking; codegraph_node contract rewrites; awaits stdio writes and SIGKILLs the child on response-forwarding failure |
32
38
  | `src/mcp-unavailable.ts` | Reason-bearing stub MCP server for disabled/missing binary |
33
39
  | `src/serve-invocation.ts` | win32 invocation shim: `.cmd`/`.bat` via `cmd.exe /d /s /c`, `.js`/`.mjs`/`.cjs` via `process.execPath` (mirrored by `resolveCodegraphCommandInvocation` in session-start-worker) |
@@ -46,7 +52,7 @@ Hook pipeline (`src/hook.ts` + `src/session-start-worker.ts`): `hook session-sta
46
52
 
47
53
  - This component tests with `bun test` (unlike the vitest-based `lsp` sibling); given/when/then style.
48
54
  - `src/` imports reach sibling packages via relative paths (`../../../../../utils/src/...`); they are inlined by `bun build`, so runtime `dist/` has zero deps beyond Node.
49
- - `CODEGRAPH_VERSION` is duplicated in `serve.ts` and `session-start-worker.ts` and must match the `@colbymchenry/codegraph` optionalDependency version.
55
+ - `serve.ts` and SessionStart command provisioning derive their version from the shared `CODEGRAPH_PINNED_VERSION`; the component optionalDependency must match that pin.
50
56
  - `trustedCodegraphInstallDir` overrides the `~/.omo/codegraph` install dir and is forwarded to children as `CODEGRAPH_INSTALL_DIR`.
51
57
  - `resolution.source === "env"` is never auto-provisioned over: a user-set `OMO_CODEGRAPH_BIN` pointing at a missing file skips the MCP instead of silently substituting a download.
52
58
  - `runBridgedCodegraphProcess` awaits every stdio write and races `childExit` against response forwarding; a forwarding error (e.g. parent stdout `EPIPE`) rejects the serve promise, destroys the child pipes, and `SIGKILL`s the codegraph child if still alive so a held-open child is never orphaned. Pinned by `test/serve-mcp-bridge-lifecycle.test.ts` and the held-open case in `test/serve-mcp-bridge.test.ts`.
@@ -1,6 +1,6 @@
1
1
  codex-codegraph adapts the CodeGraph MCP runtime for the Codex plugin surface.
2
2
 
3
- This component optionally installs @colbymchenry/codegraph@1.0.1. That package
3
+ This component optionally installs @colbymchenry/codegraph@1.5.0. That package
4
4
  selects platform bundles for darwin, linux, and win32 on arm64 and x64. The
5
5
  CodeGraph packages declare MIT license metadata.
6
6