oh-my-codex 0.19.1 → 0.20.1

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 (229) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +3 -1
  4. package/crates/omx-api/src/lib.rs +3 -3
  5. package/crates/omx-api/tests/cli.rs +4 -4
  6. package/crates/omx-explore/src/main.rs +4 -4
  7. package/crates/omx-sparkshell/src/codex_bridge.rs +2 -2
  8. package/dist/agents/__tests__/definitions.test.js +3 -3
  9. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  10. package/dist/agents/__tests__/native-config.test.js +71 -42
  11. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  12. package/dist/agents/definitions.d.ts +1 -1
  13. package/dist/agents/definitions.d.ts.map +1 -1
  14. package/dist/agents/definitions.js +3 -3
  15. package/dist/agents/definitions.js.map +1 -1
  16. package/dist/agents/native-config.d.ts +2 -2
  17. package/dist/agents/native-config.d.ts.map +1 -1
  18. package/dist/agents/native-config.js +7 -5
  19. package/dist/agents/native-config.js.map +1 -1
  20. package/dist/autopilot/__tests__/planner-routing.test.js +19 -12
  21. package/dist/autopilot/__tests__/planner-routing.test.js.map +1 -1
  22. package/dist/autopilot/__tests__/ralplan-gate.test.js +151 -0
  23. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
  24. package/dist/autopilot/planner-routing.d.ts.map +1 -1
  25. package/dist/autopilot/planner-routing.js +4 -2
  26. package/dist/autopilot/planner-routing.js.map +1 -1
  27. package/dist/autopilot/ralplan-gate.d.ts +1 -0
  28. package/dist/autopilot/ralplan-gate.d.ts.map +1 -1
  29. package/dist/autopilot/ralplan-gate.js +38 -2
  30. package/dist/autopilot/ralplan-gate.js.map +1 -1
  31. package/dist/autoresearch/runtime.d.ts +2 -0
  32. package/dist/autoresearch/runtime.d.ts.map +1 -1
  33. package/dist/autoresearch/runtime.js +8 -0
  34. package/dist/autoresearch/runtime.js.map +1 -1
  35. package/dist/capabilities/__tests__/lockfile.test.d.ts +2 -0
  36. package/dist/capabilities/__tests__/lockfile.test.d.ts.map +1 -0
  37. package/dist/capabilities/__tests__/lockfile.test.js +115 -0
  38. package/dist/capabilities/__tests__/lockfile.test.js.map +1 -0
  39. package/dist/capabilities/lockfile.d.ts +102 -0
  40. package/dist/capabilities/lockfile.d.ts.map +1 -0
  41. package/dist/capabilities/lockfile.js +334 -0
  42. package/dist/capabilities/lockfile.js.map +1 -0
  43. package/dist/cli/__tests__/agents.test.js +5 -5
  44. package/dist/cli/__tests__/agents.test.js.map +1 -1
  45. package/dist/cli/__tests__/capabilities.test.d.ts +2 -0
  46. package/dist/cli/__tests__/capabilities.test.d.ts.map +1 -0
  47. package/dist/cli/__tests__/capabilities.test.js +135 -0
  48. package/dist/cli/__tests__/capabilities.test.js.map +1 -0
  49. package/dist/cli/__tests__/codex-plugin-layout.test.js +264 -6
  50. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  51. package/dist/cli/__tests__/doctor-context-window-warning.test.js +83 -78
  52. package/dist/cli/__tests__/doctor-context-window-warning.test.js.map +1 -1
  53. package/dist/cli/__tests__/doctor-invalid-config.test.js +10 -1
  54. package/dist/cli/__tests__/doctor-invalid-config.test.js.map +1 -1
  55. package/dist/cli/__tests__/doctor-spark-routing.test.js +22 -6
  56. package/dist/cli/__tests__/doctor-spark-routing.test.js.map +1 -1
  57. package/dist/cli/__tests__/doctor-warning-copy.test.js +87 -1
  58. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  59. package/dist/cli/__tests__/index.test.js +53 -18
  60. package/dist/cli/__tests__/index.test.js.map +1 -1
  61. package/dist/cli/__tests__/plugin-marketplace-idempotent.test.js +3 -3
  62. package/dist/cli/__tests__/plugin-marketplace-idempotent.test.js.map +1 -1
  63. package/dist/cli/__tests__/resume.test.js +95 -6
  64. package/dist/cli/__tests__/resume.test.js.map +1 -1
  65. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js +54 -2
  66. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js.map +1 -1
  67. package/dist/cli/__tests__/setup-install-mode.test.js +49 -21
  68. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  69. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +3 -3
  70. package/dist/cli/__tests__/setup-refresh.test.js +166 -12
  71. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  72. package/dist/cli/__tests__/setup-scope.test.js +27 -3
  73. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  74. package/dist/cli/__tests__/uninstall.test.js +301 -7
  75. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  76. package/dist/cli/agents.js +1 -1
  77. package/dist/cli/agents.js.map +1 -1
  78. package/dist/cli/capabilities.d.ts +3 -0
  79. package/dist/cli/capabilities.d.ts.map +1 -0
  80. package/dist/cli/capabilities.js +118 -0
  81. package/dist/cli/capabilities.js.map +1 -0
  82. package/dist/cli/doctor.d.ts +3 -1
  83. package/dist/cli/doctor.d.ts.map +1 -1
  84. package/dist/cli/doctor.js +50 -34
  85. package/dist/cli/doctor.js.map +1 -1
  86. package/dist/cli/index.d.ts +7 -4
  87. package/dist/cli/index.d.ts.map +1 -1
  88. package/dist/cli/index.js +77 -19
  89. package/dist/cli/index.js.map +1 -1
  90. package/dist/cli/plugin-marketplace.d.ts +1 -0
  91. package/dist/cli/plugin-marketplace.d.ts.map +1 -1
  92. package/dist/cli/plugin-marketplace.js +31 -0
  93. package/dist/cli/plugin-marketplace.js.map +1 -1
  94. package/dist/cli/setup.d.ts.map +1 -1
  95. package/dist/cli/setup.js +9 -6
  96. package/dist/cli/setup.js.map +1 -1
  97. package/dist/cli/uninstall.d.ts.map +1 -1
  98. package/dist/cli/uninstall.js +3 -4
  99. package/dist/cli/uninstall.js.map +1 -1
  100. package/dist/config/__tests__/generator-idempotent.test.js +210 -114
  101. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  102. package/dist/config/__tests__/generator-notify.test.js +26 -52
  103. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  104. package/dist/config/__tests__/models.test.js +51 -26
  105. package/dist/config/__tests__/models.test.js.map +1 -1
  106. package/dist/config/generator.d.ts +20 -11
  107. package/dist/config/generator.d.ts.map +1 -1
  108. package/dist/config/generator.js +169 -152
  109. package/dist/config/generator.js.map +1 -1
  110. package/dist/config/models.d.ts +16 -6
  111. package/dist/config/models.d.ts.map +1 -1
  112. package/dist/config/models.js +19 -8
  113. package/dist/config/models.js.map +1 -1
  114. package/dist/hooks/__tests__/keyword-detector.test.js +12 -4
  115. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  116. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +1 -1
  117. package/dist/hooks/__tests__/prometheus-strict-contract.test.js +2 -2
  118. package/dist/hooks/__tests__/prometheus-strict-contract.test.js.map +1 -1
  119. package/dist/hooks/__tests__/tmux-hook-engine.test.js +2 -2
  120. package/dist/leader/__tests__/contract.test.js +150 -1
  121. package/dist/leader/__tests__/contract.test.js.map +1 -1
  122. package/dist/leader/contract.d.ts +26 -0
  123. package/dist/leader/contract.d.ts.map +1 -1
  124. package/dist/leader/contract.js +188 -0
  125. package/dist/leader/contract.js.map +1 -1
  126. package/dist/modes/base.d.ts +1 -1
  127. package/dist/modes/base.d.ts.map +1 -1
  128. package/dist/pipeline/__tests__/stages.test.js +27 -1
  129. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  130. package/dist/pipeline/stages/ralplan.d.ts +2 -1
  131. package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
  132. package/dist/pipeline/stages/ralplan.js +1 -0
  133. package/dist/pipeline/stages/ralplan.js.map +1 -1
  134. package/dist/pipeline/stages/ultragoal.d.ts +5 -1
  135. package/dist/pipeline/stages/ultragoal.d.ts.map +1 -1
  136. package/dist/pipeline/stages/ultragoal.js +14 -4
  137. package/dist/pipeline/stages/ultragoal.js.map +1 -1
  138. package/dist/ralplan/__tests__/runtime.test.js +132 -0
  139. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  140. package/dist/ralplan/runtime.d.ts +17 -0
  141. package/dist/ralplan/runtime.d.ts.map +1 -1
  142. package/dist/ralplan/runtime.js +97 -1
  143. package/dist/ralplan/runtime.js.map +1 -1
  144. package/dist/scripts/__tests__/codex-native-hook.test.js +1528 -32
  145. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  146. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  147. package/dist/scripts/codex-native-hook.js +377 -31
  148. package/dist/scripts/codex-native-hook.js.map +1 -1
  149. package/dist/state/__tests__/operations.test.js +450 -0
  150. package/dist/state/__tests__/operations.test.js.map +1 -1
  151. package/dist/state/__tests__/workflow-transition.test.js +14 -0
  152. package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
  153. package/dist/state/operations.d.ts.map +1 -1
  154. package/dist/state/operations.js +72 -11
  155. package/dist/state/operations.js.map +1 -1
  156. package/dist/state/terminal-normalization.d.ts +8 -0
  157. package/dist/state/terminal-normalization.d.ts.map +1 -0
  158. package/dist/state/terminal-normalization.js +127 -0
  159. package/dist/state/terminal-normalization.js.map +1 -0
  160. package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
  161. package/dist/state/workflow-transition-reconcile.js +3 -1
  162. package/dist/state/workflow-transition-reconcile.js.map +1 -1
  163. package/dist/team/__tests__/delegation-policy.test.js +2 -2
  164. package/dist/team/__tests__/delegation-policy.test.js.map +1 -1
  165. package/dist/team/__tests__/model-contract.test.js +25 -25
  166. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  167. package/dist/team/__tests__/runtime.test.js +28 -28
  168. package/dist/team/__tests__/runtime.test.js.map +1 -1
  169. package/dist/team/__tests__/scaling.test.js +7 -7
  170. package/dist/team/__tests__/scaling.test.js.map +1 -1
  171. package/dist/team/__tests__/tmux-claude-workers-demo.test.js +5 -5
  172. package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +1 -1
  173. package/dist/team/__tests__/tmux-session.test.js +12 -12
  174. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  175. package/dist/team/__tests__/worker-bootstrap.test.js +57 -9
  176. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  177. package/dist/team/__tests__/worker-runtime-identity.test.js +3 -3
  178. package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
  179. package/dist/team/model-contract.d.ts +1 -1
  180. package/dist/team/model-contract.d.ts.map +1 -1
  181. package/dist/team/runtime.d.ts.map +1 -1
  182. package/dist/team/runtime.js +11 -0
  183. package/dist/team/runtime.js.map +1 -1
  184. package/dist/team/worker-bootstrap.d.ts +2 -0
  185. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  186. package/dist/team/worker-bootstrap.js +6 -1
  187. package/dist/team/worker-bootstrap.js.map +1 -1
  188. package/dist/ultragoal/__tests__/artifacts.test.js +68 -1
  189. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
  190. package/dist/ultragoal/artifacts.d.ts +5 -1
  191. package/dist/ultragoal/artifacts.d.ts.map +1 -1
  192. package/dist/ultragoal/artifacts.js +41 -9
  193. package/dist/ultragoal/artifacts.js.map +1 -1
  194. package/dist/utils/__tests__/agents-md.test.js +16 -0
  195. package/dist/utils/__tests__/agents-md.test.js.map +1 -1
  196. package/dist/utils/__tests__/agents-model-table.test.js +7 -7
  197. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
  198. package/dist/utils/__tests__/worktree-tool-context.test.d.ts +2 -0
  199. package/dist/utils/__tests__/worktree-tool-context.test.d.ts.map +1 -0
  200. package/dist/utils/__tests__/worktree-tool-context.test.js +118 -0
  201. package/dist/utils/__tests__/worktree-tool-context.test.js.map +1 -0
  202. package/dist/utils/agents-md.d.ts.map +1 -1
  203. package/dist/utils/agents-md.js +4 -3
  204. package/dist/utils/agents-md.js.map +1 -1
  205. package/dist/utils/worktree-tool-context.d.ts +25 -0
  206. package/dist/utils/worktree-tool-context.d.ts.map +1 -0
  207. package/dist/utils/worktree-tool-context.js +116 -0
  208. package/dist/utils/worktree-tool-context.js.map +1 -0
  209. package/package.json +1 -1
  210. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  211. package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +96 -10
  212. package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +1 -1
  213. package/plugins/oh-my-codex/skills/code-review/SKILL.md +1 -1
  214. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +5 -5
  215. package/plugins/oh-my-codex/skills/prometheus-strict/SKILL.md +3 -3
  216. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +1 -1
  217. package/plugins/oh-my-codex/skills/team/SKILL.md +1 -1
  218. package/plugins/oh-my-codex/skills/ultrawork/references/agent-tiers.md +2 -2
  219. package/prompts/prometheus-strict-metis.md +1 -1
  220. package/skills/ai-slop-cleaner/SKILL.md +1 -1
  221. package/skills/code-review/SKILL.md +1 -1
  222. package/skills/ecomode/references/agent-tiers.md +1 -1
  223. package/skills/omx-setup/SKILL.md +5 -5
  224. package/skills/prometheus-strict/SKILL.md +3 -3
  225. package/skills/ralplan/SKILL.md +1 -1
  226. package/skills/team/SKILL.md +1 -1
  227. package/skills/ultrawork/references/agent-tiers.md +2 -2
  228. package/src/scripts/__tests__/codex-native-hook.test.ts +1818 -113
  229. package/src/scripts/codex-native-hook.ts +414 -27
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/cli/uninstall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/cli/uninstall.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
8
8
  import { tmpdir } from "node:os";
