Skip to content

v0.10.45

@evalstate evalstate tagged this 12 Oct 19:31
* Release 0.10.45: provider-native compaction

Compaction now uses each provider's native mechanism where it is verified,
with fast-agent still owning policy (when to compact, what to keep, archiving).

- OpenAI provider-native checkpoints (on by default) for GPT models on
  responses, codexresponses and Copilot: a request ending in a
  compaction_trigger item replaces the compacted region with an opaque,
  encrypted checkpoint. Opt out per model with ?compaction=client or per
  route with native_compaction: false; compaction.strategy: client still
  forces fast-agent's summary everywhere.
- Copilot Claude models use Anthropic server-side threshold compaction
  in-request; harness auto-compaction stands aside for them.
- New model-string option compaction=native|client, validated per route.
- Astra effort is re-sent as a configuration_update after a checkpoint, on
  every route that replays checkpoints (including Copilot).
- Checkpoints record their producing route: Copilot checkpoints are only
  readable on Copilot and fail clearly elsewhere.
- Process-poll folding keeps messages that carry an in-band checkpoint.
- ATIF records the compaction strategy, embeds the compaction call and
  counts provider checkpoints; validate_atif accounts for embedded calls.
- Anthropic usage folds compaction iterations into billed totals and
  takes context size from the last sampling iteration.
- Codex Responses defaults Astra, GPT-6.1 Sol and Luna to high effort and
  serves GPT-6.1 Sol with a 500k window; Responses requests now send the
  model's default effort (as /model already displayed).
- Display: COMPACTING progress for the native call and streamed compaction
  events; provider checkpoints show their encrypted size and archive.
- Live smoke script scripts/openai_native_compaction_smoke.py and
  sanitized Codex compaction trace fixtures.

* Refresh CPD baseline for the compaction model-string field

ModelConfig and ModelQueryOverrides intentionally mirror each other's typed
fields (existing approved finding); adding compaction to both grows the same
duplication from 122 to 129 tokens.

* fix: preserve failed-run ATIF exports after compaction

* feat: show effective compaction mode in model status

* fix: extend stream idle defaults for high reasoning

* chore: keep concurrent compaction threshold work separate

* test: give ACP /model LLM stubs the compaction surface

The /model Compaction line reads compaction support and the effective
trigger; the integration stubs predated it (Integration (acp) failure).

* feat: xAI native compaction and per-model compaction triggers

xAI provider-native compaction (on by default for xai.*):
- Grok compacts through POST /responses/compact (xAI rejects
  compaction_trigger items) and replays the returned compaction item via the
  shared OpenAI-format replay channel; no instructions are sent, since later
  requests carry the system prompt.
- Checkpoints are route-bound both ways: xAI reads only xAI checkpoints and
  OpenAI routes reject xAI's, with a clear switch-back/restore message.
- xAI's compaction usage reports reasoning outside output_tokens (observed
  live); it is folded back in so usage validation and accounting hold.
- xai.native_compaction setting; ?compaction=native accepted for xai.
- Compaction calls are captured under FAST_AGENT_LLM_TRACE.
- xAI's compaction drops tool outputs by design; documented.

Per-model compaction triggers:
- New model-string option compact_at=<tokens|fraction> (190k, 1m, 0.7, 70%)
  for any provider. Precedence: compact_at, compaction.threshold, the
  model's default, then 0.85.
- ModelParameters/overlay metadata compaction_trigger_tokens; Grok 4.7
  defaults to 190,000 tokens to stay below its 200k long-context rate.
- compaction.threshold now defaults to unset; the setup template leaves it
  commented so model defaults apply.
- Triggers are compared in tokens (auto-compaction, post-compaction budget,
  in-request provider trigger); /model and /compact preview show both forms.

Tests use a local /responses/compact HTTP simulator over a sanitized live
capture; the native compaction smoke script gains --route xai.

* Refresh CPD baseline for the compact_at model-string field

* update docs
Assets 2
Loading