v0.0.1-rc9
Pre-releaseOrbit v0.0.1-rc9 Release Notes
Orbit v0.0.1-rc9 closes the post-tool evidence flow stabilization phase after
v0.0.1-rc8.
RC9 keeps the native MTP stable-with-guardrails posture from RC8. It does not
change MTP, KV behavior, vendored llama.cpp, route policy, tool policy, or the
model-driven decision boundary.
Highlights
Tool evidence separated from prompt history
Orbit now stores tool evidence as runtime state instead of relying on raw tool
results in conversation history.
The new EvidenceStore flow:
- preserves raw tool output in RAM and sidecar files
- stores bounded audit markers in promptable history
- uses per-event evidence ids to avoid collisions
- keeps
raw_sha256as the content audit hash - reloads sidecar indexes for existing sessions
- degrades clearly when raw sidecar content is unavailable
- clears in-memory EvidenceStore state on
/reset
This reduces post-tool prompt bloat while preserving auditability and raw
evidence outside the prompt.
Bounded post-tool prompt views
RC9 adds bounded route, final, retry, and repair prompt views derived from
EvidenceStore projections.
The runtime now avoids reinserting large raw tool results into route/final
prompts and uses compact evidence cards for:
- shell output and shell errors
- grep/search matches
- web search results
- read/direct-content outputs
- unknown tool output
History remains useful for audit and compatibility, but EvidenceStore is the
primary source for operational evidence.
Web finalization compact view
Web final_from_tool now uses a compact WEB_FINAL_VIEW when structured web
evidence is available.
The view includes the current user request, query/status/result count, bounded
top title/domain/snippet evidence, and audit references. It excludes full
history, long tool history, raw tool output, and tools schema.
Local smoke reduced the OpenAI web final prompt from roughly 1864 tokens to
roughly 369 tokens while preserving a single web search and finish_reason=stop.
Evidence projection cleanup
RC9 includes focused prompt-size reductions without changing model decisions:
- deduplicate structured final evidence for web and grep/search
- tighten bounded excerpts for shell/unknown evidence
- preserve bounded raw excerpts for shell-error evidence
- compact post-tool route inventory by removing route-unneeded audit metadata
- keep raw refs and hashes in sidecar/final/audit views
These changes are structural context reductions, not semantic shortcuts.
Repair and retry guardrails
RC9 reduces expensive internal retries that do not add useful information:
- skip final repair for non-empty
finish_reason=stopanswers classified only
asincomplete_stub/plain_incomplete - keep repair for empty, malformed, reasoning-like, length, and too-short
large-tool answers - skip route repair for blank/non-repairable route length output
- preserve route prose rejection and model-guided TOOL/FINAL decisions
Search and shell evidence quality
Grep/search evidence cards now preserve useful facts such as file paths, line
numbers, match excerpts, match counts, and file counts when available.
Shell route projections include bounded stdout/stderr excerpts for small output,
which keeps useful follow-up evidence visible without reintroducing raw bloat.
Validation
Local validation on main after PR #89:
- targeted runtime/evidence/tool tests: PASS, 187
- full unittest suite: PASS, 903
python3 -m compileall -q src tests scripts: PASSgit diff --check: PASSorbit server --mtp: PASS- MTP initialized: yes
- mmproj/multimodal detected: yes
- route-prefix prewarm succeeded: yes
- route prefix token count: 694
route_anchor_hit=true: yesrestore_used=true: yes- double-free/SIGABRT/segfault observed: no
- server shutdown: clean
Validation matrix:
- chat simple: PASS
- shell small + follow-up: PASS/PARTIAL
- shell error + follow-up: PASS
- shell medium + referential follow-ups: PASS, no timeout
- grep/search + follow-up: PASS
- web search + follow-up: PASS
- read/direct-content + follow-up: PARTIAL, non-blocking
Known limitations
- Final/retry cache reuse remains low because the active KV slot is usually
warm on the prior route prompt, not final prompts. - Read/direct-content referential follow-up quality can still be partial even
when evidence is visible. - Web/read large outputs can remain CPU-costly.
- Model-side quality on exact references can vary.
- Real multimodal input tasks still need separate end-to-end validation.
- MTP remains guarded and is not a performance guarantee for every completion.
Follow-up work:
- Dynamic Completion Budget Policy for route/tool/final/repair completion
kinds, so Orbit can avoid truncation and overly long internal generations
without changing prompt policy.
Upgrade notes
For the current native workflow:
orbit server --mtpUseful controls remain:
ORBIT_TOOLS=off
ORBIT_KV_PREFIX_PREWARM=off
ORBIT_KV_PREFIX_ANCHOR=off
ORBIT_KV_DIAG=1ORBIT_KV_DIAG=1 is diagnostic only. It is not required to enable KV behavior.
RC9 is a new prerelease candidate. Previous RC tags and releases remain
unchanged.