docs: tighten the inbox, push and idle-detection wording

Follow-up to the previous commit, after a fact check against the code.

- Answer surfaces: the header bell answers Claude prompts, the phone
  strip only Claude dialogs (and only with the inbox on), and push
  Approve/Deny only a Claude permission prompt (PUSH_EVENT_MAP gives
  actions to permission_prompt alone). README, its Chinese mirror, the
  notifications page and the phone guide now say so.
- Antigravity and Grok Build: after the 3 s launch settle, idle is armed
  only by Claude's prompt marker and working only by a braille spinner,
  so "idle when output stops changing" was wrong. The wiki, the grok
  guide and the API reference now call their status unreliable.
- DeepSeek Harness: its idle and working reports become stop and
  agent_working, which drive respawn, waits and the inbox but not the
  session's own working/idle display. Keeping Agents Running says that,
  and that the respawn path needs the status bridge.
- The wait section of the API reference no longer calls exit the only
  dependable signal for screen-checked modes; the inbox page names how
  Codex and DeepSeek items clear; Core Concepts and Hooks And
  Integrations no longer call DeepSeek "the one" exception; Agent CLIs
  notes that Codex dialogs still raise the red alert; the inbox design
  doc notes the alert-only items.
- Skill: stop and blocked list deepseek, and SKILL.md no longer says
  codex has neither a transcript nor blocked. Mirrored with
  scripts/sync-plugin.mjs.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Codeman maintainer committed 2026-10-17 18:28:03 +02:00
1 parent e17eb633c3
commit de99a6d57a
17 files changed
+62 -49

No files matched your search

