commandmate 0.40.0 → 0.40.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 (181) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +150 -150
  3. package/.next/app-path-routes-manifest.json +26 -26
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.js +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/capabilities/route.js +1 -1
  18. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  146. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  148. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  149. package/.next/server/app/page_client-reference-manifest.js +1 -1
  150. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  152. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  154. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  156. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/worktrees/[id]/page.js +1 -1
  159. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  160. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app-paths-manifest.json +26 -26
  162. package/.next/server/chunks/6130.js +1 -1
  163. package/.next/server/chunks/6661.js +1 -1
  164. package/.next/server/chunks/8728.js +1 -1
  165. package/.next/server/middleware-manifest.json +5 -5
  166. package/.next/server/pages/500.html +1 -1
  167. package/.next/server/server-reference-manifest.json +1 -1
  168. package/.next/static/chunks/{1642-767aed8e7c61ef7f.js → 1642-fb2e176aaadbd137.js} +1 -1
  169. package/.next/static/chunks/{2407-e259744922e0834c.js → 2407-d750620d0511e94f.js} +1 -1
  170. package/.next/static/chunks/{2619-a305ad4810f1393a.js → 2619-04bc32f026a0d946.js} +1 -1
  171. package/.next/static/chunks/{8165-8944f74c53f3021f.js → 8165-d3b7c8a7aa776bc7.js} +1 -1
  172. package/.next/static/chunks/app/{layout-b90cce6a51c91f4c.js → layout-3d3fcc8aac7b3bb5.js} +1 -1
  173. package/.next/static/chunks/app/worktrees/[id]/{page-e9ebdcd317b62e4a.js → page-a91e812ad9d94697.js} +1 -1
  174. package/.next/static/chunks/app/worktrees/[id]/terminal/{page-c601f3b3ece6557e.js → page-373ea37b16d930c7.js} +1 -1
  175. package/.next/trace +13 -13
  176. package/dist/server/src/lib/detection/model-info-extractor.js +49 -10
  177. package/dist/server/src/lib/session/agent-event-state.js +8 -1
  178. package/package.json +1 -1
  179. package/release-notes/0.40.1.json +20 -0
  180. /package/.next/static/{o3mZdwNhCks6IlcAOPinc → JfzIPPhL-ikSVcJYOKgfD}/_buildManifest.js +0 -0
  181. /package/.next/static/{o3mZdwNhCks6IlcAOPinc → JfzIPPhL-ikSVcJYOKgfD}/_ssgManifest.js +0 -0
@@ -62,7 +62,7 @@
62
62
  * @see Issue #1784, Phase 2 of the model/effort visibility series
63
63
  */
64
64
  Object.defineProperty(exports, "__esModule", { value: true });
65
- exports.ANTIGRAVITY_MODEL_ID_EFFORT_PATTERN = exports.COMMAND_CODE_BANNER_MODELS_PATTERN = exports.OPENCODE_STEP_MODEL_PATTERN = exports.COPILOT_MODEL_CHANGE_PATTERN = exports.ANTIGRAVITY_BANNER_MODEL_PATTERN = exports.ANTIGRAVITY_STATUS_BAR_HINT_PATTERN = exports.CLAUDE_MODEL_SWITCH_PATTERN = exports.CLAUDE_STARTUP_BANNER_PATTERN = exports.CODEX_STATUS_BAR_WITH_TRAILER_PATTERN = exports.CODEX_FOOTER_MODEL_PATTERN = exports.REASONING_EFFORT_LEVELS = void 0;
65
+ exports.ANTIGRAVITY_MODEL_ID_EFFORT_PATTERN = exports.COMMAND_CODE_BANNER_MODELS_PATTERN = exports.OPENCODE_STEP_MODEL_PATTERN = exports.COPILOT_MODEL_CHANGE_PATTERN = exports.ANTIGRAVITY_BANNER_MODEL_PATTERN = exports.ANTIGRAVITY_STATUS_BAR_HINT_PATTERN = exports.CLAUDE_MODEL_SWITCH_PATTERN = exports.CLAUDE_STARTUP_BANNER_PATTERN = exports.CODEX_STATUS_BAR_WITH_TRAILER_PATTERN = exports.CODEX_FOOTER_EFFORT_SLOT_PATTERN = exports.CODEX_FOOTER_MODEL_PATTERN = exports.REASONING_EFFORT_LEVELS = void 0;
66
66
  exports.resolveEffortToken = resolveEffortToken;
67
67
  exports.extractModelInfo = extractModelInfo;
