-
v0.2.1 — running turns seen, acknowledged lines never downgraded, heal under a lock, foreign writers refused
StableAll checks were successfulci / check (push) Successful in 1m0sreleased this
2026-10-27 22:47:55 +00:00 | 8 commits to main since this releaseThe 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": [], sostatus.type == "active"is the signal and the running turn's id comes fromthread/turns/listby itsinProgressstatus; 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/steerack 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 isack-unknown(exit 8,delivered: null, throttle kept, do not resend blindly);timeoutis reserved for steps before anything was sent. - Heal under a lock with re-observation; a unit active for less than 30 s without
readyzis 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/unsubscribedoes not release it): the server's verdicts (thread-store conflict … active writer,thread not foundafter a successful resume) areheld-by-app;oo-appserver releaseis 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-runacts 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 doctorDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Running turns are seen. The server answers