+3 -2
View File
@@ -69,7 +69,7 @@ output. The other CLIs expose no equivalent.
| Respawn cycling and unattended runs | Yes | Yes |
| Cron jobs | Yes | Yes |
| Docker cases, remote SSH cases | Yes | Yes |
| Precise idle detection | Yes | Codex, Pi, OpenCode, OMP and Gemini: same screen check, via their own prompt and working line. DeepSeek: reports its state itself. Others: output stabilization, coarser |
| Precise idle detection | Yes | Codex, Pi, OpenCode, OMP and Gemini: same screen check, via their own prompt and working line. DeepSeek: reports its end of turn itself. Antigravity and Grok: generic cues only, unreliable |
| Auto-resume when a usage limit resets | Yes | No |
| Plan usage chip | Yes | No |
| Approvals Inbox | Yes | DeepSeek and Codex as alerts (answer in the terminal); others no |
@@ -305,7 +305,8 @@ into the case's `.claude/settings.local.json` so that `/model` keeps working.
auto-resume, the Approvals Inbox, and subagent visualization all assume it.
- **Codex, OpenCode, Gemini, Antigravity, Grok, OMP** when you prefer that agent or that
model. You get the session layer, respawn, cron, Docker, and remote SSH; you do not get the
hook-driven features.
hook-driven features (Codex dialogs still raise the red alert and an alert-only inbox card,
see [Codex](#codex) above).
- **DeepSeek Harness** if you want DeepSeek's models with real status signals. It is the one
non-Claude mode that reports idle, working and blocked to Codeman itself.
- **Pi** if you want a fast, unsandboxed agent and you understand what project trust does.
+1 -1
View File
@@ -164,7 +164,7 @@ report events back: a permission prompt appeared, the turn finished, the agent w
task completed. Those events drive tab alerts, the Approvals Inbox, notifications, and the
wait primitives.
This is why some features are Claude-only. The one partial exception is DeepSeek Harness,
This is why some features are Claude-only. One partial exception is DeepSeek Harness,
whose terminal front door reports idle, working and blocked to Codeman over the harness's
own supervisor contract, so it gets the hook-driven signals without a hook file. Codex gets
one of them from its screen: Codeman reads its approval, question and trust dialogs off the
+1 -1
View File
@@ -19,7 +19,7 @@ terminal into something that can notify you.
| `teammate_idle` | An agent-team member goes idle. | Team surfaces. |
| `task_completed` | A task finishes. | Task tracking, run summary. |
This is why several Codeman features are Claude-only. The one partial exception is DeepSeek
This is why several Codeman features are Claude-only. One partial exception is DeepSeek
Harness, whose terminal front door reports idle, working and blocked to Codeman over the
harness's own supervisor contract, so it gets the hook-driven surfaces without any hook
file. Codex gets one of them from its screen: Codeman reads its approval, question and
+8 -4
View File
@@ -30,9 +30,12 @@ output silence, and token stability.
**For the other CLIs** it depends on what the CLI tells Codeman. Codex, OpenCode, Gemini
CLI, Pi and OMP each declare their own prompt marker and working line, so they get the same
screen check Claude does (before 1.26.1 every Codex session reported idle for its whole
life). DeepSeek Harness reports idle, working and blocked to Codeman itself, which is as
precise as hooks. Antigravity and Grok Build declare neither, so they fall back to output
stabilization: the session is idle when output stops changing, which is coarser.
life). DeepSeek Harness reports its end of turn and its dialogs to Codeman itself, which is
as precise as hooks; its working and idle display still comes from its output. Antigravity
and Grok Build declare neither. Codeman calls a new pane of theirs idle 3 seconds after
launch, and after that it has only generic cues to go on (Claude's `❯` prompt marker, a
braille spinner glyph), which these CLIs may not draw, so their working and idle status is
unreliable.
## The Respawn Controller
@@ -163,7 +166,8 @@ run summary and lifecycle log carry the detail.
a vague next cycle.
- **Non-Claude sessions can respawn**, but with no usage-limit auto-resume, and with
output-based idle detection except on DeepSeek Harness, whose own end-of-turn report
reaches the respawn controller the way Claude's `stop` hook does.
reaches the respawn controller the way Claude's `stop` hook does while its status bridge
is on (a local session, by default).
- **Do not run respawn on a session you are actively typing in.** It will send prompts
underneath you.
+5 -5
View File
@@ -43,9 +43,9 @@ as the keyboard appearing.
Tapping the "C" logo gives a session overview rather than a welcome page:
1. **NEEDS YOU** first: sessions blocked on a question, with answer strips so you can
resolve a Claude prompt without opening the session. A Codex or DeepSeek Harness row
offers **Answer in terminal** instead, which opens the session.
1. **NEEDS YOU** first: sessions blocked on a question, with answer strips (Approvals Inbox
on) so you can resolve a Claude dialog without opening the session. A Codex or DeepSeek
Harness row offers **Answer in terminal** instead, which opens the session.
2. **CURRENT SESSIONS** with live status.
3. **PAST SESSIONS**, resumable.
@@ -169,8 +169,8 @@ phone, and it is the main reason the feature exists.
## Notifications
Push notifications reach you with no tab open, and with the Approvals Inbox on, those for a
Claude prompt carry **Approve** and **Deny** buttons handled by the service worker, so you
can unblock a Claude agent from the lock screen.
Claude permission prompt carry **Approve** and **Deny** buttons handled by the service
worker, so you can unblock a Claude agent from the lock screen.
Setup in [Notifications And Approvals](Notifications-And-Approvals).
+13 -11
View File
@@ -39,8 +39,8 @@ hooks, but its dialogs are distinctive enough to read off the screen, so a Codex
waiting on an approval, a question or the "Trust this folder?" prompt turns red too, and
clears a few seconds after you answer. For the other CLIs there are no hooks and no dialog
reading, so you get only the coarser working and idle state: read off the screen for
OpenCode, Gemini CLI, Pi and OMP, and inferred from output settling for Antigravity and
Grok Build.
OpenCode, Gemini CLI, Pi and OMP, and unreliable for Antigravity and Grok Build, which
declare nothing Codeman can read it from.
## Window title and OS notifications
@@ -141,17 +141,19 @@ Behaviour worth knowing:
sending, and refuses with a conflict if the dialog is no longer there. Otherwise your
keystroke would land in the composer as stray text.
- **Permission and question items clear only on definitive signals**: the turn ending, the
dialog completing, an answer, a supersede, the session exiting, or a 12 hour timeout. They
do not clear on a heuristic "looks busy again" signal, because that signal is wrong often
enough to lose a real prompt.
dialog completing, an answer, a supersede, the session exiting, or a 12 hour timeout. A
Codex item also clears a few seconds after its dialog leaves the screen, and a DeepSeek
Harness item when the harness reports it is working again. They do not clear on a
heuristic "looks busy again" signal, because that signal is wrong often enough to lose a
real prompt.
- **In memory only.** Restarting the server clears the queue; the prompts themselves are
still sitting in the sessions.
### Approve and Deny from the notification
With the inbox enabled, push notifications for a Claude prompt carry **Approve** and
**Deny** buttons. Those are handled by the service worker directly, so they work with no tab
open: tap Approve on a locked phone and the agent continues. A Codex or DeepSeek Harness
With the inbox enabled, push notifications for a Claude permission prompt carry **Approve**
and **Deny** buttons. Those are handled by the service worker directly, so they work with no
tab open: tap Approve on a locked phone and the agent continues. A Codex or DeepSeek Harness
notification carries no Approve or Deny, since those dialogs are answered in the terminal.
With the inbox off, the buttons are stripped from the notification payload entirely rather
@@ -192,9 +194,9 @@ current sessions, then past ones. Rows use the same language as the tab strip: a
when fine, pulsing while working, yellow when waiting for input, red when a question is
pending.
Answer strips let you resolve a Claude prompt straight from the home screen without opening
the session. A Codex or DeepSeek Harness strip offers **Answer in terminal** instead, which
opens the session.
With the Approvals Inbox on, answer strips let you resolve a Claude permission or question
dialog straight from the home screen without opening the session. A Codex or DeepSeek
Harness strip offers **Answer in terminal** instead, which opens the session.
## The Away Digest
+6 -5
View File
@@ -116,11 +116,12 @@ seconds in. Current versions confirm against the actual screen before believing
### A session is stuck showing busy
For Antigravity and Grok Build, idle detection is output-based and coarser by necessity:
those CLIs expose no hooks and declare no working line Codeman can read off the screen.
Codex, OpenCode, Gemini CLI, Pi and OMP get the same screen check Claude does, and DeepSeek
Harness reports its own state. A session that has genuinely gone quiet will settle. If it
never does, interrupt it (`Ctrl+C` with nothing selected).
For Antigravity and Grok Build the busy and idle status is unreliable: those CLIs expose no
hooks and declare no working line, so after launch Codeman has only generic cues to go on
(Claude's `❯` prompt marker, a braille spinner glyph), which they may not draw. Codex,
OpenCode, Gemini CLI, Pi and OMP get the same screen check Claude does, so a session of
theirs that has genuinely gone quiet will settle. If it never does, interrupt it (`Ctrl+C`
with nothing selected).
### The agent asks about bypass permissions every time