68
68
  exports.deriveEffortFromModelId = deriveEffortFromModelId;
@@ -72,11 +72,27 @@ const cli_patterns_1 = require("./cli-patterns");
72
72
  /**
73
73
  * The reasoning-effort vocabulary these tools actually print.
74
74
  *
75
- * `minimal` and `xhigh` are the ends Codex exposes; Claude prints `xhigh` too.
75
+ * `minimal` and `xhigh` are the ends Codex exposed until 0.155; Claude prints
76
+ * `xhigh` too. Issue #2835 adds the three levels above `xhigh` that codex 0.155.1
77
+ * defines (`ReasoningEffort` in `codex-rs/protocol/src/openai_models.rs`, tag
78
+ * `rust-v0.155.1`: `max` / `ultra` / `persistent`, drawn in the status bar
79
+ * verbatim by `status_line_reasoning_effort_label`). Its `None` is drawn as
80
+ * `default` and is deliberately NOT a level — it names no effort. Command Code's
81
+ * `with max effort` banner resolves through the same list.
82
+ *
76
83
  * Anything outside this list is treated as "not an effort token", which is what
77
84
  * keeps a stray word at the end of a status bar from being published as one.
78
85
  */
79
- exports.REASONING_EFFORT_LEVELS = ['minimal', 'low', 'medium', 'high', 'xhigh'];
86
+ exports.REASONING_EFFORT_LEVELS = [
87
+ 'minimal',
88
+ 'low',
89
+ 'medium',
90
+ 'high',
91
+ 'xhigh',
92
+ 'max',
93
+ 'ultra',
94
+ 'persistent',
95
+ ];
80
96
  /**
81
97
  * Longest string accepted as a model name.
82
98
  *
@@ -156,7 +172,23 @@ function resolveEffortToken(token, options = {}) {
156
172
  * optional `\s+<keyword>` are adjacent, never nested (ReDoS-safe, same rule
157
173
  * `cli-patterns.ts` documents).
158
174
  */
159
- exports.CODEX_FOOTER_MODEL_PATTERN = /^\s*([^\s·]+)(?:\s+(minimal|low|medium|high|xhigh)\b)?/i;
175
+ exports.CODEX_FOOTER_MODEL_PATTERN = /^\s*([^\s·]+)(?:\s+(minimal|low|medium|high|xhigh|max|ultra|persistent)\b)?/i;
176
+ /**
177
+ * The head of a Codex status bar that has a word where the effort goes
178
+ * (Issue #2835).
179
+ *
180
+ * codex draws `<model> <effort>` and, for an effort it has no name for, still
181
+ * draws a word there: `default` for `None` (`status_line_reasoning_effort_label`,
182
+ * codex 0.155.1; live in `tests/fixtures/agent-mode-2592/codex-default.txt`), or
183
+ * a model-defined value verbatim. A head whose second token is a word is
184
+ * therefore a bar that SHOWS an effort, even when {@link CODEX_FOOTER_MODEL_PATTERN}
185
+ * cannot name it. The legacy o4-mini head (`o4-mini 50% left`) has no
186
+ * such slot — its second token starts with a digit — and neither does a status
187
+ * line configured to show the model alone.
188
+ *
189
+ * No /g. No nested quantifiers: two adjacent runs and a lookahead.
190
+ */
191
+ exports.CODEX_FOOTER_EFFORT_SLOT_PATTERN = /^\s*[^\s·]+\s+[A-Za-z][A-Za-z_-]*(?=\s|$)/;
160
192
  /**
161
193
  * A codex status bar with something AFTER the path (Issue #2592).
162
194
  *
@@ -202,7 +234,8 @@ function readCodexFooter(line) {
202
234
  const separator = line.indexOf('·');
203
235
  if (separator < 0)
204
236
  return null;
205
- const match = exports.CODEX_FOOTER_MODEL_PATTERN.exec(line.slice(0, separator));
237
+ const head = line.slice(0, separator);
238
+ const match = exports.CODEX_FOOTER_MODEL_PATTERN.exec(head);
206
239
  if (!match)
207
240
  return null;
208
241
  const model = match[1];
@@ -219,6 +252,13 @@ function readCodexFooter(line) {
219
252
  // beside it is what separates chrome from prose.
220
253
  if (effort === null && !/\d/.test(model))
221
254
  return null;
255
+ // Issue #2835: a bar that shows an effort this module cannot name says the
256
+ // latched effort is no longer current. Publishing the old one would be a
257
+ // wrong value, which is worse than none — the case that found it was a
258
+ // session moved from `xhigh` to `max` while `max` was not yet a level.
259
+ if (effort === null && exports.CODEX_FOOTER_EFFORT_SLOT_PATTERN.test(head)) {
260
+ return { model, effort: null, effortUnreadable: true };
261
+ }
222
262
  return { model, effort };
223
263
  }
224
264
  // =============================================================================
@@ -612,11 +652,10 @@ function readOpencodeStepMarker(line) {
612
652
  * footer reads `? for shortcuts · taste on`), so everything from the dot on
613
653
  * is dropped, and the dot itself is optional.
614
654
  * - **The effort is read when the banner prints one, through the shared
615
- * vocabulary.** `low` / `high` resolve; `max` is not a
616
- * {@link ReasoningEffort} and answers null rather than widening a list every
617
- * other reader and the UI type depend on. The model half is published either
618
- * way: the ` with … effort` frame delimits it cleanly, so nothing is
619
- * half-read.
655
+ * vocabulary.** `low` / `high` / `max` resolve (`max` since Issue #2835,
656
+ * which added it to {@link REASONING_EFFORT_LEVELS} for codex; before that it
657
+ * answered null). The model half is published either way: the
658
+ * ` with … effort` frame delimits it cleanly, so nothing is half-read.
620
659
  *
621
660
  * ## After a `/model` switch (measured, 1.49.0)
622
661
  *
@@ -1363,6 +1363,13 @@ function getLastKnownAgentModel(worktreeId, cliToolId, instanceId) {
1363
1363
  * which is the honest state for gemini/copilot and for any session whose chrome
1364
1364
  * this module has no rule for.
1365
1365
  *
1366
+ * **The one exception is an effort the frame shows but cannot name** (Issue
1367
+ * #2835, `info.effortUnreadable`). A codex bar that draws `default` or a
1368
+ * model-defined value where `xhigh` used to be is not "not showing" the effort
1369
+ * — it is showing a different one. Keeping `xhigh` would publish a value the
1370
+ * session is no longer running at, so the effort half is dropped to null and
1371
+ * the model half latches as usual.
1372
+ *
1366
1373
  * @param info - {@link import('../../lib/detection/model-info-extractor').extractModelInfo}'s answer
1367
1374
  */
