Skip to content

Ygg v0.6.4

Choose a tag to compare

@achuthanmukundan00 achuthanmukundan00 released this 30 Aug 17:23
· 62 commits to main since this release
bd7f113

ygg v0.6.4

Released 2026-08-30.

v0.6.4 is a daily-usability, context-efficiency, and correctness release. It
uses the active context window more deliberately, prevents output-truncated tool
arguments from executing, makes terminal state and failures easier to read, and
hardens durable goals and compatibility links. The command and binaries remain
ygg and ygg-host; ygg --version reports ygg 0.6.4.

Highlights

More useful context, truthful output limits

  • Ygg now estimates the complete provider-visible request before each model turn.
  • The default compaction.threshold_fraction is 1.0: autonomous compaction
    keeps a fixed 16K coding-turn reserve, or the larger reasoning floor advertised
    by the active model, instead of reserving an additional percentage of every
    context window.
  • The provider-advertised output maximum remains the request ceiling. Ygg reduces
    it only when the current input leaves less output capacity in the context
    window.
  • Capacity estimates advance incrementally as messages are appended and
    re-anchor to authoritative provider usage, avoiding repeated reconstruction of
    ordinary long histories.
  • Existing explicit threshold_fraction values remain valid and retain their
    configured percentage behavior.

This change avoids premature compaction and unnecessary summary turns. Depending
on provider pricing and cache behavior, retaining more original context can
increase input tokens even when it reduces compaction work; /cost, /context,
and opt-in telemetry remain the authoritative measurements for a session.

Output-truncated tool calls cannot execute

A provider can reach its output-token limit in the middle of a tool argument.
v0.6.4 keeps the tool-call identity for protocol continuity but discards partial
arguments, records a bounded failure result, and requires the model to issue a
complete replacement call. It never repairs or guesses a truncated mutation into
an executable request.

A calmer, more informative terminal

  • Transcript blocks, prompt cards, composer, footer, and pickers share one
    responsive horizontal grid across narrow, regular, and wide terminals.
  • Submitted prompts retain the colour of the model that received them; changing
    models updates the next composer without recolouring transcript history.
  • Accepted steering waiting for the next boundary appears as a bounded two-row
    pending hint rather than a second transcript.
  • One authoritative Working (<elapsed> • esc to interrupt) row remains while
    the owning run is active, including after assistant text, and disappears only
    at run settlement or while a tool-specific lifecycle owns the tail.
  • Normal completion, completion with warnings, interruption, and failure remain
    distinct after animation stops.
  • Collapsed run and tool failures retain a bounded actionable reason. Full
    captured evidence remains available through disclosure when present.
  • Confirmation detail is retained separately from its actions, and Enter cannot
    confirm an action that is not visible on a constrained terminal.
  • Session and model pickers use responsive rows; model providers are grouped and
    repeated capability noise is removed from the default model list.

Durable-state and migration hardening

  • Goal updates use a private transaction lock shared by independent handles and
    revalidate that lock before publication. Concurrent goal turns and revisions
    no longer race into lost updates.
  • Pi migration bounds nested extension-manifest traversal and reports incomplete
    traversal rather than following an unbounded manifest chain.
  • The extension protocol can negotiate runtime_commands, allowing a
    compatibility process to expose a bounded, duplicate-free command catalog at
    initialization.

Pinned Pi compatibility profile

ygg pi install creates an inert compatibility link for reviewed local Pi
source. Repeated --with arguments preserve an explicit source order in one
fingerprinted aggregate lock and one shared runtime. v0.6.4 pins bridge profile
0.2.0 to @earendil-works/pi-coding-agent@0.84.4, records bounded source
fingerprints, and rejects source changes before importing extension code. A link
remains disabled and untrusted until explicitly activated.

The bridge supports a tested subset of tools, transformed tool results,
initialization-time commands, notifications, confirmations, text input,
lifecycle/context events, and local Pi event-bus behavior. It is not universal
Pi compatibility: provider/session mutation, arbitrary TUI components,
compaction control, and other unsupported surfaces remain explicit diagnostics.
See the Pi migration guide for the supported boundary and
remaining gaps.

Updating

Installer-channel users can update in place:

ygg update --check
ygg update

Or run the version-pinned installer directly:

curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/skaft-software/ygg/releases/download/v0.6.4/install-ygg.sh | sh

Then restart Ygg and verify:

ygg --version
ygg --help
ygg doctor

Cargo-channel users can install the immutable tag with Rust 1.86 or newer:

cargo install --locked \
  --git https://github.com/skaft-software/ygg \
  --tag v0.6.4 \
  --bins \
  ygg-coding-agent

Packages and compatibility

  • Core crates and first-party packages target Ygg 0.6.4 exactly.
  • Executable-extension API 0.2 remains the wire contract; runtime_commands
    is optional and negotiated, so extensions that do not request it retain the
    manifest-authoritative command behavior.
  • Matching ygg-browse, ygg-mcp, ygg-subagents, ygg-web-search, and Ygg
    Serve archives are published with the release.
  • Existing local configuration, credentials, sessions, goals, extensions, and
    Serve data remain in place across installer upgrades.
  • Existing explicit compaction thresholds remain readable. Only the built-in
    default changes from 0.85 to 1.0.

Known limits

  • Prebuilt targets remain GNU/Linux x86-64, macOS x86-64, and macOS Apple
    silicon; Linux musl is not included.
  • Theme selection remains disabled; the compiled model-aware default is the only
    runtime theme.
  • Pi compatibility is intentionally bounded to the documented 0.84.4 subset and
    requires Node 22.19 or newer plus the exact selected Pi package.
  • Ygg does not claim that retaining more context lowers cost for every provider;
    cache pricing, input rates, and workload shape determine the result.
  • The published runtime-footprint evidence measures the frozen v0.6.3 binary,
    not v0.6.4 active-turn performance.
  • npm, Homebrew, PyPI, GHCR, universal MCP compatibility, and universal Pi
    compatibility are not part of this release.