Repository navigation
OpenCode-Mesh v1.2.0
Released October 13, 2026
What's Changed
Fixed
-
Fix 30-second tool calls on large databases by caching message recency
and skipping it on the send path (root cause: every send and peers call
full-scanned million-row message tables for display badges the send union
never uses; fix mechanism: 60-second recency cache plus a send union
without recency; gate: recency and skip tests green, full suite green) -
Fix v2 sessions undiscoverable after a server restart by rebuilding live
ownership from database recency (root cause: v2 sessions share one server
process, so a restart empties the in-memory owned set while sessions stay
alive, leaving queued rows with no claimant until a manual touch; fix
mechanism: setup-time plus shared-tick adoption of sessions active inside
the activity window with a per-pass cap, reading both session and
session_v2 tables plus message and part recency, heartbeating known rows
and inserting missing ones without overwriting stored identity, safe
across servers because outbox claims are atomic; gate: v2adopt suite
failing before and green after, full suite green) -
Fix v2 delivery queuing forever by adding v2 transport legs beside the
unchanged v1 paths (root cause: the v2 adapter registered tools but every
wire leg dialed v1-only routes that v2 servers never serve, so resolution
missed and the clientless claimer deferred to the attempt bound; fix
mechanism: v1-first then v2-fallback route probing, session locate, and
user admission plus a v2 claimer fallback, with the v1 204 contract,
guards, and probe budgets untouched; gate: v2routes, v2send, and v2presence
suites failing before and green after, full suite green) -
Fix v2 presence rows missing identity by learning agent, directory, model,
and title from created events, session reads, and the instance location
(root cause: the v2 touch path heartbeated only, and tool contexts carry
no directory on v2, so rows stayed register-only with no repo or model and
receiver resolution always missed; fix mechanism: event-data upsert plus
bounded session-get enrichment with stored-value precedence; gate:
v2presence suite failing before and green after) -
Fix v2 injected messages waking without a chat bubble by admitting
through the user prompt channel instead of synthetic admission (root
cause: synthetic messages wake the runner but the chat UI draws only user
messages as bubbles, while v1 prompt_async always wrote user messages;
fix mechanism: sender-direct and claimer v2 legs post user admission with
the same steer and queue wake mapping and identical prefix text; gate:
v2routes, v2send, and v2claimer suites updated and green, full suite
green) -
Fix v2 claimer never injecting by wiring the setup context prompt
admission behind the poll loop (root cause: v2 setups configured the
claimer with a null client on purpose, so owned rows deferred to the
attempt bound on multi-server hosts where no single loopback port answers;
fix mechanism: optional in-process v2 client on the claimer deps that
admits owned rows via user admission with steer and queue
delivery mapped from wake, unknown targets deferring to the bound; gate:
v2claimer suite failing before and green after, full suite green)
Added
- Work from one plugin on OpenCode >= 1.3.13, with the same four tools and
the same send, peers, and skill behavior on every host
(gate: export shape plus double-probe import legs green; peers green on
v1 1.18.35 and v2 2.0.26; road test rollback clean, list back at
baseline) - Keep guards and message envelopes identical on every host
(gate: wrapper-versus-barrel delegation matrix green, stable shape
untouched) - Install and restore the plugin entry idempotently, and report six install
states the same way each time
(gate: dual-key splicer plus idempotent install plus byte-equal restore
plus six-state matrix green)
📖 19 Commits since v1.1.0
| Commit | Description | Author |
|---|---|---|
460f560 |
chore: stamp 1.2.0 version parity | Division 7 |
ae4b57f |
chore: cut 1.2.0 release prep | Division 7 |
2b6ec89 |
ci: allow MITNFA for the bowser transitive license | Division 7 |
0664c6a |
ci: allow runtime licenses of the v2 dependency tree | Division 7 |
216211b |
test: cover v2 fallback legs and drop dead guards | Division 7 |
9e342fb |
test: pin v2 fallback legs and drop dead guards | Division 7 |
73066b3 |
docs: v2 wire accuracy across readme and guides | Division 7 |
e3304ca |
docs: update root readme with v2 compat notes | Division 7 |
15df21a |
docs: v2 wire notes for the mesh skill | Division 7 |
517e539 |
fix: v2 discovery across session tables plus restart adoption and fast sends | Division 7 |
aaec5b8 |
fix: deliver and render v2 mesh messages via user admission | Division 7 |
7d30605 |
test: cover splicer units, ranking, and busy fallback | Division 7 |
4157793 |
test: cover v2 execution and installer edges | Division 7 |
5fc87f4 |
feat: prove v2 live with local shim plus docs | Division 7 |
b9341df |
feat: allow opencode 2.x engine range | Division 7 |
d86d518 |
feat: add v2 dual-key install plus single-entry plugin | Division 7 |
abd5b64 |
ci: widen trigger branches to develop and v2-compat | Division 7 |
59437a1 |
docs: badge table plus ranking line in How It Works | Division 7 |
9c88da2 |
docs: readme wording and install polish | Division 7 |