Repository navigation
Ygg v0.6.4
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_fractionis1.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_fractionvalues 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 updateOr 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 | shThen restart Ygg and verify:
ygg --version
ygg --help
ygg doctorCargo-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-agentPackages and compatibility
- Core crates and first-party packages target Ygg
0.6.4exactly. - Executable-extension API
0.2remains 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 from0.85to1.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.