octet 0.9.3
octet 0.9.3 fixes Gemini on OpenCode Go. The version-pinned release page records the immutable source, CI runs, artifact checksums and actual channel availability. Source-build evidence is not public-artifact qualification.
What changed in 0.9.3#
- Gemini on OpenCode Go works. OpenCode Go serves its Gemini models,
including Gemini 4 Argon Contributor, only under
https://opencode.ai/inference/go/v1/. 0.9.2 sent them to thezen/gobase, which answered with404 (route or model not found). Other OpenCode Go models keep their existing endpoint.
0.9.2 added /extensions install and octet extension install --all; see the
0.9.2 notes. Everything below from 0.9.1 still applies.
Status at a glance#
- Pi compatibility is experimental and unstable. Full Pi backwards
compatibility is not yet qualified. The
octet-pi-compatadapter does not ship in this release; it remains source-only experimental work, and loading real Pi setups can be slow or fail for individual extensions. - Many extensions work today. Five first-party bundles ship (codemode, computer use, MCP, subagents and web search), any-language subprocess extensions are supported, and in the source preview unchanged Pi extensions such as Doom, drawing, the powerline footer and the rainbow editor run through the adapter. These Pi receipts are development evidence, not release qualification.
- Windows is in preview. The native Windows x86-64 (MSVC) archive and
install-octet.ps1are published and pass release-workflow runtime, terminal and ConPTY checks, but attended desktop use is unqualified and known issues remain open.
What's better since v0.8.1#
v0.8.2 was a source candidate and never published, so upgrading from v0.8.1 brings the 0.8.2, 0.9.0, 0.9.1, 0.9.2 and 0.9.3 entries in the changelog.
- Up to 8× more parallel reads. Read-only tool calls run in waves of one per CPU, from 4 up to 32 (v0.8.1: always 4), and the runtime's worker pool is sized to the machine instead of 2 threads.
- Edits stop filling the model's context.
editandwritereturn one short line (ok, path, verb, content hash); the unified diff moves to result metadata the model never sees. Tool cards still show the diff. - Windows went from unbuildable to native (preview). The interactive crate
did not compile for Windows in v0.8.1. v0.9.3 publishes a signed MSVC
octet.exewithinstall-octet.ps1that runs in Windows Terminal and conhost, with no WSL. - Sign in instead of pasting keys. Browser sign-in for ChatGPT/Codex joins
device-code sign-in, plus new Grok, Kimi, Meta and OpenRouter account sign-in.
/setupcan remove any saved sign-in, key or custom provider. - Extensions are set up inside the app.
/extensionsinstalls, configures and manages the five signed first-party bundles (MCP, web search, subagents, codemode, computer use) with live progress, cancellation and confirmations. - Changes land when you make them. Every
/settingschoice applies immediately, even mid-run; model and reasoning changes made during a run are queued for the next safe boundary instead of being refused.
Faster and leaner#
- A launch that names its model no longer waits for a cold provider inventory.
- Resume hydrates only a viewport-sized tail; startup reuses tool definitions, extension host state and resumed configuration, and defers terminal background detection until after the first frame.
- The models.dev refresh builds only the providers octet reads instead of the whole ~5 MiB catalog, whose value tree peaked near 60 MiB.
- Only the newest four tool-result images (typically screenshots) are sent to the model on each request.
- The core toolset is
read,edit,writeandbash; the native Search tool is removed in favor ofrgthrough the shell. The default prompt makes the change, runs one relevant check and stops.
These are specific, recorded changes; no whole-release speed or memory benchmark is published.
Smoother terminal#
- Fullscreen by default with wheel and trackpad scrolling; selection and copy follow the painted transcript across scroll and wrapping.
- Quieter startup and reloads: background work no longer prints warnings, a reload ends in one note, and repeated extension notices show once per 30 s.
- Paste and attachment chips edit like ordinary text with undo; resize replays
history correctly and the
Workingclock keeps ticking. - Fixed stale or duplicated inline images when scrolling (Kitty-protocol terminals), a scrollbar hover crash, and the resume picker quitting octet on Ctrl+D (deleting is now Ctrl+X with a confirmation and recoverable trash).
- Themes can show the thinking trace expanded; quiet
Exploredgrouping now covers web search, MCP and computer use.
Providers and models#
- New models: GPT-6.1 Sol (API and Codex) and Mistral Large 4; OpenCode and OpenCode Go show their live catalogs.
- Model names, prices and capabilities refresh in the background at most every six hours, guarded against zeroed or tenfold price drops.
- Custom first-party endpoints such as Cerebras keep their real context window; discovery errors name the provider's status and message.
- Throughput is labelled honestly as end-to-end; one ambiguous provider failure no longer disables hard cost ceilings for the session.
- Prompt-cache warming (
/cache-warming), server-reported inference timing in/status, and an opt-in redacted provider request trace.
Extensions and platforms#
- Five signed first-party bundles install, update and remove with one command; installing never enables an extension or grants trust.
- In safe mode, an extension starts only with an explicit host-authority grant,
which
/extensionscan grant and revoke. - Computer use and clipboard copy work on Linux desktops: Wayland (Hyprland, Sway, GNOME, KDE) and X11.
- On Windows: Python extensions start through
py -3,!commands run through Git Bash, file edits and atomic replacement work, elevated sessions work, and computer use no longer hangs.
Reliability and trust#
- Every native and extension asset is checksummed and Sigstore-signed by the tracked release workflow; the version-pinned installer verifies it.
- Concurrent conditional writes to one file are serialized on Linux and macOS; removing the last custom provider no longer discards a concurrent writer's registry.
- Extension crash and startup-handshake fixes found by a real-package matrix, and a new end-to-end suite that drives the real binary through PTY sessions.
- Removed: the packaged Serve app, its web client, the macOS/iOS companions and the old browser extension. Computer use drives your own browser.
Highlights#
- Native coding surface:
read,edit,writeandbash(PowerShell on Windows). Independent reads and shell calls can overlap under full access; mutations and approval-bearing calls remain ordered. Native Search is removed; content search usesrgorgrepthrough the shell. - Interactive correctness: model and reasoning changes wait for a safe request boundary; settings apply visibly; paste and attachment chips remain editable text with undo. Fullscreen scrolling retires stale Kitty images.
- Provider setup and discovery: review-first API-key, subscription and local endpoint setup; explicit removal of saved providers/sign-ins; live OpenCode inventories; bounded background discovery when the model is already known.
- Sessions and presentation: resumable histories, busy steering/follow-up, selectable built-in themes, transcript selection/copy and Tern native surfaces.
- Optional integrations: five separately installed bundles: codemode, computer use, MCP, subagents and web search. Installation never enables an extension, grants trust or provisions its optional dependencies.
Changed#
- Product, SDK source and the five shipped extension manifests use 0.9.3.
Extension API versions remain independent; bundled extensions require the
exact host version
=0.9.3. - Removed the packaged Serve application, its web/Apple companions, the native Search tool and the obsolete browser extension.
- The interactive terminal defaults to fullscreen with app-owned mouse input.
--mouse autoretains inline terminal scrollback. - Provider-request tracing is opt-in and redacts prompt, credential and output contents. Only the newest four tool-result images are sent to the model.
Qualification#
| Surface | Qualification boundary |
|---|---|
| Rust workspace, SDKs and shipped integrations | Exact-source automated CI; final run and result recorded on the release page |
| Linux/macOS native archives | Clean release builds, version/host smoke, repeatable packaging, checksums and Sigstore verification; public-install receipts belong to the published artifacts |
| Windows MSVC archive (preview) | Release-workflow native runtime, terminal and extracted-executable ConPTY checks; GNU CI alone does not qualify MSVC |
| Terminal/model behavior | Loopback-provider and PTY evidence, not paid-provider or physical-display acceptance |
| Pi compatibility | Not yet qualified; the adapter is not offered in the release catalog. Source-preview receipts for individual Pi extensions are development evidence |
Prior candidate runs and local development tests are not evidence for a different release SHA. The release page distinguishes completed gates from pending or unrun acceptance; a successful build alone is not a passing coding-task smoke.
Known limitations#
- Full Pi backwards compatibility is not yet qualified, and the adapter does
not ship.
octet-pi-compatremains source-only experimental work; several unchanged Pi extensions run in the source preview, but Pi 1.0.2 API parity is not established. Installed-Pi lifecycle/command parity, dependency-bearing workflows and cold mirror startup are not release qualifications. Previously installed experimental adapters are not automatically removed or enabled; disable them explicitly if present. Built-in Pi-themed palettes, migration utilities and codemode are separate from this adapter. - Live provider, subscription and audio acceptance is not run for this release. Mock-provider tests do not establish account/model availability, billing accuracy or real audio behavior. The reported Windows Codex HTTP 400 issue (#572) remains unresolved pending a redacted request trace.
- Windows is a preview platform. The MSVC archive passes automated release checks only; attended Windows desktop use, physical-console presentation and provider behavior on Windows are unqualified, and the Codex HTTP 400 report above is Windows-specific.
- Attended UI/driver journeys remain unqualified. Automated terminal-buffer and ConPTY checks do not establish physical presentation, trackpad behavior in every terminal, or granted desktop-driver behavior.
- No performance comparison is published. Historical benchmark records are not measurements of this release's final artifacts.
- Publication channels are independent. npm, Homebrew, crates.io, SDK registries and container registries are not made available by the native release workflow. Only channels with explicit receipts on the release page should be treated as published.