1368
1375
  function recordCapturedModelInfo(worktreeId, cliToolId, instanceId, info, at = Date.now()) {
@@ -1373,7 +1380,7 @@ function recordCapturedModelInfo(worktreeId, cliToolId, instanceId, info, at = D
1373
1380
  const model = info.model ? info.model.slice(0, agent_event_types_1.MAX_EVENT_DETAIL_LENGTH) : (previous?.model ?? null);
1374
1381
  capturedModelInfo.set(key, {
1375
1382
  model,
1376
- effort: info.effort ?? previous?.effort ?? null,
1383
+ effort: info.effortUnreadable ? null : (info.effort ?? previous?.effort ?? null),
1377
1384
  // Issue #2361: the change stamp moves only when the model half takes a
1378
1385
  // different value. A banner re-read on every poll keeps the stamp where the
1379
1386
  // first sighting put it, so it never out-dates a hook by mere repetition.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commandmate",
3
- "version": "0.40.0",
3
+ "version": "0.40.1",
4
4
  "description": "A local control plane for agent CLIs — orchestration and visibility for Claude Code, Codex, Gemini CLI, and more across Git worktrees",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -0,0 +1,20 @@
1
+ {
2
+ "version": "0.40.1",
3
+ "date": "2026-09-22",
4
+ "highlight": {
5
+ "ja": "Codex の推論の強さが max のとき、セッション一覧とインスタンス一覧に表示されない問題を直しました。",
6
+ "en": "Fixed Codex sessions with max reasoning effort not showing that effort in the session and instance lists."
7
+ },
8
+ "added": [],
9
+ "improved": [],
10
+ "fixed": [
11
+ {
12
+ "ja": "Codex の推論の強さが max・ultra・persistent のとき、一覧に表示されるようになりました。",
13
+ "en": "Codex reasoning effort set to max, ultra, or persistent now appears in the session and instance lists."
14
+ },
15
+ {
16
+ "ja": "Codex で推論の強さを切り替えたあと、前の値が表示され続ける問題を直しました。",
17
+ "en": "Fixed the previous reasoning effort staying on screen after switching effort in a Codex session."
18
+ }
19
+ ]
20
+ }