Summary
In raven tui, any input prefixed with ! (bang shell escape) fails with:
error: [rpc -32601] method_not_found
This happens for every bang command (!ls, !clear, !pwd, …) — it is not command-specific. The ! feature is effectively unusable in v0.1.6.
Environment
- Raven: v0.1.6 (installed via
install.sh → uv tool)
- OS: macOS 15.6 (arm64, Apple Silicon)
- Channel:
tui
Steps to reproduce
raven tui
- Type
!ls and press enter
- Observe:
error: [rpc -32601] method_not_found
Expected
The !ls shell command runs and its output is shown.
Actual
JSON-RPC error -32601 method_not_found.
Root cause
The frontend routes bang commands to an RPC method named command.dispatch, but the backend never registers it, so the dispatcher returns -32601.
Evidence:
- Frontend (
raven/ui-tui/dist/entry.js) calls it:
gw.request("command.dispatch", { name, arg, session_id }).then((raw) => {
const d = asCommandDispatch(raw); // expects { type: "exec"|"plugin"|"alias", output?, target? }
...
})
- Backend confirms it is unregistered —
raven/tui_rpc/methods/slash_routing.py:12:
... the .catch() branch would fall through to
``command.dispatch`` which is also unregistered).
command.dispatch is absent from the umbrella registration in raven/tui_rpc/methods/__init__.py (register_aligned_methods_except_system).
Suggested fix
Add a register_command_methods() that registers command.dispatch and wire it into the umbrella in methods/__init__.py (same pattern as the existing register_slash_routing_methods). The handler should return the shape the frontend expects:
{ type: "exec" | "plugin" | "alias", output?: string, target?: string }
The existing slash.exec handler in slash_routing.py is a close template (shlex-split → delegate to executor → shape result → never raise -32xxx). Consider routing the exec path through the same executor the agent uses (build_executor()), so bang commands also respect tools.sandbox.backend.
Workaround
Ask the agent in natural language (e.g. "run ls") — that goes through the agent's exec tool and works. Use /-slash commands or Ctrl+L instead of !clear.
Summary
In
raven tui, any input prefixed with!(bang shell escape) fails with:This happens for every bang command (
!ls,!clear,!pwd, …) — it is not command-specific. The!feature is effectively unusable in v0.1.6.Environment
install.sh→uv tool)tuiSteps to reproduce
raven tui!lsand press entererror: [rpc -32601] method_not_foundExpected
The
!lsshell command runs and its output is shown.Actual
JSON-RPC error
-32601 method_not_found.Root cause
The frontend routes bang commands to an RPC method named
command.dispatch, but the backend never registers it, so the dispatcher returns-32601.Evidence:
raven/ui-tui/dist/entry.js) calls it:raven/tui_rpc/methods/slash_routing.py:12:command.dispatchis absent from the umbrella registration inraven/tui_rpc/methods/__init__.py(register_aligned_methods_except_system).Suggested fix
Add a
register_command_methods()that registerscommand.dispatchand wire it into the umbrella inmethods/__init__.py(same pattern as the existingregister_slash_routing_methods). The handler should return the shape the frontend expects:The existing
slash.exechandler inslash_routing.pyis a close template (shlex-split → delegate to executor → shape result → never raise-32xxx). Consider routing theexecpath through the same executor the agent uses (build_executor()), so bang commands also respecttools.sandbox.backend.Workaround
Ask the agent in natural language (e.g. "run ls") — that goes through the agent's exec tool and works. Use
/-slash commands orCtrl+Linstead of!clear.