Repository navigation
Phone: Grok, Claude Code, and Codex show “Collie cannot read this dialog” and drop the send (since 0.12) #294
Description
What happened, and what did you expect?
On the phone, Grok, Claude Code, and Codex panes are classified as a dialog Collie cannot read. Sending a message does not reach the input box.
A phone pane in that state shows:
- Banner: "Message didn't reach the input box — a dialog may be waiting, and if you were answering it by key that key likely landed. Nothing was submitted."
- A card over the raw mirror: "COLLIE CANNOT READ THIS DIALOG", with Put away and a single Ctrl+C button.
- The composer does not submit the typed message.
The same error appears for Grok, Claude Code, and Codex on the phone. It started in 0.12 and is still present on 1.13.1.
Expected: Collie reads these panes on the phone. A normal composer accepts the message and submits it. A real dialog is parsed into its own actions. Herdr is behaving correctly (0.9.1; the socket and the Grok / Claude / Codex integrations all report ok). This is Collie misreading the phone pane.
Related: #293 is a Codex idle composer classified the same way. This report is the phone failure for Grok, Claude Code, and Codex together, present since 0.12.
Output of collie doctor --json
[
{
"check": "collie",
"status": "ok",
"detail": "v1.13.1+9e9d021 · macos-arm64",
"remedy": null
},
{
"check": "config-file",
"status": "skipped",
"detail": "home $HOME/.collie/config.toml (absent) · instance $HOME/.config/herdr/plugins/config/herdr.collie/config.toml (absent) — no config file, the env decides everything",
"remedy": "`collie config init`"
},
{
"check": "web-dist",
"status": "ok",
"detail": "25 entries, index.html present",
"remedy": null
},
{
"check": "path-link",
"status": "ok",
"detail": "$HOME/.local/bin/collie → $HOME/.local/share/collie/current/bin/collie (this checkout)",
"remedy": null
},
{
"check": "install",
"status": "ok",
"detail": "binary install, version 1.13.1 at $HOME/.local/share/collie (1 previous kept)",
"remedy": null
},
{
"check": "versions",
"status": "ok",
"detail": "current 1.13.1 · 1 retained (1.12.1)",
"remedy": null
},
{
"check": "update-source",
"status": "ok",
"detail": "github.com/AltanS/collie",
"remedy": null
},
{
"check": "herdr-socket",
"status": "ok",
"detail": "$HOME/.config/herdr/herdr.sock",
"remedy": null
},
{
"check": "bind",
"status": "ok",
"detail": "127.0.0.1 (mode solo)",
"remedy": null
},
{
"check": "bind-wildcard",
"status": "ok",
"detail": "bound to one address",
"remedy": null
},
{
"check": "acl",
"status": "ok",
"detail": "inbound packet filter is non-empty — can't disprove reachability; non-empty proves nothing",
"remedy": null
},
{
"check": "front-door",
"status": "ok",
"detail": "<tailnet-host>.ts.net:443 → http://127.0.0.1:8787 (recorded and live)",
"remedy": null
},
{
"check": "mux",
"status": "ok",
"detail": "herdr — see herdr-socket · set by COLLIE_MUX",
"remedy": null
},
{
"check": "beacon-hooks-claude",
"status": "ok",
"detail": "not needed — herdr reports agents itself; hooks installed: no",
"remedy": null
},
{
"check": "beacons",
"status": "skipped",
"detail": "nothing writes one here, because the emitter is not installed",
"remedy": "`collie hooks install claude`"
},
{
"check": "herdr-version",
"status": "ok",
"detail": "herdr 0.9.1",
"remedy": null
},
{
"check": "integration-claude",
"status": "ok",
"detail": "installed and current",
"remedy": null
},
{
"check": "integration-codex",
"status": "ok",
"detail": "installed and current",
"remedy": null
},
{
"check": "integration-grok",
"status": "ok",
"detail": "installed and current",
"remedy": null
},
{
"check": "integration-hermes",
"status": "ok",
"detail": "no hook is installed — not installed ($HOME/.hermes/plugins/herdr-agent-state/__init__.py); no hermes pane is missing a session right now, so nothing is hidden yet — nothing here needs it",
"remedy": null
},
{
"check": "integration-opencode",
"status": "ok",
"detail": "installed and current",
"remedy": null
},
{
"check": "integration-pi",
"status": "ok",
"detail": "no hook is installed — not installed ($HOME/.pi/agent/extensions/herdr-agent-state.ts); no pi pane is missing a session right now, so nothing is hidden yet — nothing here needs it",
"remedy": null
},
{
"check": "hook-python3",
"status": "ok",
"detail": "/opt/homebrew/bin/python3",
"remedy": null
},
{
"check": "agent-sessions",
"status": "ok",
"detail": "8 agent pane(s), 8 of them on an agent this build can read a journal for — every one of those reports a session",
"remedy": null
},
{
"check": "journal-roots",
"status": "ok",
"detail": "4 of 7 roots present — claude: $HOME/.claude/projects, codex: $HOME/.codex/sessions, opencode: $HOME/.local/share/opencode, grok: $HOME/.grok/sessions (resolved from $HOME; the BRIDGE resolves them from ITS OWN user's home)",
"remedy": null
},
{
"check": "cache-claims",
"status": "ok",
"detail": "12 cache rules and 8 reset rules, every claim carrying the page it was read on; the oldest was checked 33 days ago",
"remedy": null
},
{
"check": "cache-rules",
"status": "ok",
"detail": "no $HOME/.config/herdr/plugins/config/herdr.collie/cache-rules.toml — every TTL is the shipped rule",
"remedy": null
},
{
"check": "cache-env",
"status": "ok",
"detail": "no Claude Code cache variable is set in this shell",
"remedy": null
},
{
"check": "restart-pending",
"status": "ok",
"detail": "the running bridge reports it is executing the version installed at $HOME/.local/share/collie/versions/1.13.1/bin/collie — judged by version alone on this platform, where the executable itself cannot be compared",
"remedy": null
},
{
"check": "clock",
"status": "skipped",
"detail": "solo — there is no far side to compare against, and inventing a reference clock is worse than silence",
"remedy": "re-run `collie doctor` once this collie is in a crew"
}
]
Activity
CorrectRoadH commentedon Sep 26, 2026
AltanS commentedon Sep 26, 2026
Thanks @CorrectRoadH, 1.13.2 fixes the Codex part of this: Codex 0.156 changed its status row, so Collie lost the composer on every idle Codex pane. For Claude Code, 1.13.2 reads the new permission dialogs, and a pasted
────or❯line no longer breaks a send. I could not reproduce an unread idle Claude Code pane, and I have no Grok here, so I am closing this. Please update to 1.13.2 and reopen if the card still shows, with the pane text fromherdr pane read <pane-id> --source recent --lines 200 --format ansi(checked for anything private) and the agent's version.CorrectRoadH commentedon Sep 26, 2026
@AltanS not fixed in 1.13.2
I got bug after send msg. msg send fail. but i press enter key. it will send success
CorrectRoadH commentedon Sep 26, 2026
AltanS commentedon Sep 26, 2026
Thanks @CorrectRoadH, reopening. The card in your screenshot comes from a Grok pane, and I could not reproduce it with Claude Code or Codex on 1.13.2. When it happens again, please run
herdr pane read <pane-id> --source recent --lines 200 --format ansi > pane.txton that Grok pane before you press Enter, and attach the file withgrok --version.CorrectRoadH commentedon Sep 26, 2026
CorrectRoadH commentedon Sep 26, 2026
CorrectRoadH commentedon Sep 26, 2026
codex has same issue.
CorrectRoadH commentedon Sep 26, 2026
CorrectRoadH commentedon Sep 26, 2026
@AltanS
2 remaining items
fix(history): a new Codex pane is not blamed on the Herdr integration (…
AltanS commentedon Sep 26, 2026
Thanks @CorrectRoadH, your screenshots led to two real bugs, and 1.13.3 fixes both. A Codex started while no Herdr client has been attached since the Herdr server started gets no answer to its colour queries and draws its input box without colours, which Collie could not read; it reads it now, also for a Codex that is already running. The "codex has not reported a session" note was wrong as well: Codex reports its session only after its first prompt, and the note now says so. I am keeping this open for Claude Code and Grok, which I cannot reproduce. After updating, check that the phone shows no "new build" note, and if a pane still shows the card, attach the output of
herdr pane read <pane-id> --source recent --lines 200 --format ansi > pane.txtfor that pane, with the agent's version.CorrectRoadH commentedon Sep 26, 2026
@AltanS
pane.txt
AltanS commentedon Sep 27, 2026
Thanks @CorrectRoadH, this capture found the Codex bug, and the fix is in. Codex 0.157 turned on its full-screen layout by default, and that layout draws one more row under the status row, in your case
← for agents · ? for shortcuts. Collie expected the status row to be the last row, so it found no input box, showed the "cannot read this dialog" card and refused every send. I reproduced it on Codex 0.157.1, and Collie now reads that row as part of the input box. It ships with the next release, your capture stays in the test suite with the chat and your project path cut out, and you get the credit in the changelog. Your capture came from inside Codex, so it cannot tell me what goes wrong in Claude Code and Grok. For those two I still need the sameherdr pane read <pane-id> --source recent --lines 200 --format ansi > pane.txt, run from another terminal while the phone shows the card on that pane, plus the output ofclaude --versionandgrok --version, so the issue stays open for them.fix(harness): Codex 0.157 keeps its input box under the key-hint row (#…
CorrectRoadH commentedon Sep 27, 2026
@AltanS I started fresh Claude Code and Grok agents in Herdr and tested sending from Collie 1.14.0+8607480 in a 390×844 browser viewport. Herdr is 0.9.1. I captured each pane with
herdr pane read <pane-id> --source recent --lines 200 --format ansi; the full ANSI captures are here, with local project names replaced by equal-lengthREDACTED:grok --version:grok 1.0.41 (4220f3b224a6). Collie showed “Message didn't reach the input box” and “Collie cannot read this dialog”; the Collie composer kept my message. The Herdr capture shows❯ Please reply with exactly: issue294-grok-okin Grok's input line, with no submitted turn. Herdr reported the Grok pane as idle.claude --version:2.1.283 (Claude Code). The same Collie send flow submitted the test message and Claude repliedissue294-claude-ok. I did not reproduce a persistent Claude Code failure in this run.The Grok capture was taken while the failure card was present, before pressing Enter or changing the pane. This test used a narrow browser viewport on the local Collie UI; I did not test on the physical phone this time.
fix(harness): Grok 1.0.41 keeps its input box under the newline hint (#…
CorrectRoadH commentedon Sep 27, 2026
/usage not work in collie
AltanS commentedon Sep 27, 2026
Thanks @CorrectRoadH, your Grok capture found the bug, and 1.14.1 fixes it. While a draft is in the box, Grok 1.0.41 adds
Shift+Enter/Opt+Enter:newlineto the key-hint row under its input box, and Collie did not know a hint with two keys joined by/. Collie typed your message, then lost the input box, so the send stopped with "Message didn't reach the input box" and the card covered the pane. Collie now reads that hint, your capture stays in the test suite with the project path replaced, and you get the credit in the changelog. I have no Grok here, so I checked the fix against your capture only, and Grok's permission, question and plan cards were last checked on 1.0.5. Your Claude Code run sent fine, so I am closing this issue. Please update to 1.14.1, and if a pane still shows the card, on any agent, open a new issue with the sameherdr pane readcapture and the agent's version.dantebarba commentedon Sep 27, 2026
Having same issue with Collie 1.14.1, since 1.12. In this case Claude Code. Raw mode solves it.
Merge upstream/main (efd4ec1): Claude 2.1.283 and Codex 0.156 readers…
Merge upstream AltanS/collie through 1.15.0
fix(codex): a many-field status line started headless keeps its composer
fix(codex): a many-field status line started headless keeps its composer