0.58.0 - 2026-08-07
Release Notes
Added
-
Time and token spend now has one target-versus-limit vocabulary from the runtime to the screen
(C-542).BudgetEnvelopecarries a soft target beside a hard limit for wall time, model calls and
input/output/total tokens;BudgetUsageEventattributes measured spend to run, session, turn and
loop segment; andBudgetLedgeris the only accountant — a repeatedevent_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 abudget.projectionobservation; 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-budgetis 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 statusandflux fleet dashboardare now bounded projections (C-562). The
defaultflux.fleet-status/v1view reports main state, active/attention/settled worker counts,
wave and item state, exactBoardRefs, repositories, current sessions, last transition/error
summaries and the current revision inside a reviewed fixed byte budget, instead of copying
retainedlast_turnreceipts, 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/v1records, and detail stays behind the explicitly bounded
flux fleet inspectroute. 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 saidworking, 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 nextorders
them, paging to the selection so the rows built stay bounded by terminal height rather than by board
size (C-620).