Skip to content

v5.0.0

Choose a tag to compare

@zsarir zsarir released this 16 Sep 00:55
· 9 commits to main since this release

Zero-touch: what a run would stop to ask is asked before it starts. This is a major version
because a plan, a session and a script that starts runs each meet something that now refuses.
docs/releasing.md, §Upgrading to 5.0.0, is the full list.

Migration

  • Three lint ids now fail a plan. F14 verification-empty-open: give every open phase's
    §Verification a runnable command. F24 gate-directive-missing: put a - **Gate-check:** line under
    every *(GATED)* heading. F25: every outstanding row in ## Decisions names an owner, a known key
    and a known state. Lint every live plan with the 5.0.0 scripts before a console runs it.
  • phase-outcome.sh … blocked|needs-human requires --needs <key|class>. A 4.1.0 copy of the
    script rejects the flag, so update the console and the plugin together.
  • A run started over HTTP must carry resumeOnRestart, relay and accounts (400 without them).
    It is refused with 409 while a blocking decision is still open, a waiver is unacknowledged or a
    probe fails.
  • Defaults and names moved. delegateHumanGates now ships on and qa.exhausted answers waive.
    phase.tool-auto-granted is now phase.approval-auto-granted, and phase.resume-at-boot is now
    phase.resume-automatic.
  • The relay needs claude 2.1.268 or later. Sessions that are not relayed run with
    --permission-prompts none from 2.1.259.

Added

  • The decision manifest. ## Decisions has seventeen keys; read it with
    phase-graph.sh --decisions and answer it with scripts/decisions.sh.
  • The run-start prelude. Four probes run before anything spawns: accounts, MCP servers,
    credentials and a delivery channel. phase-console doctor runs the same probes by hand.
  • The policy table and ruling memory. Eighteen kinds of interruption are answered by default and
    journalled. --remember promotes a ruling into the next plan, and the table is edited under
    Settings ▸ Automation ▸ Policy.
  • The relay. A question a session asks is held for sixty seconds, then answered by rule, else the
    recommended option, else the first. It is never answered on a deny-list match.
  • Honest sessions. Every stop sends SIGINT first, so turns and cost are booked. Every session
    carries a turn cap and a dollar cap, and every automatic start names its door and counts against a
    ceiling.
  • Honest waits. A declared wait longer than the console's budget is refused with the arithmetic
    instead of being cut. Every resume checks that the session is not live, and an overdue clock at boot
    is ruled on rather than fired.
  • Accounts at the wall. A credential an organisation refuses is retired for every console on the
    machine. The run climbs to the next account, or parks the phase with one errand.
  • An off switch that stays off. Shut down lists what is running first, and Stay off holds every
    later boot until it is cleared. phase-console sessions ingest records session presence with no
    console up.
  • Delivery. A console with no device to notify says so, and an unattended start with no channel
    asks for an acknowledgement.
  • Why a run started and what it cost, on every run and session page, reconciled against the run's
    spend.

Changed

  • The documentation describes all of the above — docs/, the references, SKILL.md and the
    in-app guide, in English and Persian.