Skip to content

Releases: BigscreenVR/omp-spt

omp-spt v0.9.4

Choose a tag to compare

Edit: omp-spt v0.9.4 Delete: omp-spt v0.9.4

Delete this release?

This will delete the information for the release omp-spt v0.9.4.
@SaberMage SaberMage released this 11 Sep 05:56

Requires spt-core v0.67.0 or newer and Oh My Pi v16.3.15 or newer (both unchanged). Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension.

Fixed

  • Incoming peer messages preserve your unsent draft without changing how they wake the agent. Idle arrivals, busy deliveries, and resubmissions keep OMP's native user-prompt delivery; the extension marks its own delivery stubs as system-injected before the editor handles them, so your typing stays untouched. Peer messages remain user-role context with their full bodies unchanged; they are not promoted to developer or system instructions.

omp-spt v0.9.3

Choose a tag to compare

Edit: omp-spt v0.9.3 Delete: omp-spt v0.9.3

Delete this release?

This will delete the information for the release omp-spt v0.9.3.
@SaberMage SaberMage released this 10 Sep 02:01

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension.

Fixed

  • A turn that ends into a hold still feeds its closing text. The arming turn of spt_checkpoint (and a turn ending in a usage-limit hold) never reaches the idle transition its closing message rides on, so that message was missing from the sender's IO feed (hertz's 0.9.2 acceptance caveat: the native arming closure was absent from the sender rows). The closing text now goes out as the turn's last mid span before the forced busy, exactly once. REQ-IO-TURN-FEED.

omp-spt v0.9.2

Choose a tag to compare

Edit: omp-spt v0.9.2 Delete: omp-spt v0.9.2

Delete this release?

This will delete the information for the release omp-spt v0.9.2.
@SaberMage SaberMage released this 10 Sep 01:41

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension.

Fixed

  • The IO feed's reported cursor is session-scoped, closing the replay 0.9.1 left open. 0.9.1 made the history baseline session-scoped but still cleared the per-turn reported cursor on every before_agent_start. One OMP run holds several turns — a delivery, a steer or a reminder queued mid-run starts the next turn with another before_agent_start and no agent_start, and the single agent_end at the run's end carries every message of the run — so a span reported in an earlier turn of the run was in neither the baseline nor the cleared cursor and went out again at the run's end, minting a fresh MSG_OUT for each shortform (hertz on 0.9.1, 2026-09-10 01:21Z: seq 2030/2033 duplicating 2024/2026; todlando on 0.9.0 with no checkpoint at 01:20Z). The reported cursor and the now-signal's agent-output cursor now live for the session; only positional entries clear per run. KNOWN-HAZARDS #19 (field section added), REQ-HAZARD-IO-HISTORY-REPLAY; live failure found by hertz.

omp-spt v0.9.1

Choose a tag to compare

Edit: omp-spt v0.9.1 Delete: omp-spt v0.9.1

Delete this release?

This will delete the information for the release omp-spt v0.9.1.
@SaberMage SaberMage released this 10 Sep 01:14

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension.

Fixed

  • The IO feed no longer replays earlier output after a checkpoint (or any narrower view of the session). The feed judged "this turn's output" against one replaceable snapshot of the conversation, and OMP presents views of very different width — agent_end carries only the run's new messages, a per-request context can be narrower than the last, and a compaction yields a summary plus a kept tail. When a later view was wider than the snapshot, every historical assistant message in the gap went out again as a mid-turn AGENT_OUTPUT, and core minted new MSG_OUT deliveries for every @<…@> shortform in them (todlando, 2026-09-10 00:35Z: every span since 00:04Z re-sent to doyle, hertz and deployah after an spt_checkpoint). The assistant baseline is now session-scoped and only ever widens, so reported assistant identity is exactly-once per session, not per turn. KNOWN-HAZARDS #19, REQ-HAZARD-IO-HISTORY-REPLAY; RCA by hertz.

omp-spt v0.9.0

Choose a tag to compare

Edit: omp-spt v0.9.0 Delete: omp-spt v0.9.0

Delete this release?

This will delete the information for the release omp-spt v0.9.0.
@SaberMage SaberMage released this 06 Sep 11:49

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension.

