Skip to content

Ygg v0.4.0

Choose a tag to compare

@achuthanmukundan00 achuthanmukundan00 released this 10 Aug 18:27
· 99 commits to main since this release

Ygg v0.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-v0.4.0.sh | sh

The version-named installer supersedes the initial unversioned installer for
macOS compatibility. It installs the same immutable, signed v0.4.0 archives;
its own Sigstore bundle is published beside it.

The 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-v0.4.0.sh \
  | sh -s -- --from-source

Or 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-agent

Verify 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 serve

The 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.gz

Lifecycle commands are:

ygg extension list
ygg extension update ygg-serve
ygg extension remove ygg-serve

Serve 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-host binary 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.
  • /overview now 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/408 retries, 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-model
    commands were removed; top-level ygg sessions remains available.
  • /help and 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.