Skip to content

Phone: Grok, Claude Code, and Codex show “Collie cannot read this dialog” and drop the send (since 0.12) #294

Closed
youngsecurity/collie
#65

Description

@CorrectRoadH

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

  1. added
    area: harnessPer-agent adapters and send guards (claude/codex/pi/omp)
    bugSomething isn't working
    regressionWorked in an earlier release, broke in a later one
    on Sep 26, 2026
  2. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author
    Image
  3. AltanS commented on Sep 26, 2026

    @AltanS
    Owner

    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 from herdr pane read <pane-id> --source recent --lines 200 --format ansi (checked for anything private) and the agent's version.

  4. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author

    @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

  5. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author
    Image
  6. AltanS commented on Sep 26, 2026

    @AltanS
    Owner

    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.txt on that Grok pane before you press Enter, and attach the file with grok --version.

  7. reopened this on Sep 26, 2026
  8. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author
    Image
  9. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author
    Image
  10. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author

    codex has same issue.

  11. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author
    Image It says I haven't integrated it, but I'm sure I have. Image
  12. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author
  13. 2 remaining items

  14. AltanS commented on Sep 26, 2026

    @AltanS
    Owner

    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.txt for that pane, with the agent's version.

  15. CorrectRoadH commented on Sep 26, 2026

    @CorrectRoadH
    Author
  16. AltanS commented on Sep 27, 2026

    @AltanS
    Owner

    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 same herdr 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 of claude --version and grok --version, so the issue stays open for them.

  17. CorrectRoadH commented on Sep 27, 2026

    @CorrectRoadH
    Author

    @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-length REDACTED:

    • Grok capture (the card was visible, before any manual Enter) — 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-ok in Grok's input line, with no submitted turn. Herdr reported the Grok pane as idle.
    • Claude Code capture (after a successful send) — claude --version: 2.1.283 (Claude Code). The same Collie send flow submitted the test message and Claude replied issue294-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.

  18. CorrectRoadH commented on Sep 27, 2026

    @CorrectRoadH
    Author

    image

    /usage not work in collie

  19. AltanS commented on Sep 27, 2026

    @AltanS
    Owner

    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:newline to 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 same herdr pane read capture and the agent's version.

  20. dantebarba commented on Sep 27, 2026

    @dantebarba

    Having same issue with Collie 1.14.1, since 1.12. In this case Claude Code. Raw mode solves it.

    Image
  21. added a commit that references this issue on Sep 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: harnessPer-agent adapters and send guards (claude/codex/pi/omp)bugSomething isn't workingregressionWorked in an earlier release, broke in a later one

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions