zcoder.zsh v0.7.0 — Model readiness and remote sessions
zcoder.zsh v0.7.0
v0.7.0 makes local and remote model startup predictable, turns remote jobs
into browsable persistent sessions, and improves compatibility with models that
do not follow one narrow tool-calling pattern. The release also strengthens
loop recovery and fixes command approval and Codex consultation failures.
Highlights
Model readiness and warm-up
- The TUI starts a disposable Ollama warm-up request containing the resolved
system prompt and project instructions, and showsWarming Upuntil the
model is ready. - Warm-up never enters the saved conversation or user-message ledger, and a
real prompt safely supersedes an unfinished local warm-up. - Remote clients check whether the server's configured model is resident when
they connect and again before each prompt. If another model displaced it,
the request waits while the server reloads the correct model. - Remote warm-up workers detach inherited sockets, refresh the allocated
context size after loading, and remain compatible with older servers that do
not expose model-readiness status. --no-warmupremains available when eager local loading is undesirable.
Persistent remote sessions
- Remote servers now expose scoped session summaries and persisted transcripts
to authenticated clients. The TUI session sidebar lists server-owned jobs,
marks the selected and active jobs, and can load an older transcript. - Local and remote interactive launches start with a fresh conversation instead
of silently resuming the latest used session. An untouched blank session is
reused to avoid accumulating empty jobs, while older sessions remain
explicitly selectable. - Remote prompts can be queued during a model warm-up race, cancelled before
execution, and started exactly once when readiness changes. - Remote command approval no longer deadlocks while the worker is waiting for
the client's one-use approval response.
Broader model and tool-call compatibility
- LFM-family planner envelopes, alternate action fields, foreign tool-call
shapes, and shell-command plans are normalized into the native tool pipeline.
Promoted commands still pass workspace checks, safety guards, and command
approval. - False tool-unavailable responses, malformed planner output, and empty
responses receive bounded recovery turns instead of being accepted as task
completion. - Ollama responses containing multiple independent reads or
run_command
calls are now handled as multi-call turns. zcoder dispatches them in model
order, applies the configured command approval policy to each command, and
returns every result to the model. - Batches containing edits, Skill activation,
finish, unknown tools, or MCP
tools without side-effect metadata still fail before partial execution.
Loop recovery and consultations
- Repeated tool outcomes and short alternating cycles now trigger one explicit,
final recovery turn. A materially different action clears the warning; a
repeated violating round is rejected before execution and stops the run. - The agent loop no longer has a fixed model-turn ceiling while work continues
to make progress. /codexnow places the global approval option beforecodex exec, matching
current Codex CLI argument parsing while retaining its read-only consultation
sandbox.
Compatibility and verification
- Zsh 5.8 or newer
- Ollama with a tool-capable model
- Existing saved-session and remote authentication formats remain compatible
- New remote readiness and session endpoints degrade safely when connecting to
an older server - 640 automated tests passing, including model warm-up, remote session browsing,
queued prompts, LFM normalization, loop recovery, Codex delegation, and
serialized multi-call command dispatch - Live protocol verification against Ollama 0.32.15 with
kat-coder-2.5-dev-mtp-q4-128k
For the full documentation, see the documentation index.