Skip to content

PiClaw v2.9.0 — 2nd GIG

Choose a tag to compare

@piclaw-bot piclaw-bot released this 16 Jul 11:19

PiClaw v2.9.0 — "2nd GIG"

A larger compaction and continuity upgrade, with better draft persistence, clearer web controls and safer provider-native context handling. Section 9 would call this paperwork. We call it a minor release.

Features

  • Added Pipelined smart compaction, a deterministic method that accounts for every discarded source-message event exactly once, records provenance, preserves required intent and corrections, keeps call/result lineage for delayed tool output, and turns successful tool activity into canonical facts rather than tasteful hallucinated memoirs.
  • Added provider-native remote compaction as a pre-pass before local compaction. When the provider supplies encrypted canonical state, reports expose only a Piclaw-marked readable checkpoint when one exists; opaque or encrypted provider state is not printed, because incident reports are long enough without dumping the black box.
  • Added Codex-native compaction support, including current context_compaction canonical windows and a hardened fallback path when native compaction cannot be used.
  • Added a compaction processing-method selector to classic and visual settings, with pipelined and selective as the canonical choices and compatibility for older method names.
  • Upgraded the Earendil/Pi runtime stack to 0.80.7, including provider-auth, session-affinity and stream-compatibility fixes.
  • Improved cross-session chat delivery by using the trusted relay entrypoint and steering messages by default, reducing the odds of one agent leaving a message in the wrong corridor with a false moustache.

UX and web UI

  • Added visible compaction-method controls in settings, including labels, help text, translations, handler support, visual-panel types and E2E coverage.
  • Clarified the timeline label for tool-result compaction so it describes the actual compaction event rather than muttering something forensic and unhelpful.
  • Protected dirty editor state from asynchronous refreshes, preventing background pane/runtime updates from overwriting unsaved edits. The editor now has a basic sense of self-preservation.
  • Made manual /compact refresh the context meter immediately, using rebuilt-session estimates first and safety-adjusted report estimates when rebuilt-session token counts are unavailable.
  • Made /agent/context await runtime lookup and fall back to validated persisted usage after runtime eviction, rejection or null-token runtime results, so the context indicator no longer needs a new turn to remember its job.
  • Stopped direct and deferred command paths from persisting or broadcasting null-token context updates, reducing misleading context-meter flicker.
  • Made completed assistant prose durable before tool execution. Lead-in text now survives tool calls without being treated as a final answer.
  • Aligned web streaming persistence, run-agent orchestration and turn coordination around the same draft/checkpoint rules. Fewer ghosts in the drafting machine.

Fixes

  • Fixed progressive invalid_file_sections failures caused by repeated complete trailing <read-files> and <modified-files> blocks. Valid trailing auxiliary blocks are stripped before schema validation, then a single canonical file-list pair is rebuilt from deterministic tool history.
  • Kept malformed, unbalanced, nested, misplaced, empty, interleaved and non-trailing file blocks rejected. Some doors should stay locked.
  • Prevented smart-compaction CPU stalls.
  • Hardened context-aware recovery, including exact partial-boundary preservation and pressure/archive provenance.
  • Preserved provider-native compaction continuity without exposing encrypted canonical state or arbitrary provider output.
  • Fixed chat relay defaults so cross-session messages steer by default and use the trusted relay entrypoint.
  • Refreshed token-chart provider pricing references.

Under the hood

  • Split Pipelined compaction into explicit preparation, boundary policy, model execution, request construction, pipeline policy, source accounting, retained context, result details, selective execution and status modules.
  • Removed unsafe automatic Pipelined-to-Selective or upstream full-history fallbacks. Provider-native pre-pass ordering and local method selection are now explicit, which is dull, correct and therefore ideal.
  • Added audit telemetry and compression metrics for Pipelined runs, provider-native runs, context refreshes and failure modes.
  • Reworked session archive, rotation, startup and progress-watchdog paths touched by compaction and draft persistence.
  • Replaced a process-global pi-ai/compat.streamSimple mock with narrower test isolation, stopping an unrelated "ok" response from wandering into activation tests like a badly supervised intern.
  • Namespaced same-turn Faux provider/API/model state and restored settings runtime state in compaction tests.
  • Added regressions for provider auth, request sanitisation, context-pressure retry, post-compaction pruning, session affinity, compaction stream auth, web streaming, dirty editor refresh protection and compaction settings behaviour.

Documentation

  • Added a full Pipelined smart compaction guide covering exact-once accounting, source classification, remote pre-pass ordering, readable provider reports, failure behaviour, telemetry, troubleshooting and implementation maps.
  • Updated configuration, architecture, runtime-flow, settings/add-on, tool/command and observability documentation for the new compaction methods and recovery behaviour.
  • Documented file-block canonicalisation, context refresh/fallback, provider-native reporting and telemetry.
  • Validated documentation links, anchors, fences and Mermaid diagrams.

Known issues

  • Provider-native compaction may omit readable summary text when continuity exists only in encrypted provider state. That is expected; the encrypted state is doing its job, which is more than can be said for some committees.
  • Pipelined compaction is stricter about malformed file-section output. Valid repeated trailing auxiliary blocks are normalised; malformed or misplaced blocks still fail validation.
  • Deployment and fleet rollout remain separate operational steps.

Upgrade

  • Upgrade from 2.8.7 to 2.9.0.
  • This is a minor release, not a patch release.