mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-10 01:09:43 +02:00
fix(codex): read the model above codex 0.162's new footer hint row
Every codex tile and tab showed no model, unlike claude and deepseek. Codex reports its model only in the footer under the composer (` GPT-6-Luna default · ~/codeman-cases/testcase`), and the registry read the pane's LAST row for it. Codex 0.162.0 added a hint row under the footer at rest (` ← for agents · ? for shortcuts`, or ` ? for shortcuts`), so the last row was always the hint and `displayModel` stayed null. Measured live on the 1.36.0 beta: the hint is there at rest and after a turn, and gone while a prompt is being typed (the footer is the last row again then). The codex modelDetect window is now two rows, and the footer must be either the last row or followed by exactly one more two-space-indented row. Anchoring to the end of the window keeps the guard the one-row rule had: with the footer hidden, the last two rows are a transcript line and the `›` composer, so a footer-shaped line the agent printed is not read. Tests cover both 0.162 hint variants, the typing layout, the hint never read as a model, and a forged footer-plus-indented pair above the composer. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -645,13 +645,23 @@ const CODEX: CliEntry = {
|
||||
},
|
||||
// The footer under the composer, measured on a live 0.147.0 pane:
|
||||
// ` gpt-5.6-terra default · ~/codeman-cases/th-scratch` (model, reasoning effort,
|
||||
// cwd). It is the pane's LAST row, below the composer, so the transcript never
|
||||
// reaches it, and the effort word right after the model is codex's own format: an
|
||||
// open slash-command popup or a bare line of prose does not have that shape. A
|
||||
// footer without an effort word (a model with no reasoning setting) is not read,
|
||||
// and the session keeps its last known or launch model.
|
||||
// cwd). It sits below the composer, so the transcript never reaches it, and the
|
||||
// effort word right after the model is codex's own format: an open slash-command
|
||||
// popup or a bare line of prose does not have that shape. A footer without an effort
|
||||
// word (a model with no reasoning setting) is not read, and the session keeps its
|
||||
// last known or launch model.
|
||||
// ⚠️ It is not always the LAST row. 0.162.0 (measured 2026-10-09) adds a hint row
|
||||
// under it at rest, ` ← for agents · ? for shortcuts` or ` ? for shortcuts`, and
|
||||
// drops it again while a prompt is being typed. With a one-row window the footer was
|
||||
// never seen and every codex tile showed no model. So the window is two rows and the
|
||||
// footer is either the last one or followed by exactly one more two-space-indented
|
||||
// row. The `$` (no `m` flag: the end of the window) is what keeps the guard the
|
||||
// one-row rule had: with the footer hidden, the last two rows are a transcript line
|
||||
// and the `›` composer, and a forged footer-shaped transcript line is not followed by
|
||||
// an indented row, so it is not read.
|
||||
modelDetect: {
|
||||
screenLine: String.raw`^ {2}([A-Za-z0-9][\w.:/@+-]{0,79}) (?:none|minimal|low|medium|high|xhigh|max|default) · `,
|
||||
screenLine: String.raw`(?:^|\n) {2}([A-Za-z0-9][\w.:/@+-]{0,79}) (?:none|minimal|low|medium|high|xhigh|max|default) · [^\n]*(?:\n {2}[^\n]*)?$`,
|
||||
screenLines: 2,
|
||||
},
|
||||
// Two columns, like claude's, measured on a live 0.154.0 answer: the `•`/`›`/`⚠`
|
||||
// markers sit in the gutter, prose continuations sit at 2, and a nested YAML block
|
||||
|
||||
Reference in New Issue
Block a user