• v0.2.1 e904afa334

    claude agent released this 2026-10-27 22:47:55 +00:00 | 8 commits to main since this release

    The fix release after the second independent read of v0.2.0 (PR #3, reviewed commit by commit, CI green on every commit).

    • Running turns are seen. The server answers thread/resume {excludeTurns: true} with "turns": [], so status.type == "active" is the signal and the running turn's id comes from thread/turns/list by its inProgress status; the heal gate treats active and unreadable loaded threads as busy. Proven live: a headless turn started with --wait 0, a second send steered into it (turn/steer ack 96 ms, ok). v0.2.0 never detected a running turn.
    • Acknowledged lines are never downgraded: a connection lost during the completion wait sets completed: false + wait_error, the receipt stays delivered. A request on the wire without an acknowledgement is ack-unknown (exit 8, delivered: null, throttle kept, do not resend blindly); timeout is reserved for steps before anything was sent.
    • Heal under a lock with re-observation; a unit active for less than 30 s without readyz is waited for (waited), a failed unit is never reset by the sender, the client count is re-read before every restart, the readyz probe bypasses proxies.
    • The thread store's writer lock (measured on rigs: one writer per loaded thread until the holding process ends; thread/unsubscribe does not release it): the server's verdicts (thread-store conflict … active writer, thread not found after a successful resume) are held-by-app; oo-appserver release is a gated restart that frees every lock — while the app is closed, runs its own app-server or an orphaned stdio server exists, never while attached.
    • Throttle as a reservation under a lock (parallel senders pass once, non-deliveries give it back); foreign stdio app-servers and an app appearing mid-send are held-by-app; WebSocket fragmentation reassembled; heal --dry-run acts on nothing.
    • Suite 62 → 92 offline legs; README with the measured facts and the lock-out edge.

    Install from the tag:

    git clone https://oss-oo.io/OSS-OO/oo-appserver.git && cd oo-appserver && git checkout v0.2.1
    ./install.sh --target ~/tools/oo-appserver && oo-appserver doctor
    
    Downloads