-
v0.4.0 — `oo-appserver read`, and a release gate that knows ephemeral threads
StableAll checks were successfulci / check (push) Successful in 1m26sreleased this
2026-10-28 00:48:03 +00:00 | 5 commits to main since this releaseThe read counterpart of
sendand the first building block of design C (Z's yes, steer 40, 2026-10-28): the last turns of a thread, read from the shared server without loading it — measured first:thread/read,thread/turns/listandthread/items/listnever take the thread store's writer lock, so a read never locks the app out and never needs a heal.oo-appserver read <thread-id> [--turns N] [--items] [--full] [--max-chars N] [--timeout S] [--json]- Status (
notLoaded/idle/active), preview, model; the newest N turns (default 3) printed oldest first with their messages;--itemsevery item of each turn (commands, tool calls, web searches as a gist; areasoningitem only as its size,--fulladds the raw items), pages followed up to 1000 items and stopped on an empty page or a repeated cursor (items_more);--max-charsclips (2000). An ephemeral thread is read from its metadata alone. --json= one object (the receipt row's fields plusturns[]) — the contract for callers: a backend that gotack-unknownfromsendlooks here before it would ever resend; Luna's "ok" is read from her thread instead of the app. Receipt rowkind: readper attempt. Exit 0 read · 1 refused · 2 usage · 4 door-closed (a read does not open the door) · 5 timeout.- The heal/release gate reads each loaded thread's state with
thread/read: the app's ephemeral threads (new empty chats) answer neitherthread/resumenorthread/turns/list— one of them keptoo-appserver releaserefusing on the station on 2026-10-28. Idle ephemeral threads pass now, active ones still count as busy. - README: the read section, the gate text, known gaps (the bundled plugin runs since v0.3.0 through the bridge; both its catalogue and its calls travel over the pipe, a bridge receipt row appears when a tool server's connection ends; six thread tools), the read contract.
- Tests:
tests/test_read.py23 legs,tests/test_send.py103 legs (three new gate legs); the fake app-server learnsthread/read,thread/items/listwith paging, item views, ephemeral ids, stuck-server shapes.
Install (from the tag):
git fetch origin tag v0.4.0 && git checkout v0.4.0 && ./install.sh --target ~/tools/oo-appserver— no unit changes, the running shared server needs no restart.Independent read-only review on
2f8bfe5(2 should-fix, 5 low, 6 nits), delta re-check on649892b(the paging loop's termination), final confirmation one5d9fa3: "mergeable as is". PR #7, squash commit5f06c2b.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Status (