oh-my-opencode 5.0.0-beta.50 → 5.0.0-beta.51

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 (58) hide show
  1. package/dist/cli/index.js +37 -22
  2. package/dist/cli-node/index.js +37 -22
  3. package/dist/index.js +14 -14
  4. package/package.json +14 -14
  5. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  6. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +5 -1
  7. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  8. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  9. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  10. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  11. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  12. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  13. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  14. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  15. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  16. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  17. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  18. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  19. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  20. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  21. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  22. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  23. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +11 -5
  29. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +11 -5
  30. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  31. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  32. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +10 -5
  33. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +21 -1
  34. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  35. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  36. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  37. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  55. package/packages/omo-codex/plugin/package-lock.json +12 -12
  56. package/packages/omo-codex/plugin/package.json +1 -1
  57. package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +1 -0
  58. package/packages/omo-codex/scripts/install-dist/install-local.mjs +9 -5
package/dist/cli/index.js CHANGED
@@ -64,7 +64,7 @@ var package_default;
64
64
  var init_package = __esm(() => {
65
65
  package_default = {
66
66
  name: "oh-my-opencode",
67
- version: "5.0.0-beta.50",
67
+ version: "5.0.0-beta.51",
68
68
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
69
69
  main: "./dist/index.js",
70
70
  types: "dist/index.d.ts",
@@ -248,7 +248,7 @@ var init_package = __esm(() => {
248
248
  zod: "^4.4.3"
249
249
  },
250
250
  devDependencies: {
251
- "@code-yeongyu/senpi": "2026.9.9",
251
+ "@code-yeongyu/senpi": "2026.9.9-2",
252
252
  "@oh-my-opencode/agents-md-core": "workspace:*",
253
253
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
254
254
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -289,18 +289,18 @@ var init_package = __esm(() => {
289
289
  typescript: "^7.0.2"
290
290
  },
291
291
  optionalDependencies: {
292
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.50",
293
- "oh-my-opencode-darwin-x64": "5.0.0-beta.50",
294
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.50",
295
- "oh-my-opencode-linux-arm64": "5.0.0-beta.50",
296
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.50",
297
- "oh-my-opencode-linux-x64": "5.0.0-beta.50",
298
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.50",
299
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.50",
300
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.50",
301
- "oh-my-opencode-windows-arm64": "5.0.0-beta.50",
302
- "oh-my-opencode-windows-x64": "5.0.0-beta.50",
303
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.50"
292
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.51",
293
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.51",
294
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.51",
295
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.51",
296
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.51",
297
+ "oh-my-opencode-linux-x64": "5.0.0-beta.51",
298
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.51",
299
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.51",
300
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.51",
301
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.51",
302
+ "oh-my-opencode-windows-x64": "5.0.0-beta.51",
303
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.51"
304
304
  },
305
305
  overrides: {
306
306
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -84439,7 +84439,7 @@ var package_default2;
84439
84439
  var init_package2 = __esm(() => {
84440
84440
  package_default2 = {
84441
84441
  name: "@oh-my-opencode/omo-codex",
84442
- version: "5.0.0-beta.50",
84442
+ version: "5.0.0-beta.51",
84443
84443
  type: "module",
84444
84444
  private: true,
84445
84445
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -90436,7 +90436,7 @@ var CODEX_AGENTS_HEADER = "agents";
90436
90436
  var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
90437
90437
  function ensureCodexMultiAgentV2Config(config, options = {}) {
90438
90438
  const featureFlag = removeFeatureFlagSetting(config, "multi_agent_v2");
90439
- const v2Preferred = options.multiAgentVersion === "v2";
90439
+ const v2Preferred = options.multiAgentVersion === "v2" || isMultiAgentV2Enabled(featureFlag.config);
90440
90440
  const agentsConfig = removeAgentsMaxThreads(featureFlag.config, v2Preferred);
90441
90441
  const preserveDisable = featureFlag.value === false && !v2Preferred;
90442
90442
  const featureConfig = preserveDisable ? setMultiAgentV2Disable(agentsConfig) : v2Preferred ? removeMultiAgentV2Disable(agentsConfig) : agentsConfig;
@@ -90515,6 +90515,10 @@ function removeFeatureFlagSetting(config, featureName) {
90515
90515
  value: readBooleanSetting(section.text, featureName)
90516
90516
  };
90517
90517
  }
90518
+ function isMultiAgentV2Enabled(config) {
90519
+ const section = findTomlSection(config, CODEX_MULTI_AGENT_V2_HEADER);
90520
+ return section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#.*)?$/m.test(section.text);
90521
+ }
90518
90522
  function removeAgentsMaxThreads(config, v2Preferred) {
90519
90523
  const section = findTomlSection(config, CODEX_AGENTS_HEADER);
90520
90524
  if (!section)
@@ -91677,7 +91681,7 @@ function lastValue(values) {
91677
91681
  return values.length > 0 ? values[values.length - 1] ?? null : null;
91678
91682
  }
91679
91683
  function repairProjectLocalCodexConfigText(config) {
91680
- if (!isMultiAgentV2Enabled(config))
91684
+ if (!isMultiAgentV2Enabled2(config))
91681
91685
  return { config, changed: false, removedKeys: [] };
91682
91686
  let nextConfig = config;
91683
91687
  const removedKeys = [];
@@ -91767,7 +91771,7 @@ async function collectProjectLocalArtifacts(projectRoots) {
91767
91771
  }
91768
91772
  return artifacts;
91769
91773
  }
91770
- function isMultiAgentV2Enabled(config) {
91774
+ function isMultiAgentV2Enabled2(config) {
91771
91775
  const featuresSection = findTomlSection(config, "features");
91772
91776
  if (featuresSection !== null && settingIsBooleanTrue(featuresSection.text, "multi_agent_v2"))
91773
91777
  return true;
@@ -93198,6 +93202,20 @@ import { constants as constants9 } from "fs";
93198
93202
  import { access as access2, readFile as readFile26, stat as stat6 } from "fs/promises";
93199
93203
  import { dirname as dirname23, join as join59 } from "path";
93200
93204
 
93205
+ // packages/memory-core/src/personas/manifest.ts
93206
+ var PERSONA_ASSET_FILENAMES = {
93207
+ reflection: "reflection-persona.md",
93208
+ dream: "dream-persona.md",
93209
+ facts: "facts-persona.md",
93210
+ kibitzer: "kibitzer-persona.md"
93211
+ };
93212
+ var PERSONA_ASSET_FILES = [
93213
+ PERSONA_ASSET_FILENAMES.reflection,
93214
+ PERSONA_ASSET_FILENAMES.dream,
93215
+ PERSONA_ASSET_FILENAMES.facts,
93216
+ PERSONA_ASSET_FILENAMES.kibitzer
93217
+ ];
93218
+
93201
93219
  // packages/omo-senpi/src/install/senpi-settings.ts
93202
93220
  import { constants as constants8 } from "fs";
93203
93221
  import { access, copyFile as copyFile3, mkdir as mkdir9, readFile as readFile25, rename as rename5, writeFile as writeFile14 } from "fs/promises";
@@ -93321,10 +93339,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
93321
93339
  join59("extensions", "omo-task.js"),
93322
93340
  join59("extensions", "omo-member.js"),
93323
93341
  join59("extensions", "memory-run-supervisor.mjs"),
93324
- join59("extensions", "reflection-persona.md"),
93325
- join59("extensions", "dream-persona.md"),
93326
- join59("extensions", "facts-persona.md"),
93327
- join59("extensions", "kibitzer-persona.md"),
93342
+ ...PERSONA_ASSET_FILES.map((filename) => join59("extensions", filename)),
93328
93343
  join59("skills", "ast-grep", "SKILL.md"),
93329
93344
  join59("skills", "coding-agent-sessions", "SKILL.md"),
93330
93345
  join59("skills", "debugging", "SKILL.md"),
@@ -65,7 +65,7 @@ var package_default;
65
65
  var init_package = __esm(() => {
66
66
  package_default = {
67
67
  name: "oh-my-opencode",
68
- version: "5.0.0-beta.50",
68
+ version: "5.0.0-beta.51",
69
69
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
70
70
  main: "./dist/index.js",
71
71
  types: "dist/index.d.ts",
@@ -249,7 +249,7 @@ var init_package = __esm(() => {
249
249
  zod: "^4.4.3"
250
250
  },
251
251
  devDependencies: {
252
- "@code-yeongyu/senpi": "2026.9.9",
252
+ "@code-yeongyu/senpi": "2026.9.9-2",
253
253
  "@oh-my-opencode/agents-md-core": "workspace:*",
254
254
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
255
255
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -290,18 +290,18 @@ var init_package = __esm(() => {
290
290
  typescript: "^7.0.2"
291
291
  },
292
292
  optionalDependencies: {
293
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.50",
294
- "oh-my-opencode-darwin-x64": "5.0.0-beta.50",
295
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.50",
296
- "oh-my-opencode-linux-arm64": "5.0.0-beta.50",
297
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.50",
298
- "oh-my-opencode-linux-x64": "5.0.0-beta.50",
299
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.50",
300
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.50",
301
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.50",
302
- "oh-my-opencode-windows-arm64": "5.0.0-beta.50",
303
- "oh-my-opencode-windows-x64": "5.0.0-beta.50",
304
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.50"
293
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.51",
294
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.51",
295
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.51",
296
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.51",
297
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.51",
298
+ "oh-my-opencode-linux-x64": "5.0.0-beta.51",
299
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.51",
300
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.51",
301
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.51",
302
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.51",
303
+ "oh-my-opencode-windows-x64": "5.0.0-beta.51",
304
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.51"
305
305
  },
306
306
  overrides: {
307
307
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -84518,7 +84518,7 @@ var package_default2;
84518
84518
  var init_package2 = __esm(() => {
84519
84519
  package_default2 = {
84520
84520
  name: "@oh-my-opencode/omo-codex",
84521
- version: "5.0.0-beta.50",
84521
+ version: "5.0.0-beta.51",
84522
84522
  type: "module",
84523
84523
  private: true,
84524
84524
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -90515,7 +90515,7 @@ var CODEX_AGENTS_HEADER = "agents";
90515
90515
  var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
90516
90516
  function ensureCodexMultiAgentV2Config(config, options = {}) {
90517
90517
  const featureFlag = removeFeatureFlagSetting(config, "multi_agent_v2");
90518
- const v2Preferred = options.multiAgentVersion === "v2";
90518
+ const v2Preferred = options.multiAgentVersion === "v2" || isMultiAgentV2Enabled(featureFlag.config);
90519
90519
  const agentsConfig = removeAgentsMaxThreads(featureFlag.config, v2Preferred);
90520
90520
  const preserveDisable = featureFlag.value === false && !v2Preferred;
90521
90521
  const featureConfig = preserveDisable ? setMultiAgentV2Disable(agentsConfig) : v2Preferred ? removeMultiAgentV2Disable(agentsConfig) : agentsConfig;
@@ -90594,6 +90594,10 @@ function removeFeatureFlagSetting(config, featureName) {
90594
90594
  value: readBooleanSetting(section.text, featureName)
90595
90595
  };
90596
90596
  }
90597
+ function isMultiAgentV2Enabled(config) {
90598
+ const section = findTomlSection(config, CODEX_MULTI_AGENT_V2_HEADER);
90599
+ return section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#.*)?$/m.test(section.text);
90600
+ }
90597
90601
  function removeAgentsMaxThreads(config, v2Preferred) {
90598
90602
  const section = findTomlSection(config, CODEX_AGENTS_HEADER);
90599
90603
  if (!section)
@@ -91756,7 +91760,7 @@ function lastValue(values) {
91756
91760
  return values.length > 0 ? values[values.length - 1] ?? null : null;
91757
91761
  }
91758
91762
  function repairProjectLocalCodexConfigText(config) {
91759
- if (!isMultiAgentV2Enabled(config))
91763
+ if (!isMultiAgentV2Enabled2(config))
91760
91764
  return { config, changed: false, removedKeys: [] };
91761
91765
  let nextConfig = config;
91762
91766
  const removedKeys = [];
@@ -91846,7 +91850,7 @@ async function collectProjectLocalArtifacts(projectRoots) {
91846
91850
  }
91847
91851
  return artifacts;
91848
91852
  }
91849
- function isMultiAgentV2Enabled(config) {
91853
+ function isMultiAgentV2Enabled2(config) {
91850
91854
  const featuresSection = findTomlSection(config, "features");
91851
91855
  if (featuresSection !== null && settingIsBooleanTrue(featuresSection.text, "multi_agent_v2"))
91852
91856
  return true;
@@ -93277,6 +93281,20 @@ import { constants as constants9 } from "node:fs";
93277
93281
  import { access as access2, readFile as readFile26, stat as stat6 } from "node:fs/promises";
93278
93282
  import { dirname as dirname23, join as join59 } from "node:path";
93279
93283
 
93284
+ // packages/memory-core/src/personas/manifest.ts
93285
+ var PERSONA_ASSET_FILENAMES = {
93286
+ reflection: "reflection-persona.md",
93287
+ dream: "dream-persona.md",
93288
+ facts: "facts-persona.md",
93289
+ kibitzer: "kibitzer-persona.md"
93290
+ };
93291
+ var PERSONA_ASSET_FILES = [
93292
+ PERSONA_ASSET_FILENAMES.reflection,
93293
+ PERSONA_ASSET_FILENAMES.dream,
93294
+ PERSONA_ASSET_FILENAMES.facts,
93295
+ PERSONA_ASSET_FILENAMES.kibitzer
93296
+ ];
93297
+
93280
93298
  // packages/omo-senpi/src/install/senpi-settings.ts
93281
93299
  import { constants as constants8 } from "node:fs";
93282
93300
  import { access, copyFile as copyFile3, mkdir as mkdir9, readFile as readFile25, rename as rename5, writeFile as writeFile14 } from "node:fs/promises";
@@ -93400,10 +93418,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
93400
93418
  join59("extensions", "omo-task.js"),
93401
93419
  join59("extensions", "omo-member.js"),
93402
93420
  join59("extensions", "memory-run-supervisor.mjs"),
93403
- join59("extensions", "reflection-persona.md"),
93404
- join59("extensions", "dream-persona.md"),
93405
- join59("extensions", "facts-persona.md"),
93406
- join59("extensions", "kibitzer-persona.md"),
93421
+ ...PERSONA_ASSET_FILES.map((filename) => join59("extensions", filename)),
93407
93422
  join59("skills", "ast-grep", "SKILL.md"),
93408
93423
  join59("skills", "coding-agent-sessions", "SKILL.md"),
93409
93424
  join59("skills", "debugging", "SKILL.md"),
package/dist/index.js CHANGED
@@ -96387,7 +96387,7 @@ function getCachedVersion(options = {}) {
96387
96387
  // package.json
96388
96388
  var package_default = {
96389
96389
  name: "oh-my-opencode",
96390
- version: "5.0.0-beta.50",
96390
+ version: "5.0.0-beta.51",
96391
96391
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
96392
96392
  main: "./dist/index.js",
96393
96393
  types: "dist/index.d.ts",
@@ -96571,7 +96571,7 @@ var package_default = {
96571
96571
  zod: "^4.4.3"
96572
96572
  },
96573
96573
  devDependencies: {
96574
- "@code-yeongyu/senpi": "2026.9.9",
96574
+ "@code-yeongyu/senpi": "2026.9.9-2",
96575
96575
  "@oh-my-opencode/agents-md-core": "workspace:*",
96576
96576
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
96577
96577
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -96612,18 +96612,18 @@ var package_default = {
96612
96612
  typescript: "^7.0.2"
96613
96613
  },
96614
96614
  optionalDependencies: {
96615
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.50",
96616
- "oh-my-opencode-darwin-x64": "5.0.0-beta.50",
96617
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.50",
96618
- "oh-my-opencode-linux-arm64": "5.0.0-beta.50",
96619
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.50",
96620
- "oh-my-opencode-linux-x64": "5.0.0-beta.50",
96621
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.50",
96622
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.50",
96623
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.50",
96624
- "oh-my-opencode-windows-arm64": "5.0.0-beta.50",
96625
- "oh-my-opencode-windows-x64": "5.0.0-beta.50",
96626
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.50"
96615
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.51",
96616
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.51",
96617
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.51",
96618
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.51",
96619
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.51",
96620
+ "oh-my-opencode-linux-x64": "5.0.0-beta.51",
96621
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.51",
96622
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.51",
96623
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.51",
96624
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.51",
96625
+ "oh-my-opencode-windows-x64": "5.0.0-beta.51",
96626
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.51"
96627
96627
  },
96628
96628
  overrides: {
96629
96629
  "@earendil-works/pi-agent-core": "0.84.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-opencode",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
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",
@@ -184,7 +184,7 @@
184
184
  "zod": "^4.4.3"
185
185
  },
186
186
  "devDependencies": {
187
- "@code-yeongyu/senpi": "2026.9.9",
187
+ "@code-yeongyu/senpi": "2026.9.9-2",
188
188
  "@oh-my-opencode/agents-md-core": "workspace:*",
189
189
  "@oh-my-opencode/ast-grep-mcp": "workspace:*",
190
190
  "@oh-my-opencode/boulder-state": "workspace:*",
@@ -225,18 +225,18 @@
225
225
  "typescript": "^7.0.2"
226
226
  },
227
227
  "optionalDependencies": {
228
- "oh-my-opencode-darwin-arm64": "5.0.0-beta.50",
229
- "oh-my-opencode-darwin-x64": "5.0.0-beta.50",
230
- "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.50",
231
- "oh-my-opencode-linux-arm64": "5.0.0-beta.50",
232
- "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.50",
233
- "oh-my-opencode-linux-x64": "5.0.0-beta.50",
234
- "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.50",
235
- "oh-my-opencode-linux-x64-musl": "5.0.0-beta.50",
236
- "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.50",
237
- "oh-my-opencode-windows-arm64": "5.0.0-beta.50",
238
- "oh-my-opencode-windows-x64": "5.0.0-beta.50",
239
- "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.50"
228
+ "oh-my-opencode-darwin-arm64": "5.0.0-beta.51",
229
+ "oh-my-opencode-darwin-x64": "5.0.0-beta.51",
230
+ "oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.51",
231
+ "oh-my-opencode-linux-arm64": "5.0.0-beta.51",
232
+ "oh-my-opencode-linux-arm64-musl": "5.0.0-beta.51",
233
+ "oh-my-opencode-linux-x64": "5.0.0-beta.51",
234
+ "oh-my-opencode-linux-x64-baseline": "5.0.0-beta.51",
235
+ "oh-my-opencode-linux-x64-musl": "5.0.0-beta.51",
236
+ "oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.51",
237
+ "oh-my-opencode-windows-arm64": "5.0.0-beta.51",
238
+ "oh-my-opencode-windows-x64": "5.0.0-beta.51",
239
+ "oh-my-opencode-windows-x64-baseline": "5.0.0-beta.51"
240
240
  },
241
241
  "overrides": {
242
242
  "@earendil-works/pi-agent-core": "0.84.2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -3260,7 +3260,7 @@ var CODEX_AGENTS_HEADER = "agents";
3260
3260
  var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
3261
3261
  function ensureCodexMultiAgentV2Config(config, options = {}) {
3262
3262
  const featureFlag = removeFeatureFlagSetting(config, "multi_agent_v2");
3263
- const v2Preferred = options.multiAgentVersion === "v2";
3263
+ const v2Preferred = options.multiAgentVersion === "v2" || isMultiAgentV2Enabled(featureFlag.config);
3264
3264
  const agentsConfig = removeAgentsMaxThreads(featureFlag.config, v2Preferred);
3265
3265
  const preserveDisable = featureFlag.value === false && !v2Preferred;
3266
3266
  const featureConfig = preserveDisable ? setMultiAgentV2Disable(agentsConfig) : v2Preferred ? removeMultiAgentV2Disable(agentsConfig) : agentsConfig;
@@ -3339,6 +3339,10 @@ function removeFeatureFlagSetting(config, featureName) {
3339
3339
  value: readBooleanSetting(section.text, featureName)
3340
3340
  };
3341
3341
  }
3342
+ function isMultiAgentV2Enabled(config) {
3343
+ const section = findTomlSection(config, CODEX_MULTI_AGENT_V2_HEADER);
3344
+ return section !== null && /^\s*enabled\s*=\s*true[ \t]*(?:#.*)?$/m.test(section.text);
3345
+ }
3342
3346
  function removeAgentsMaxThreads(config, v2Preferred) {
3343
3347
  const section = findTomlSection(config, CODEX_AGENTS_HEADER);
3344
3348
  if (!section)
@@ -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 5.0.0-beta.50) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.51) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.0.0-beta.50) Checking Comments"
11
+ "statusMessage": "(OmO 5.0.0-beta.51) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex plugin that runs comment-checker after edit-like PostToolUse hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.0.0-beta.50) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.0.0-beta.51) Recommending Git Bash MCP"
12
12
  }
13
13
  ]
14
14
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.0.0-beta.50) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.0.0-beta.51) Resetting Git Bash MCP Reminder"
24
24
  }
25
25
  ]
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-git-bash-hook",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex hook component that reminds Windows sessions to prefer the OMO git_bash MCP.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.0.0-beta.50) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.0.0-beta.51) Verifying LazyCodex Executor Evidence"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lazycodex-executor-verify",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "5.0.0-beta.50",
4
- "inputDigest": "sha256:27672c2cd34eb3b44fc226b7e4e9137af0d0acedbb729fe92cdd663602ae6846",
3
+ "version": "5.0.0-beta.51",
4
+ "inputDigest": "sha256:5ff68702440d0c19cf7d59a8fb7e953983cdae7c9228a0fae86af5e289116416",
5
5
  "outputs": [
6
6
  {
7
7
  "path": "cli.d.ts",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 60,
11
- "statusMessage": "(OmO 5.0.0-beta.50) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.0.0-beta.51) Checking LSP Diagnostics"
12
12
  }
13
13
  ]
14
14
  }
@@ -21,7 +21,7 @@
21
21
  "type": "command",
22
22
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
23
23
  "timeout": 5,
24
- "statusMessage": "(OmO 5.0.0-beta.50) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.0.0-beta.51) Resetting LSP Diagnostics Cache"
25
25
  }
26
26
  ]
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lsp",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.50) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.0.0-beta.51) Loading Project Rules"
11
11
  }
12
12
  ]
13
13
  }
@@ -19,7 +19,7 @@
19
19
  "type": "command",
20
20
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
21
21
  "timeout": 10,
22
- "statusMessage": "(OmO 5.0.0-beta.50) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.0.0-beta.51) Loading Project Rules"
23
23
  }
24
24
  ]
25
25
  }
@@ -32,7 +32,7 @@
32
32
  "type": "command",
33
33
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
34
34
  "timeout": 10,
35
- "statusMessage": "(OmO 5.0.0-beta.50) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.0.0-beta.51) Matching Project Rules"
36
36
  }
37
37
  ]
38
38
  }
@@ -45,7 +45,7 @@
45
45
  "type": "command",
46
46
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
47
47
  "timeout": 10,
48
- "statusMessage": "(OmO 5.0.0-beta.50) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.0.0-beta.51) Resetting Project Rule Cache"
49
49
  }
50
50
  ]
51
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-rules",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex plugin that injects project rule files into model context through lifecycle hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.0.0-beta.50) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.0.0-beta.51) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex team-mode hook component that keeps background thread titles descriptive after create_thread.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.50) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.0.0-beta.51) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-telemetry",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex plugin component that emits omo-codex anonymous daily-active telemetry on SessionStart.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.50) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.0.0-beta.51) Checking Ultrawork Trigger"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ultrawork",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.50) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.0.0-beta.51) Checking Ulw-Execute Continuation"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-execute-continuation",
3
- "version": "5.0.0-beta.50",
3
+ "version": "5.0.0-beta.51",
4
4
  "description": "Codex Stop hook continuation injector for omo-codex ulw-execute plans.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",