9
9
  import { isAbsolute, join } from "node:path";
10
10
  import TOML from "@iarna/toml";
11
- import { buildMergedConfig, cleanCodexModelAvailabilityNuxIfNeeded, mergeConfig, repairConfigIfNeeded, stripManagedCodexHookTrustState, upsertManagedCodexHookTrustState, } from "../generator.js";
11
+ import { analyzeLegacyMultiAgentConfig, buildMergedConfig, cleanCodexModelAvailabilityNuxIfNeeded, hasExactOmxSeededBehavioralDefaultsPair, mergeConfig, repairConfigIfNeeded, stripManagedCodexHookTrustState, stripOmxFeatureFlags, upsertManagedCodexHookTrustState, stripOmxSeededBehavioralDefaults, } from "../generator.js";
12
12
  import { buildManagedCodexHookTrustState } from "../codex-hooks.js";
13
13
  import { OMX_FIRST_PARTY_MCP_SERVER_NAMES } from "../omx-first-party-mcp.js";
14
14
  /** Count occurrences of a pattern in text */
@@ -72,7 +72,7 @@ describe("Codex transient TUI NUX cleanup", () => {
72
72
  try {
73
73
  const configPath = join(wd, "config.toml");
74
74
  await writeFile(configPath, [
75
- 'model = "gpt-5.5"',
75
+ 'model = "gpt-5.6-sol"',
76
76
  'status_line = ["model-with-reasoning", "git-branch"]',
77
77
  "",
78
78
  "[tui]",
@@ -80,8 +80,8 @@ describe("Codex transient TUI NUX cleanup", () => {
80
80
  "notifications = true",
81
81
  "",
82
82
  "[tui.model_availability_nux]",
83
- '"gpt-5.5" = 4',
84
- '"gpt-5.4" = 1',
83
+ '"gpt-5.6-sol" = 4',
84
+ '"gpt-5.5" = 1',
85
85
  "",
86
86
  "[mcp_servers.user]",
87
87
  'command = "node"',
@@ -92,7 +92,7 @@ describe("Codex transient TUI NUX cleanup", () => {
92
92
  const toml = await readFile(configPath, "utf-8");
93
93
  assert.equal(cleaned, true);
94
94
  assert.doesNotMatch(toml, /^\[tui\.model_availability_nux\]$/m);
95
- assert.doesNotMatch(toml, /gpt-5\.5" = 4/);
95
+ assert.doesNotMatch(toml, /gpt-5\.6-sol" = 4/);
96
96
  assert.match(toml, /^status_line = \["model-with-reasoning", "git-branch"\]$/m);
97
97
  assert.match(toml, /^\[tui\]$/m);
98
98
  assert.match(toml, /^theme = "dark"$/m);
@@ -109,7 +109,7 @@ describe("Codex transient TUI NUX cleanup", () => {
109
109
  try {
110
110
  const configPath = join(wd, "config.toml");
111
111
  const original = [
112
- 'model = "gpt-5.5"',
112
+ 'model = "gpt-5.6-sol"',
113
113
  "",
114
114
  "[tui]",
115
115
  'theme = "dark"',
@@ -133,15 +133,75 @@ describe("config generator idempotency (#384)", () => {
133
133
  await mergeConfig(configPath, wd);
134
134
  const toml = await readFile(configPath, "utf-8");
135
135
  assertSingleOmxBlock(toml);
136
- assert.match(toml, /^multi_agent = true$/m);
136
+ assert.doesNotMatch(toml, /^multi_agent\s*=/m);
137
137
  assert.match(toml, /^child_agents_md = true$/m);
138
138
  assert.match(toml, /^hooks = true$/m);
139
139
  assert.match(toml, /^goals = true$/m);
140
+ assert.doesNotMatch(toml, /^\[agents\]$/m);
141
+ assert.doesNotMatch(toml, /^max_threads\s*=/m);
142
+ assert.doesNotMatch(toml, /^max_depth\s*=/m);
140
143
  }
141
144
  finally {
142
145
  await rm(wd, { recursive: true, force: true });
143
146
  }
144
147
  });
148
+ it("classifies legacy multi-agent keys without mutating config", () => {
149
+ const absent = analyzeLegacyMultiAgentConfig("");
150
+ assert.equal(absent.assessments["features.multi_agent"].state, "absent");
151
+ const legacy = analyzeLegacyMultiAgentConfig([
152
+ "[features]",
153
+ "multi_agent = true",
154
+ "",
155
+ "[agents]",
156
+ "max_threads = 6",
157
+ "max_depth = 2",
158
+ ].join("\n"));
159
+ assert.equal(legacy.assessments["features.multi_agent"].state, "retained-legacy");
160
+ assert.equal(legacy.assessments["agents.max_threads"].state, "retained-legacy");
161
+ assert.equal(legacy.assessments["agents.max_depth"].state, "retained-legacy");
162
+ const custom = analyzeLegacyMultiAgentConfig("[features]\nmulti_agent = false\n\n[agents]\nmax_threads = 8\nmax_depth = 3\n");
163
+ assert.equal(custom.assessments["features.multi_agent"].state, "custom");
164
+ assert.equal(custom.assessments["agents.max_threads"].state, "custom");
165
+ assert.equal(custom.assessments["agents.max_depth"].state, "custom");
166
+ const invalid = analyzeLegacyMultiAgentConfig("[features\nmulti_agent = true");
167
+ assert.equal(invalid.assessments["features.multi_agent"].state, "invalid/duplicate");
168
+ const duplicate = analyzeLegacyMultiAgentConfig("[features]\nmulti_agent = true\nmulti_agent = false\n");
169
+ assert.equal(duplicate.assessments["features.multi_agent"].state, "invalid/duplicate");
170
+ assert.equal(duplicate.assessments["features.multi_agent"].reasonCode, "toml-duplicate-key");
171
+ });
172
+ it("preserves legacy multi-agent values and all role tables across fixed-point merges", () => {
173
+ const existing = [
174
+ "[features]",
175
+ "multi_agent = false",
176
+ "",
177
+ "[agents]",
178
+ "max_threads = 8",
179
+ "max_depth = 3",
180
+ "",
181
+ "[agents.executor]",
182
+ 'config_file = "/custom/executor.toml"',
183
+ "",
184
+ '[agents."review bot"]',
185
+ 'config_file = "/custom/review.toml"',
186
+ "",
187
+ ].join("\n");
188
+ const merged = buildMergedConfig(existing, "/tmp/omx");
189
+ assert.match(merged, /^multi_agent = false$/m);
190
+ assert.match(merged, /^max_threads = 8$/m);
191
+ assert.match(merged, /^max_depth = 3$/m);
192
+ assert.match(merged, /^\[agents\.executor\]$/m);
193
+ assert.match(merged, /^\[agents\."review bot"\]$/m);
194
+ assert.match(merged, /^config_file = "\/custom\/executor\.toml"$/m);
195
+ assert.match(merged, /^config_file = "\/custom\/review\.toml"$/m);
196
+ const parsed = TOML.parse(merged);
197
+ assert.equal(parsed.agents?.executor?.config_file, "/custom/executor.toml");
198
+ assert.equal(parsed.agents?.["review bot"]?.config_file, "/custom/review.toml");
199
+ assert.equal(buildMergedConfig(merged, "/tmp/omx"), merged);
200
+ });
201
+ it("can preserve multi_agent while stripping other OMX feature flags", () => {
202
+ const stripped = stripOmxFeatureFlags("[features]\nmulti_agent = false\nchild_agents_md = true\nhooks = true\ngoals = true\n", { preserveMultiAgent: true });
203
+ assert.equal(stripped, "[features]\nmulti_agent = false\n");
204
+ });
145
205
  it("emits first-party MCP blocks only when explicitly enabled", () => {
146
206
  const toml = buildMergedConfig("", "/tmp/omx", {
147
207
  includeFirstPartyMcp: true,
@@ -354,11 +414,10 @@ describe("config generator idempotency (#384)", () => {
354
414
  assertSingleOmxBlock(toml);
355
415
  assert.match(toml, /^\[user\.custom\]$/m, "user section preserved");
356
416
  assert.match(toml, /^name = "kept"$/m, "user key preserved");
357
- assert.match(toml, /^\[agents\]$/m, "global agents settings added");
358
- assert.match(toml, /^max_threads = 6$/m, "global agents max_threads seeded");
359
- assert.match(toml, /^max_depth = 2$/m, "global agents max_depth seeded");
360
- assert.doesNotMatch(toml, /^\[agents\.executor\]$/m, "legacy OMX agent entry removed");
361
- assert.doesNotMatch(toml, /^\[agents\.explore\]$/m, "legacy OMX agent entry removed");
417
+ assert.match(toml, /^\[agents\.executor\]$/m, "known agent table preserved");
418
+ assert.match(toml, /^\[agents\.explore\]$/m, "known agent table preserved");
419
+ assert.match(toml, /^config_file = "\/old\/path\/executor\.toml"$/m);
420
+ assert.match(toml, /^config_file = "\/old\/path\/explore\.toml"$/m);
362
421
  }
363
422
  finally {
364
423
  await rm(wd, { recursive: true, force: true });
@@ -518,128 +577,165 @@ describe("config generator idempotency (#384)", () => {
518
577
  await rm(wd, { recursive: true, force: true });
519
578
  }
520
579
  });
521
- it("seeds context keys when root model is missing and both context keys are absent", async () => {
580
+ it("does not seed context defaults and preserves explicit context settings", async () => {
522
581
  const wd = await mkdtemp(join(tmpdir(), "omx-idem-"));
523
582
  try {
524
583
  const configPath = join(wd, "config.toml");
525
- await writeFile(configPath, 'approval_policy = "on-failure"\n');
584
+ await writeFile(configPath, ['model = "gpt-5.6-sol"', "model_context_window = 640000", ""].join("\n"));
526
585
  await mergeConfig(configPath, wd);
527
586
  const toml = await readFile(configPath, "utf-8");
528
- assert.match(toml, /^model = "gpt-5.5"$/m);
529
- assert.match(toml, /^# oh-my-codex seeded behavioral defaults \(uninstall removes unchanged defaults\)$/m);
530
- assert.match(toml, /^model_context_window = 250000$/m);
531
- assert.match(toml, /^model_auto_compact_token_limit = 200000$/m);
532
- assert.match(toml, /^# End oh-my-codex seeded behavioral defaults$/m);
587
+ assert.match(toml, /^model_context_window = 640000$/m);
588
+ assert.doesNotMatch(toml, /^model_auto_compact_token_limit\s*=/m);
589
+ assert.doesNotMatch(toml, /seeded behavioral defaults/);
590
+ await mergeConfig(configPath, wd);
591
+ const repeated = await readFile(configPath, "utf-8");
592
+ assert.equal(repeated, toml);
593
+ assert.doesNotMatch(repeated, /^model_auto_compact_token_limit\s*=/m);
594
+ assert.doesNotMatch(repeated, /seeded behavioral defaults/);
533
595
  }
534
596
  finally {
535
597
  await rm(wd, { recursive: true, force: true });
536
598
  }
537
599
  });
538
- it("can override gpt-5.3-codex to gpt-5.5 and seed 250k context defaults", async () => {
539
- const wd = await mkdtemp(join(tmpdir(), "omx-idem-"));
540
- try {
541
- const toml = buildMergedConfig('model = \"gpt-5.3-codex\"\n', wd, {
542
- modelOverride: "gpt-5.5",
543
- });
544
- assert.match(toml, /^model = "gpt-5\.5"$/m);
545
- assert.doesNotMatch(toml, /^model = "gpt-5\.3-codex"$/m);
546
- assert.match(toml, /^# oh-my-codex seeded behavioral defaults \(uninstall removes unchanged defaults\)$/m);
547
- assert.match(toml, /^model_context_window = 250000$/m);
548
- assert.match(toml, /^model_auto_compact_token_limit = 200000$/m);
549
- assert.match(toml, /^# End oh-my-codex seeded behavioral defaults$/m);
550
- }
551
- finally {
552
- await rm(wd, { recursive: true, force: true });
600
+ it("removes exact legacy source spans with LF, CRLF, and EOF variants", () => {
601
+ const start = "# oh-my-codex seeded behavioral defaults (uninstall removes unchanged defaults)";
602
+ const end = "# End oh-my-codex seeded behavioral defaults";
603
+ const fixtures = [
604
+ {
605
+ input: `before\n${start}\nmodel_context_window = 250000\nmodel_auto_compact_token_limit = 200000\n${end}\nafter`,
606
+ expected: "before\nafter",
607
+ },
608
+ {
609
+ input: `model_auto_compact_token_limit=123\r\n${start}\r\nmodel_context_window = 250000\r\n${end}\r\n[features]\r\nweb_search = true`,
610
+ expected: "model_auto_compact_token_limit=123\r\n[features]\r\nweb_search = true",
611
+ },
612
+ {
613
+ input: `model_context_window = [\n 1,\n]\n${start}\nmodel_auto_compact_token_limit = 200000\n${end}`,
614
+ expected: "model_context_window = [\n 1,\n]\n",
615
+ },
616
+ ];
617
+ for (const { input, expected } of fixtures) {
618
+ const stripped = stripOmxSeededBehavioralDefaults(input);
619
+ assert.equal(stripped, expected);
620
+ assert.equal(stripOmxSeededBehavioralDefaults(stripped), stripped);
553
621
  }
554
622
  });
555
- it("does not seed 250k context defaults for non-gpt-5.5 models", async () => {
556
- const wd = await mkdtemp(join(tmpdir(), "omx-idem-"));
557
- try {
558
- const configPath = join(wd, "config.toml");
559
- await writeFile(configPath, 'model = "o3"\n');
560
- await mergeConfig(configPath, wd);
561
- const toml = await readFile(configPath, "utf-8");
562
- assert.match(toml, /^model = "o3"$/m, "user model preserved");
563
- assert.doesNotMatch(toml, /^model_context_window = 250000$/m);
564
- assert.doesNotMatch(toml, /^model_auto_compact_token_limit = 200000$/m);
565
- }
566
- finally {
567
- await rm(wd, { recursive: true, force: true });
568
- }
623
+ it("strips bounded customized or siblingless singleton markers and preserves ambiguity", () => {
624
+ const start = "# oh-my-codex seeded behavioral defaults (uninstall removes unchanged defaults)";
625
+ const end = "# End oh-my-codex seeded behavioral defaults";
626
+ const customized = `before\r\n${start}\r\nmodel_context_window = 123\r\n${end}\r\nafter`;
627
+ assert.equal(stripOmxSeededBehavioralDefaults(customized), "before\r\nmodel_context_window = 123\r\nafter");
628
+ const siblingless = `${start}\nmodel_context_window = 250000\n${end}\n[features]\nmodel_auto_compact_token_limit = 999`;
629
+ assert.equal(stripOmxSeededBehavioralDefaults(siblingless), "model_context_window = 250000\n[features]\nmodel_auto_compact_token_limit = 999");
630
+ const ambiguous = `${start}\nmodel_context_window = 250000\n${end}\nmodel_auto_compact_token_limit = 1\nmodel_auto_compact_token_limit = 2`;
631
+ assert.equal(stripOmxSeededBehavioralDefaults(ambiguous), ambiguous);
632
+ const sameKeyOutside = `model_context_window = 1\n${start}\nmodel_context_window = 250000\n${end}\nmodel_auto_compact_token_limit = 2`;
633
+ assert.equal(stripOmxSeededBehavioralDefaults(sameKeyOutside), sameKeyOutside);
634
+ const malformed = `${start}\nmodel_context_window = 250000`;
635
+ assert.equal(stripOmxSeededBehavioralDefaults(malformed), malformed);
569
636
  });
570
- it("seeds missing auto compact limit without overwriting an existing context window", async () => {
571
- const wd = await mkdtemp(join(tmpdir(), "omx-idem-"));
572
- try {
573
- const configPath = join(wd, "config.toml");
574
- await writeFile(configPath, ['model = "gpt-5.5"', "model_context_window = 640000", ""].join("\n"));
575
- await mergeConfig(configPath, wd);
576
- const toml = await readFile(configPath, "utf-8");
577
- assert.match(toml, /^model = "gpt-5\.5"$/m);
578
- assert.match(toml, /^model_context_window = 640000$/m);
579
- assert.match(toml, /^model_auto_compact_token_limit = 200000$/m);
580
- }
581
- finally {
582
- await rm(wd, { recursive: true, force: true });
637
+ it("preserves every byte inside noncanonical bounded blocks", () => {
638
+ const start = "# oh-my-codex seeded behavioral defaults (uninstall removes unchanged defaults)";
639
+ const end = "# End oh-my-codex seeded behavioral defaults";
640
+ const bodies = [
641
+ ["model_context_window = 250000", "# user comment", "model_auto_compact_token_limit = 200000"],
642
+ ["model_context_window = 250000", "", "model_auto_compact_token_limit = 200000"],
643
+ [" model_context_window = 250000", "model_auto_compact_token_limit = 200000"],
644
+ ["model_context_window = 250000", "model_auto_compact_token_limit = 200000 "],
645
+ ["model_auto_compact_token_limit = 200000", "model_context_window = 250000"],
646
+ ["model_context_window = 250000", "model_context_window = 250000", "model_auto_compact_token_limit = 200000"],
647
+ ["model_context_window = 250000", "unexpected = true", "model_auto_compact_token_limit = 200000"],
648
+ ["model_context_window = 250_000", "model_auto_compact_token_limit = 200000"],
649
+ ["", "model_context_window = 250000", "model_auto_compact_token_limit = 200000", ""],
650
+ ];
651
+ for (const body of bodies) {
652
+ const input = ["before", start, ...body, end, "after"].join("\n");
653
+ const expected = ["before", ...body, "after"].join("\n");
654
+ const stripped = stripOmxSeededBehavioralDefaults(input);
655
+ assert.equal(stripped, expected);
656
+ assert.equal(stripOmxSeededBehavioralDefaults(stripped), stripped);
583
657
  }
584
658
  });
585
- it("seeds missing context window without overwriting an existing auto compact limit", async () => {
586
- const wd = await mkdtemp(join(tmpdir(), "omx-idem-"));
587
- try {
588
- const configPath = join(wd, "config.toml");
589
- await writeFile(configPath, ['model = "gpt-5.5"', "model_auto_compact_token_limit = 150000", ""].join("\n"));
590
- await mergeConfig(configPath, wd);
591
- const toml = await readFile(configPath, "utf-8");
592
- assert.match(toml, /^model = "gpt-5\.5"$/m);
593
- assert.match(toml, /^model_context_window = 250000$/m);
594
- assert.match(toml, /^model_auto_compact_token_limit = 150000$/m);
595
- }
596
- finally {
597
- await rm(wd, { recursive: true, force: true });
659
+ it("fails closed for duplicate assignments and malformed marker topologies", () => {
660
+ const start = "# oh-my-codex seeded behavioral defaults (uninstall removes unchanged defaults)";
661
+ const end = "# End oh-my-codex seeded behavioral defaults";
662
+ const pair = [start, "model_context_window = 250000", "model_auto_compact_token_limit = 200000", end];
663
+ const unchanged = [
664
+ ["model_context_window = 999", ...pair, "after"].join("\n"),
665
+ [...pair, "model_auto_compact_token_limit = 999", "after"].join("\n"),
666
+ [start, start, "model_context_window = 250000", "model_auto_compact_token_limit = 200000", end, end].join("\n"),
667
+ [...pair, ...pair].join("\n"),
668
+ ];
669
+ for (const input of unchanged) {
670
+ assert.equal(stripOmxSeededBehavioralDefaults(input), input);
671
+ assert.equal(hasExactOmxSeededBehavioralDefaultsPair(input), false);
598
672
  }
673
+ const invalidSuffix = ["before", ...pair, "invalid = [", ""].join("\n");
674
+ const expected = "before\ninvalid = [\n";
675
+ assert.equal(stripOmxSeededBehavioralDefaults(invalidSuffix), expected);
676
+ assert.equal(stripOmxSeededBehavioralDefaults(expected), expected);
599
677
  });
600
- it("does not duplicate independently seeded defaults across reruns", async () => {
601
- const wd = await mkdtemp(join(tmpdir(), "omx-idem-"));
602
- try {
603
- const configPath = join(wd, "config.toml");
604
- await writeFile(configPath, ['model = "gpt-5.5"', "model_context_window = 640000", ""].join("\n"));
605
- await mergeConfig(configPath, wd);
606
- await mergeConfig(configPath, wd);
607
- const toml = await readFile(configPath, "utf-8");
608
- assert.equal(count(toml, /^model_context_window = 640000$/gm), 1);
609
- assert.equal(count(toml, /^model_auto_compact_token_limit = 200000$/gm), 1);
610
- assert.doesNotMatch(toml, /^model_context_window = 250000$/m);
611
- }
612
- finally {
613
- await rm(wd, { recursive: true, force: true });
614
- }
678
+ it("ignores marker-shaped text inside TOML values and fails closed on stray markers", () => {
679
+ const start = "# oh-my-codex seeded behavioral defaults (uninstall removes unchanged defaults)";
680
+ const end = "# End oh-my-codex seeded behavioral defaults";
681
+ const stringContent = [
682
+ 'developer_instructions = """',
683
+ start,
684
+ "model_context_window = 250000",
685
+ "model_auto_compact_token_limit = 200000",
686
+ end,
687
+ '"""',
688
+ "",
689
+ ].join("\n");
690
+ assert.equal(stripOmxSeededBehavioralDefaults(stringContent), stringContent);
691
+ assert.equal(hasExactOmxSeededBehavioralDefaultsPair(stringContent), false);
692
+ const duplicateAfterTable = [
693
+ start,
694
+ "model_context_window = 250000",
695
+ "model_auto_compact_token_limit = 200000",
696
+ end,
697
+ "[tui]",
698
+ start,
699
+ "",
700
+ ].join("\n");
701
+ assert.equal(stripOmxSeededBehavioralDefaults(duplicateAfterTable), duplicateAfterTable);
702
+ assert.equal(hasExactOmxSeededBehavioralDefaultsPair(duplicateAfterTable), false);
615
703
  });
616
- it("does not duplicate seeded model defaults across reruns", async () => {
617
- const wd = await mkdtemp(join(tmpdir(), "omx-idem-"));
618
- try {
619
- const configPath = join(wd, "config.toml");
620
- await mergeConfig(configPath, wd);
621
- await mergeConfig(configPath, wd);
622
- const toml = await readFile(configPath, "utf-8");
623
- assert.equal(count(toml, /^model = "gpt-5\.5"$/gm), 1, "seeded model should appear once");
624
- assert.equal(count(toml, /^model_context_window = 250000$/gm), 1, "seeded context window should appear once");
625
- assert.equal(count(toml, /^model_auto_compact_token_limit = 200000$/gm), 1, "seeded auto compact limit should appear once");
626
- assert.equal(count(toml, /^# oh-my-codex seeded behavioral defaults \(uninstall removes unchanged defaults\)$/gm), 1, "seeded defaults start marker should appear once");
627
- assert.equal(count(toml, /^# End oh-my-codex seeded behavioral defaults$/gm), 1, "seeded defaults end marker should appear once");
628
- }
629
- finally {
630
- await rm(wd, { recursive: true, force: true });
704
+ it("migrates before reconstruction without incremental normalization", () => {
705
+ const start = "# oh-my-codex seeded behavioral defaults (uninstall removes unchanged defaults)";
706
+ const end = "# End oh-my-codex seeded behavioral defaults";
707
+ const fixtures = [
708
+ {
709
+ baseline: 'approval_policy = "on-failure"\n[features]\nweb_search = true\n',
710
+ migrated: `approval_policy = "on-failure"\n${start}\nmodel_context_window = 250000\nmodel_auto_compact_token_limit = 200000\n${end}\n[features]\nweb_search = true\n`,
711
+ },
712
+ {
713
+ baseline: "model_auto_compact_token_limit = [\n 999,\n]\n[features]\nweb_search = true\n",
714
+ migrated: `model_auto_compact_token_limit = [\n 999,\n]\n${start}\nmodel_context_window = 250000\n${end}\n[features]\nweb_search = true\n`,
715
+ },
716
+ {
717
+ baseline: "# explicit sibling\nmodel_context_window = 640000\n[features]\nweb_search = true\n",
718
+ migrated: `# explicit sibling\nmodel_context_window = 640000\n${start}\nmodel_auto_compact_token_limit = 200000\n${end}\n[features]\nweb_search = true\n`,
719
+ },
720
+ ];
721
+ for (const fixture of fixtures) {
722
+ const baseline = buildMergedConfig(fixture.baseline, "/tmp/omx");
723
+ const migrated = buildMergedConfig(fixture.migrated, "/tmp/omx");
724
+ assert.equal(migrated, baseline);
725
+ assert.equal(buildMergedConfig(migrated, "/tmp/omx"), migrated);
726
+ assert.doesNotMatch(migrated, /seeded behavioral defaults/);
727
+ assert.doesNotThrow(() => TOML.parse(migrated));
631
728
  }
632
729
  });
633
- it("writes only the global [agents] defaults into config", async () => {
730
+ it("does not write retired global [agents] defaults", async () => {
634
731
  const wd = await mkdtemp(join(tmpdir(), "omx-idem-"));
635
732
  try {
636
733
  const configPath = join(wd, "config.toml");
637
734
  await mergeConfig(configPath, wd);
638
735
  const toml = await readFile(configPath, "utf-8");
639
- assert.match(toml, /^\[agents\]$/m, "global [agents] section present");
640
- assert.match(toml, /^max_threads = 6$/m, "max_threads default written");
641
- assert.match(toml, /^max_depth = 2$/m, "max_depth default written");
642
- assert.doesNotMatch(toml, /^\[agents\.[^\]]+\]$/m, "legacy per-agent config_file entries omitted");
736
+ assert.doesNotMatch(toml, /^\[agents\]$/m);
737
+ assert.doesNotMatch(toml, /^max_threads\s*=/m);
738
+ assert.doesNotMatch(toml, /^max_depth\s*=/m);
643
739
  }
644
740
  finally {
645
741
  await rm(wd, { recursive: true, force: true });
@@ -793,7 +889,7 @@ describe("config generator idempotency (#384)", () => {
793
889
  });
794
890
  it("preserves trailing user config after an unmatched managed hook trust-state start marker", () => {
795
891
  const malformed = [
796
- 'model = "gpt-5.5"',
892
+ 'model = "gpt-5.6-sol"',
797
893
  "",
798
894
  "# OMX-owned Codex hook trust state",
799
895
  "# Missing the end fence must not cause trailing user config deletion.",
@@ -823,7 +919,7 @@ describe("config generator idempotency (#384)", () => {
823
919
  assert.ok(managedPostCompactHash);
824
920
  assert.ok(managedStopHash);
825
921
  const orphaned = [
826
- 'model = "gpt-5.5"',
922
+ 'model = "gpt-5.6-sol"',
827
923
  "",
828
924
  "[hooks.state]",
829
925
  "",
@@ -859,7 +955,7 @@ describe("config generator idempotency (#384)", () => {
859
955
  it("preserves same-key user hook trust state and suppresses generated duplicates", () => {
860
956
  const hooksPath = "/tmp/codex/hooks.json";
861
957
  const config = [
862
- 'model = "gpt-5.5"',
958
+ 'model = "gpt-5.6-sol"',
863
959
  "",
864
960
  '[hooks.state."/tmp/codex/hooks.json:post_compact:0:0"]',
865
961
  'trusted_hash = "sha256:user"',
@@ -939,7 +1035,7 @@ describe("config generator idempotency (#384)", () => {
939
1035
  });
940
1036
  it("dedupes prior fenced managed hook trust-state blocks before writing a replacement", () => {
941
1037
  const first = upsertManagedCodexHookTrustState([
942
- 'model = "gpt-5.5"',
1038
+ 'model = "gpt-5.6-sol"',
943
1039
  "",
944
1040
  '[hooks.state."custom:/hooks.json:stop:0:0"]',
945
1041
  'trusted_hash = "sha256:user"',
@@ -1086,7 +1182,7 @@ describe("config generator idempotency (#384)", () => {
1086
1182
  });
1087
1183
  it("removes an existing multiline developer_instructions assignment as one root entry", () => {
1088
1184
  const existing = [
1089
- 'model = "gpt-5.5"',
1185
+ 'model = "gpt-5.6-sol"',
1090
1186
  'developer_instructions = """Custom instructions survive as valid TOML.',
1091
1187
  'This line used to be orphaned by setup.',
1092
1188
  'This closing line used to break parsing."""',