octet 0.4.0
Ygg v0.4.0 is a stable native-integration, session-performance, navigation,
and presentation release. It includes the terminal application, the versioned
ygg-host process protocol, and the separately packaged, loopback-only Ygg
Serve web interface.
Ygg and its extensions are not operating-system sandboxes. They run with the authority of the user who launches them; use OS isolation for untrusted workspaces, models, or extension packages.
Install Ygg#
Ygg requires rg (ripgrep). The version-pinned installer selects and verifies a
prebuilt binary for GNU/Linux x86-64, macOS x86-64, or macOS Apple silicon:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/skaft-software/ygg/releases/download/v0.4.0/install-ygg.sh | shThe default installation does not require Rust. To compile the pinned release instead, install Rust 1.86 or newer and run:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/skaft-software/ygg/releases/download/v0.4.0/install-ygg.sh \
| sh -s -- --from-sourceOr use Cargo directly without changing a shell profile:
cargo install --locked \
--git https://github.com/skaft-software/ygg \
--tag v0.4.0 \
--bins \
ygg-coding-agentVerify the installation with ygg --version and ygg --help. The installer
and Cargo command also install ygg-host; see the native host protocol
for embedding Ygg from another application.
Install Ygg Serve#
The graphical interface is an optional application extension. The normal Ygg binary does not contain its web server or embedded frontend.
ygg extension install ygg-serve
ygg serveThe official package must exactly match Ygg 0.4.0. Supported artifacts
are provided for GNU/Linux x86-64 (x86_64-unknown-linux-gnu), macOS x86-64,
and macOS Apple silicon. Linux musl targets are not supported by this release. To
install a package downloaded separately:
ygg extension install --path ./ygg-serve-0.4.0-TARGET.tar.gzLifecycle commands are:
ygg extension list
ygg extension update ygg-serve
ygg extension remove ygg-serveServe binds IPv4 loopback only. ygg serve --no-open --port 0 starts it without
opening a browser and asks the operating system for a free port. Removing the
package preserves sessions and other user data.
Highlights#
- The new
ygg-hostbinary exposes protocol v1 over bounded NDJSON for native application integrations, with streaming events, ordered typed image/audio input, inline and configured providers, durable session creation/resume, and seeded history. - Headless tool confirmations are denied, typed input requests are cancelled, and consumers can cancel a run by terminating the dedicated process group they created for the host. Release archives and installers ship both Ygg binaries.
- Existing Codex credentials can be copied on first use from the owner-only Codex or Hamr stores into Ygg's owner-only store without changing the source.
- Serve session inventory now uses bounded, targeted catalog scans, and resume hands the already authorized transcript descriptor directly to the worker. On the isolated 891-transcript fixture, startup improved from 43.01 seconds to 19.41 seconds; large-session resume completed in 2.39 seconds.
- Catalog and resume regressions cover corrupt, symlinked, and trashed sessions, unsafe metadata, active-branch model selection, and pathname replacement after descriptor authorization.
/overviewnow loads session inventory without creating or opening a provisional task, including reconnects and navigation races.- The Fleet command center prioritizes sessions needing attention and supports task and project search, while sidebar activity indicators make running work visible.
- Prompts submitted during an active graphical run steer by default, failed selection no longer moves to a broken focused surface, and retries preserve the intended route mode.
- The graphical source viewer shows line numbers.
- Configured-provider acceptance now exercises bearer auth/model selection,
streamed text and tool replay,
429/408retries, explicit compaction, restart/resume, cancellation, and secret-safe provider/phase failures against a disposable loopback fixture. Credentialed checks remain separately protected and optional. - Release dependency gates audit both lockfiles. Serve remains on audited
lopdf 0.42.0, and a hostile-input regression verifies that a 4,096-level PDF is rejected by Ygg's bounded preflight before parser entry. - Plain no-color terminal output no longer acquires an ANSI reset when a line is truncated, and compact footer costs use three significant figures.
- Redundant interactive
/tool,/docs,/sessions, and/cycle-modelcommands were removed; top-levelygg sessionsremains available. /helpand the source-checkout system prompt now expose local self-documentation paths when Ygg is run from its own repository.
Release acceptance#
The deterministic configured-provider matrix passed on the local release
worktree on 2026-08-10. Credentialed OpenAI Responses, Anthropic Messages,
OpenAI Chat, and native-audio representatives were not run because no live
release credentials were available. That optional check is explicitly waived
for v0.4.0; release packaging records the waiver and does not require provider
secrets. See the
configured-provider acceptance record.
See the changelog, extension documentation, and security policy for the complete behavior and boundaries.