Dasbo Island

Known limitations

Everything on this page is something the project knows it has not proven. It is kept separate from the README so the front page stays readable, not to keep it quiet — the warning that changes what a user should actually do, the Codex trust step, is stated in the README as well.

For the payload shapes behind all of this, see agent-dialects.md.

Permissions

Codex has no permission gate

Codex's PreToolUse hook rejects an allow or ask decision outright, and approvals ride a separate PermissionRequest event that dasbo does not wire. Every Codex hook is therefore installed notify-only. codexAdapter.encodeDecision is exercised by unit tests and is never reached from a real Codex session.

No permission round-trip has been captured

Claude Code's gate is the one this project treats as working, and claudeAdapter.encodeDecision is exercised by unit tests. What no fixture shows is a permission answered end to end: nothing in test/fixtures/ records a decision travelling back to an agent, for any agent. The encoding has never been observed against a live prompt.

Sound

No cue has been confirmed audible

Whether GNOME's own event-sounds setting is honoured by mutter's sound player has not been verified; this extension checks the key itself before playing, so the setting is respected either way.

Nor has anyone confirmed that any of the four cues is actually audible on a live desktop. The test suite can pin the decision logic and the wiring, but nothing in it can listen.

Coverage

Claude Code's SessionEnd and Notification are inferred

Claude Code's dialect is verified against 18 real hook-payload fixtures, but SessionEnd and Notification are not among them — their handling is inferred from the documented shape rather than captured from a live session.

An interrupt with nothing to show for it is still missed

Claude fires no hook when the user interrupts a turn, so the island reads the line Claude writes into the session transcript instead (agent-dialects.md). An interrupt that lands before Claude has produced anything — Ctrl+C a second after the prompt, while the spinner is still spinning — writes no such line, and that row still reads thinking until the next event on it. Both halves of this are captured, not inferred: one run was interrupted mid-Bash and wrote the marker, one was interrupted mid-thought and wrote nothing.

Only Claude is watched this way. No other agent's transcript has been read for an interrupt marker, and Codex and Antigravity are unexamined here rather than known to be fine.

Codex hooks written before 0.146.0 never fired

Codex 0.146.0 speaks Claude's hook dialect: an event-keyed map under hooks, PascalCase event names, and hook_event_name / session_id / cwd / tool_name payloads. Every dasbo release before the current one wrote the older named-hook form — {"dasbo-island": {"command": …, "events": ["session.start", …]}} — which Codex parses without complaint and never fires. Update in the preferences replaces it. Six events are installed: SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, SessionEnd. All six were captured firing; the fixtures are in test/fixtures/codex/.

Back to the landing page