Skip to content

0.58.0 - 2026-08-07

Choose a tag to compare

@timofriedlberlin timofriedlberlin released this 06 Aug 23:34
· 395 commits to main since this release

Release Notes

Added

  • Time and token spend now has one target-versus-limit vocabulary from the runtime to the screen
    (C-542). BudgetEnvelope carries a soft target beside a hard limit for wall time, model calls and
    input/output/total tokens; BudgetUsageEvent attributes measured spend to run, session, turn and
    loop segment; and BudgetLedger is the only accountant — a repeated event_id, a pre-summed child
    rollup and an ancestor's spend are each ignored with a distinct reason, so a total is never doubled
    and elapsed wall time folds as a maximum instead of a sum. The engine host charges every model call
    and clock sample once and publishes a budget.projection observation; the adaptive stage enforces a
    hard limit at its safe boundary after charging the round that just finished, so a call still in
    flight is never reported stopped. --turn-budget is now expressed in that vocabulary as a
    turn-scope hard limit. The TUI header renders a live spent-versus-declared segment and the CLI
    prints the crossings: a crossed target warns once and execution continues, a crossed hard limit
    stops with a typed scope, dimension, spent and limit. No surface recalculates totals, which is the
    same contract C-571's durable Fleet reservation/settlement ledger consumes.

  • flux fleet status and flux fleet dashboard are now bounded projections (C-562). The
    default flux.fleet-status/v1 view reports main state, active/attention/settled worker counts,
    wave and item state, exact BoardRefs, repositories, current sessions, last transition/error
    summaries and the current revision inside a reviewed fixed byte budget, instead of copying
    retained last_turn receipts, intake receipts and historical event arrays into the default
    output — the shape that reached 2,694,752 bytes on the 2026-08-05 roadmap dogfood run. Redaction
    runs before budgeting, oversized values and trimmed arrays become payload-free
    flux.fleet-status-omitted/v1 records, and detail stays behind the explicitly bounded
    flux fleet inspect route. Status and the TUI dashboard now share one worker-liveness
    derivation, so a completed, failed, cancelled or interrupted process is never counted as active
    because a stale receipt said working, while a delivered continuation is not settled by the
    receipt of its previous turn.

Fixed

  • A worker is granted the toolchain bundles its assigned repository actually surfaces, not the ones
    the coordinator's own root happens to reveal, so a wave dispatched against one repository no longer
    offers its writer a toolchain that is not there (C-605).
  • Operator permission denials and disabled tools now reach every sub-agent, descending through nested
    delegation for the same reason a resource ceiling does (C-612).
  • The Board pane renders items as collapsed boxes grouped by status and ordered as board next orders
    them, paging to the selection so the rows built stay bounded by terminal height rather than by board
    size (C-620).