Added

  • The context ledger: spt's durable context for a session. OMP applies an extension's context hook per provider request and never stores its output, and it discards the before_agent_start system-prompt override when the turn ends. So everything omp-spt added that way — the startup brief, the durable mind on resume, every now-signal (turn start and boundary), every delivery polled while busy — was seen for one turn or one request and then gone; only delivered bodies had a durable home (0.3.31's re-splice). All of it now lives in one hidden block re-supplied as the last message of every provider request: a head (the mind, then the brief) and an ordered, UTC-timestamped log of everything spt added since the last reset — every now-signal kind verbatim, every delivery's arrival and sender, polled envelopes verbatim. Tail placement keeps the transcript prefix cache-stable (a changing system prompt would re-bill the whole session every turn). The log is bounded (32 KB, oldest evicted first with a visible count, entries clipped at 16 KB) and clears on compaction, keeping the head and recording the reset as its first entry. Order and timing are part of the memory: no now-signal kind is filtered or summarised.

Changed

  • No more per-turn system-prompt override and no per-request spt-now-signal / spt-event messages. The 0.8.0 "brief on every turn" is superseded: the brief is the ledger's head. The now-signal's turn-start answer and every boundary answer are ledger entries; deliveries drained over api poll while busy are ledger entries.

adapter.spt sha256 1bfdf10c610343a9efdc4f0631d13dc1f5f05ea6aad4515c35a136a562b0e8f8.

omp-spt v0.8.0

Choose a tag to compare

Edit: omp-spt v0.8.0 Delete: omp-spt v0.8.0

Delete this release?

This will delete the information for the release omp-spt v0.8.0.
@SaberMage SaberMage released this 06 Sep 10:56

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension.

Added

  • RECV-silence watchdog (KNOWN-HAZARDS #17). A listener that takes deliveries from spt-core but emits nothing to the extension used to sit ONLINE and deaf, invisible to the hazard-#5 ladder (which only arms once a delivery has been received). While a listener is up and the session is idle, the extension now replays the endpoint's spt api io-events ledger every two minutes and counts the MSG_IN rows taken since that listener started against the deliveries it actually received (listener frames plus frames it drained itself over api poll). More rows than receipts restarts the listener once (LISTENER_RESTART_ON_SILENCE in the log, degraded-comms rail); the same divergence on the replacement closes the endpoint through the existing fail-closed ladder so it is visibly offline. Silence alone never restarts anything, and an unreadable ledger proves nothing. On spt-core ≤ 0.67.x the relay leg writes no MSG_IN row (F-038, spt-bs-releases#280), so the watchdog is fail-safe today and becomes effective the release #280 lands, with no adapter change.

Changed

  • The startup brief rides every turn and spells the shortform opener out. The brief used to ride the system prompt of the activation turn only; OMP rebuilds the per-turn override, so a session deep into its work no longer saw it. It is now appended on every turn, and its messaging line shows the grammar in full — @<doyle your text @>, the opener @< glued to the id (@<doyle, never @doyle), ids comma-joined, closer @> — after a field session opened with @doyle … @> and had to resend.

adapter.spt sha256 825e84ed397f7082ec9de3b20d8fda575d06b45a8ec0fb9e03fbe626728516b1.

omp-spt v0.7.1

Choose a tag to compare

Edit: omp-spt v0.7.1 Delete: omp-spt v0.7.1

Delete this release?

This will delete the information for the release omp-spt v0.7.1.
@SaberMage SaberMage released this 06 Sep 10:32

omp-spt 0.7.1

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension.

Fixed

  • A failed spt command is now reported by the line that explains it, and its whole output is logged. A failure used to be summarised by the first non-empty line of the command's output. spt-core prints a diagnostic ahead of its refusal on every api bind on a node without an engine room (ER_HOSTED_PROBE:…, an eager reserved-id probe that decides nothing — spt-bs-releases#279), so the decisive CONFLICT:<id> is live under session … line never reached the log or the notification; the 0.7.0 subagent field report cited the probe line as the refusal for that reason. The summary now skips that diagnostic and the full capture rides with the error into the log line, so the next refusal is diagnosable from the log alone.

Changed

  • Parity record corrected. F-037 in docs/SPT-CORE-FINDINGS.md now cites the published api bind ownership guarantee ("you can only bind your own") and the CONFLICT line — doyle's ruling of 2026-09-06 — and KNOWN-HAZARDS #15 no longer calls the probe the guard. The two shortform-outcome rows in docs/PARITY.md that still read "gap → phase 2" record what 0.4.0 shipped: dispatch outcomes and the session's sender proof come from spt-core's DISPATCH_RESULTS.

Release commit: 7ac97dfa3e907d37e63dc39aa2072bea508dfa87 (feature commit 685b6eb). Asset: adapter.spt (x86_64 Windows MSVC, Linux GNU, static Linux musl helpers).

omp-spt v0.7.0

Choose a tag to compare

Edit: omp-spt v0.7.0 Delete: omp-spt v0.7.0

Delete this release?

This will delete the information for the release omp-spt v0.7.0.
@SaberMage SaberMage released this 06 Sep 10:12

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension. Do not run spt_checkpoint on an endpoint still on 0.4.0–0.6.0 — see Fixed.

Fixed

  • spt_checkpoint no longer hangs OMP. The tool used to await native compaction from inside its own call; OMP's compaction aborts the active run and waits for it to settle, and the run was waiting on the tool — a three-way wait that froze the "Compacting context…" loader until Esc and then reported a failed checkpoint with no wake. It never bit in the field only because no endpoint had run it yet. The tool now arms the checkpoint and returns at once ("end the turn now"); when the turn ends the endpoint publishes busy and the extension compacts from a timer, outside every tool and hook, then queues the same-endpoint wake exactly as before — and only once OMP's own session_compact event proves the reset committed, since OMP's interactive compaction resolves normally even when cancelled or failed. A reset that fails after arming, or resolves without committing, is reported as a next-turn notice (commune saved, context NOT reset, no wake queued) — never a false wake. (KNOWN-HAZARDS #16)
  • A subagent no longer activates the endpoint a second time. OMP binds the extension again for every in-process subagent session, with no marker that says so; the nested copy read the same endpoint id and ran a second api bind with the subagent's session id — which spt-core happened to refuse (ER_HOSTED_PROBE:no-row), leaving an error line per subagent and relying on core's accident to keep the primary session alive. Exactly one binding per OMP process activates now; every later one is inert (no bind, no listener, no state, no session-end; tools and /ready refuse), so a message can only ever surface in the main conversation. (KNOWN-HAZARDS #15)

Added

  • Deliveries during a checkpoint are held for the post-reset turn. From arming spt_checkpoint until its wake (or failure notice) is queued, inbound peer messages stay in custody unsubmitted — a stub submitted into the dying context would be summarised away — the status rail reads · checkpoint pending, and the deaf-session ladder pauses. The release resubmits them right after the wake; OMP orders the wake turn against the delivery turns itself.

Field-verified on 0.6.0 (no code change)

  • The long-foreground-command nudge (35 s sleep, line quoted verbatim by hertz) and the [omp-spt <id>] log prefix. Note the nudge's window: OMP backgrounds a foreground bash itself at bash.autoBackground.thresholdMs (default 60 s) and backgrounds early when a steer arrives, so the nudge fires for completed foreground runs of 30–60 s.

Requires spt-core v0.15.0 or newer (was v0.13.2). This release adds self-checkpointing for live agents, automatic resume context, and clearer multi-line message delivery — all built on features that arrive in spt-core v0.15.0.

Added

  • Self-checkpointing for live agents — /sptc:commune --checkpoint. A live agent can now reset and rebuild its own context without you running /clear. Write a commune containing the marker !!checkpoint!! and the session clears itself, then wakes back up from that very commune and keeps going. A single !!checkpoint!! wakes with a default "Proceed with next steps"; a pair of markers wakes with whatever instruction you write between them. The marker is one-shot — it never lingers in your rebuilt context.
  • Automatic resume context. When a live agent's session starts (or clears), it now pulls its durable role, working context, and latest unsynced commune and re-injects them automatically — so it resumes where it left off instead of coming back blank.

Changed

  • Incoming messages are easier to read. A message delivered from another agent now renders across multiple lines — the envelope opening, the body, and the close each on their own line — instead of one dense single line.
  • Requires spt-core v0.15.0+ (up from v0.13.2). Self-checkpointing and resume context both rely on capabilities introduced in that release; /sptc:setup and spt adapter update will keep you current.
  • Adapter version of truth is now 0.7.0 (shown in /sptc:version and the release tag).

[0.6.2] - 2026-06-23

Requires spt-core v0.13.2 or newer (unchanged). A small but important delivery fix — no change to commands or setup.

Fixed

  • Messages delivered while you're idle now actually send. Previously an incoming message from another agent could be typed into your Claude Code input box but never submitted — it just sat there as an unsent draft. The delivery now presses Enter to send it, so idle-delivered messages arrive and run on their own. Your half-typed draft is still stashed and restored around the delivery, exactly as before.

[0.6.1] - 2026-06-22

Requires spt-core v0.13.2 or newer (the version that can install a multi-platform package). Packaging-only release — no change to what the adapter does, only how it ships.

Packaging

  • One download now covers every platform. The adapter ships as a single multi-platform adapter.spt that bundles both the Windows and Linux builds beside one shared manifest; installing picks your platform automatically. This replaces the previous per-OS files and the Windows-only stopgap adapter.spt (which broke self-update on Linux), so spt adapter add --release … and spt adapter update now just work on either OS with no platform to pick. Requires spt-core v0.13.2+ (the version that can read a multi-platform package).

Changed

  • Setup is simpler. /sptc:setup now activates the adapter with a plain spt adapter add --release SaberMage/spt-claude-code — no OS detection or asset selection, since the one package is host-agnostic.
  • Adapter version of truth is now 0.6.1 (shown in /sptc:version and the release tag). The cplugs plugin skeleton bumps with the simplified setup body.

omp-spt v0.6.0

Choose a tag to compare

Edit: omp-spt v0.6.0 Delete: omp-spt v0.6.0

Delete this release?

This will delete the information for the release omp-spt v0.6.0.
@SaberMage SaberMage released this 06 Sep 09:45

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension and helper.

Added

  • A provider usage limit is an outage, not a fault — and the endpoint now waits it out. When a turn ends with an account-level refusal (OMP's usage-limit classification, HTTP 402, or quota/credits/billing wording), the extension says so once and plainly: nothing is broken, the session and its context are intact, only a human clearing the limit or the provider's stated reset changes anything, and the provider's own line is quoted. It then holds the endpoint busy — not receivable — until the stated reset plus one minute, re-asserting that state every five seconds so a stray recovery is corrected within seconds. Peer messages wait in the queue instead of bouncing off a session that cannot answer, and the deaf-session ladder pauses for the hold. A human prompt releases the hold early; the deadline releases it and delivers everything queued, in order; after a restart the session's own record re-arms the hold while its last message is still the refusal. Without a parseable, plausible reset time the endpoint simply stays reachable — the failure direction is always "reachable too early", never "stuck forever". Per-interval rate limits and capacity shedding are transient and never a hold.
  • The Psyche companion's account refusal is reported for what it is. When the companion's inner OMP turn is refused for account or credential reasons, psyche-omp now exits spt-core's reserved code 96 with a PSYCHE_ACCOUNT_REFUSAL line that names the cause and the fix in one breath: an outage, not a fault; the Psyche session and its stored context are intact and untouched; a human clears the account. spt-core paces its retries on that code, never reseeds, and spends no strike — so a billing limit no longer looks like a broken companion.
  • Long foreground commands get a nudge to go background. A foreground bash call that measured 30 s or more has one [spt] line appended to its result: peer deliveries reach you only at your next boundary and the endpoint read busy the whole time — run such commands with async: true and poll. At most three nudges per turn; advice only, nothing is blocked.

Changed

  • Companion failures say what the inner session actually said. A failed psyche-omp or echo-commune-omp turn now carries a bounded tail of BOTH the inner session's stdout and stderr in its failure line, and says explicitly when a channel was silent — silence being itself the thing worth knowing.
  • Every extension log line names its endpoint ([omp-spt <id>], unbound before activation), so field logs that interleave several hosted sessions attribute to a perch.
  • The end-of-session summarizer no longer mistakes a machine for a teammate. The echo-commune policy prompt names another agent only where the transcript shows a direct exchange with it, and never presents a machine, host, or node name as an agent, peer, or teammate.
  • Both LLM-turn roles declare their invocation budget in the manifest (psyche_resume 240 s, echo_commune 180 s) instead of riding spt-core's 90-second default, per the published §Invocation budgets.
  • KNOWN-HAZARDS #14: a perch's rest_state is a last-rest stamp, never a suspend proof (doyle ruling, 2026-09-06); the extension never reads it, and a unit test keeps it that way.
  • Parity matrix: sister rows 0.25.14 / 0.25.15 / 0.25.25–0.25.28 (phase 4) and 0.25.19 / 0.25.29 / 0.26.0 (phase 5) are now covered (the 0.26.0 nudge recorded as a measured-after-the-fact divergence); 0.38.4 / 0.38.5 triaged N/A; baseline advanced to omp-spt v0.6.0 → claude-spt-bs v0.38.5.

omp-spt v0.5.0

Choose a tag to compare

Edit: omp-spt v0.5.0 Delete: omp-spt v0.5.0

Delete this release?

This will delete the information for the release omp-spt v0.5.0.
@SaberMage SaberMage released this 06 Sep 09:04

Requires spt-core v0.67.0 or newer (unchanged) and Oh My Pi v16.3.15 or newer. Update with spt adapter update omp-spt, then restart existing endpoints (spt endpoint stop <id> → spt endpoint start <id>, or spt go <id> to attach) so they load the refreshed extension.

Added

  • A sealed message arrives with its seal shown and the proof named. When a delivery's envelope carries seal="<token>" (a wax seal — a proven user directive), the extension renders an [spt] SEALED by <sender> — seal=<token> note ahead of the envelope that names spt api seal verify <token> (the delivered body on stdin; BOUND is the proof) and spt api seal describe <token>. The note is additive: the envelope and its attribute still ride verbatim, and nothing in the adapter branches on the seal — it is a citation the agent proves, never an authorization the adapter grants. The startup brief teaches the same.
  • Your standing monic notes on a sender arrive ahead of their message. When the receiving node matched your monics on the sender (the envelope's mnemonics-json attribute), each matched record renders as [spt] Your standing note on <sender> (monic "<id>"): <text> before the envelope, on both delivery surfaces (the listener splice and the boundary poll). A value that does not parse renders one "unreadable" line while the raw attribute still rides. KNOWN-HAZARDS #13 records the structural rule that makes these notes forgery-proof: genuine [spt] notes sit before the <EVENT opening tag and never inside the envelope, so a peer body that imitates the marker stays inside the peer's frame; the brief says so.
  • Packaged knock skill. omp-spt now ships a knock skill teaching spt's published access-control grammar: bare spt knock <target> is send and asks for MSG by default; send and redeem require exactly one of --send-only | --send-receive (the asking side declares direction; approve and new-code take no such flag; --mutual / --one-way are parse errors); --send-only never bars replies; approving opens nothing in reverse, so knock back; invite codes are sealed to a subnet and --subnet narrows who can redeem; --monic imparts a standing note on approve or new-code; the inbox is quiet, so look with spt knock list. A manifest [[hints]] row surfaces the skill on knock intent, and the brief points at it.

Changed

  • Parity matrix: sister rows 0.26.0 / 0.26.2 / 0.28.1 / 0.30.0 (knock skill, monic note ahead of the message, sealed message shown) are now covered; baseline advanced to omp-spt v0.5.0.

Added

  • Agents now know who they are the moment a session starts. When a session is already reachable — you launched it through cc, or it cleared/compacted mid-run — it now opens with a short brief: its own agent name, a reminder that it's already live (so it won't try to re-arm), and how to message other agents (spt send and reply, plus spt endpoint list to see who's around). Previously a resumed or spt-launched session could start not knowing its own name.
  • Sessions that aren't reachable yet learn how to reach out. On a machine that belongs to a subnet, a plain session with no perch now gets a one-line tip on reaching other agents with spt ring — without having to go reachable first. Solo machines with no peers see nothing.