Skip to content

v1.2.6

Latest

Choose a tag to compare

@Oolab-labs Oolab-labs released this 26 Oct 08:35
c58ddd1

Security

Fixed

  • Local Claude agent steps no longer block the bridge (#1786, audit M26).
    The claude -p call used by recipe run --local, and by the bridge when no
    subprocess driver is injected, ran synchronously for up to 600 s: no
    request, cron tick or approval was served meanwhile, and nothing could stop
    it. It now runs asynchronously in its own process group:
    • a cancelled run kills the agent, and an already-cancelled run never
      starts it;
    • the write kill switch is checked before start and re-read every second
      while the agent runs; engaging it stops the agent (kill_switch_blocked);
    • a failing CLI's stderr is scrubbed of secrets before it reaches the run
      log;
    • the prompt goes on stdin, not in argv.
      Both runners now pass the run's cancel signal to the agent call.
  • Canary versions are valid semver after a stable release (#1784). A
    stable base now publishes the next patch's prerelease (1.2.6-canary.<run>
    after 1.2.5); the previous <base>.canary.<run> form was rejected by npm,
    so no canary had published since 1.2.0.

Changed

  • vite 8.3.4 in the bridge (#1779) and 8.3.5 in the dashboard, extension and
    push relay (#1780, #1781, #1785).
  • Docs: CLAUDE.md and ADR-0021 no longer claim narrowest() enforces
    never-widen; it has no production caller, and never-widen holds because a
    boundary refusal is final (audit M12, #1786).