Repository navigation
Orca v0.5.7
Orca v0.5.7
Changes since v0.5.6:
orca execand the TUI stop cleanly on SIGINT, SIGTERM, and SIGHUP. They
stop running work and MCP servers, record how the session ended, and exit
with 128 + the signal. Two copies of one stop request that arrive together
count once.- On Windows, Ctrl+C through the npm launcher now reaches
orca.exeinstead
of killing it. - A message typed before a conversation resumed at launch has loaded is held,
and is sent after the command-line prompt, in order. - MCP:
Esccancels a call waiting on a reconnecting server, and a streamed call
that keeps sending.- stdio servers get answers to
pingwhile idle. - A cut-short resource list says so.
- A login can be cancelled before the browser opens.
- A failure shows at once and is reported only once.
orca mcp addandremovekeep each entry's comments with it in a
multi-line inline array.ORCA_HOMEnow also covers the TUI's input history and saved workflows, and
a blankORCA_HOMEcounts as unset.- On Windows, files under a deeply nested
ORCA_HOMEare written correctly
past the 260-character path limit.
Changes
Stopping on a signal
-
orca exechandles SIGINT and SIGTERM from the moment it starts, before the
runtime or any MCP server does.- A signal that arrives while MCP servers are still connecting stops the
stdio servers, records the run as cancelled, and exits with 130 for SIGINT
or 143 for SIGTERM. JSONL output ends with a cancelledsession.completed. - Before, such a signal ended the process at once, so servers could keep
running and the session had no terminal record.
- A signal that arrives while MCP servers are still connecting stops the
-
The TUI quits on SIGTERM, SIGHUP, or a SIGINT sent by another process, the
way an ordinary exit does:- it interrupts the running turn;
- it stops MCP servers, those still connecting too;
- it saves the session;
- it restores the terminal and prints
orca --resume <SESSION_ID>.
The exit code is 128 + the signal: 130, 129, or 143. After SIGHUP the
terminal is gone, so nothing more is drawn and no resume hint is printed.
Inorca attach, only the attach connection closes; the daemon's session
is unaffected. -
Cleanup has 10 seconds. After that, or at a second signal, Orca exits at
once. -
A signal that arrives within half a second of the first counts as the same
one.- Each of these can deliver one stop request twice: closing a terminal
window, the npm launcher, and a job runner signalling the whole process
group. The copy no longer cuts the cleanup short. - A signal after that still exits at once.
orca daemonfollows the same rule while it shuts down.
- Each of these can deliver one stop request twice: closing a terminal
-
On Windows, the npm launcher no longer terminates
orca.exeon Ctrl+C. The
console delivers Ctrl+C toorca.exedirectly, soorca execcleans up and
exits with 130.
Starting the TUI with a resumed conversation
- When
orca --continueororca --resume <id>opens, a message you send
before the conversation has loaded is held. The input box clears, and the
message is listed above it until it can be queued. - Once the history loads, the command-line prompt goes first, then the held
messages, in order, queued like messages sent during a running turn. - Before, a message typed early could run ahead of the command-line prompt,
and the loaded history pushed it off the screen. - When the conversation cannot be opened and no prompt was given, the
conversation now also saysUnable to restore saved conversation.
MCP
-
Cancelling.
Escnow stops a call that waits for a server while another request
reconnects it, within about 25 ms, and the call is never sent.- A streamed tool call is cancelled even while the server keeps sending
progress.
-
stdio servers while idle. Orca answers a stdio server's
pingat any
time, not only while a request is in flight.- A server request Orca does not handle gets JSON-RPC error
-32601. - So does an elicitation that arrives with no tool call running.
- Requests and answers no longer interleave on the server's stdin.
- A server request Orca does not handle gets JSON-RPC error
-
Resource lists. A
resources/listorresources/templates/listresult
may stop early, after 100 pages or at a repeated cursor. When it does, a line
inerrorsnames the server and says why, so the model knows the list is
incomplete:incomplete resources/list result for '<server>': MCP list stopped after 100 pagesSee Compatibility for the output shape.
-
Server state.
- A short restart after
Escthat fails because the server cannot start
marks itfailedat once, instead of at its next call. That holds even
when another request was holding the server. - A reconnect that finds the server already replaced no longer clears a
failure recorded meanwhile. - A failure that
/mcpalready showed is no longer reported again as a
startup warning when your first message takes over the servers.
- A short restart after
-
Login.
- Cancelling a login during OAuth discovery or client registration, before
the browser opens, takes effect within 100 ms and frees the callback port. - When the cancel and the browser's return cross,
/mcpshows how the login
actually ended. Once the browser is back the login finishes, andlsays
login to MCP server <name> is finishing and can no longer be cancelled.
- Cancelling a login during OAuth discovery or client registration, before
Configuration
-
orca mcp add,orca mcp remove, and a saved "always allow" rule now keep
comments with their entries in a multi-line inline array, one entry per
line (mcp_servers = [ … ],rules = [ … ]):- removing an entry also removes the comment lines just above it, and the
comment at the end of its line; - a new entry goes on its own line, after the last entry and its comment;
- a comment before
]stays last; - an array that
removeempties keeps its multi-line form.
Single-line arrays and
[[mcp_servers]]tables behave as before. - removing an entry also removes the comment lines just above it, and the
-
ORCA_HOMEnow also decides where the TUI keeps its input history, and
where workflows saved with user scope go ($ORCA_HOME/workflows). The
saved-workflow list reads from there too, now on Windows as well. -
An
ORCA_HOMEthat is set but empty or blank counts as unset, so Orca uses
~/.orca. Before, it could make Orca look for its tools in the current
folder.
Windows
- Atomic file writes (configuration edits, memory) and image assets now work
when the path is longer than 260 characters, as under a deeply nested
ORCA_HOME. Before, such a write failed withThe system cannot find the path specified.
Compatibility
list_mcp_resourcesandlist_mcp_resource_templatescalled withserver
now return the same object as without it,{"resources": [...], "errors": [...]}, withresourceTemplatesfor templates. Before, they
returned a bare array. A server that is not connected, or whose list
request fails, still fails the call.- A response sent as
text/event-streamwhose body is bare JSON, with no
SSE framing, now fails withmissing result. Before, Orca parsed the
leftover bytes as JSON. - The TUI now exits with 128 + the signal on SIGINT, SIGTERM, or SIGHUP.
Before, the signal killed it. - A second Ctrl+C sent to
orca execwithin half a second of the first no
longer exits at once. One sent later still does.
Configurations and sessions from v0.5.6 remain readable.
Verification
cargo fmt --all -- --check
node --test scripts/test-validate-runtime-surface-contract.mjs
node scripts/validate-runtime-surface-contract.mjs
node --test scripts/test-validate-windows-platform-boundaries.mjs
node scripts/validate-windows-platform-boundaries.mjs
node scripts/release/verify-version-sync.mjs
node scripts/release/test-verify-version-sync.mjs
node scripts/release/test-stage-npm.mjs
node scripts/release/test-verify-published.mjs
node scripts/test-repository-hygiene.mjs
node --test tests/npm_launcher_contract.test.mjs
cargo nextest run --workspace --all-targets --locked --profile ci --no-fail-fast --retries 0
cargo nextest run -p orca-tui --lib --locked --profile ci-serial --retries 0
cargo nextest run --test tui_pty_contract --locked --profile ci-serial --retries 0
npm --prefix site run build
npm --prefix site run check:seoUpgrade
npm install -g @blade-ai/orca@0.5.7
orca --version