Repository navigation
Releases: augentic/omnia-backends
Release list
Release v0.31.0
0.31.0
Released 2026-10-22
Pairs with omnia 0.37.x.
Added
- Add
omnia-git, thegitbackend foromnia:vcs(store, workspace, transport) with host-side command policy (#106). - Add
omnia-sandboxfor session-scoped worker isolation, egress proxy, and grant enforcement on Linux and macOS (#112). - Run
omnia-cursorbridges inside the sandbox; add an IPv6 loopback API relay so Bun can stream request bodies (#114, #112). - Expose worker reach through completion
grants.workeronomnia-cursorandomnia-genai(#117, #118). - Bring
omnia-genaito cursor parity: shell tool under sandbox roots, budgets, logging, JSON/schema nudge, andBudgetExhaustedmapping (#145, #112). - Add genai knobs
GENAI_MAX_CANDIDATES,GENAI_MAX_REPEATS, and a finishing round when the round budget is spent (#116). - Answer undeclared tool calls in-band on genai instead of failing the completion (#116).
- Support Qwen Coder models on vLLM, including
qwen3-coder-next-fp8(#146, #156, #157). - Expand cursor completion telemetry: full usage, phase timing, tool-call logging, and configurable
max_tool_calls(#142, #92).
Changed
- Refuse guest mutation of lent trees in cursor: read-only tool allowlist by default (#142).
- Bound cursor inactivity only while waiting on the bridge or tools; long model composition follows the absolute cap (#111, #142).
- Tear down cursor agents after the
completionline; drop attach-to-external-bridge options (#142). - Implement plugin releases as one
PackageStoreonomnia-azure-blob; refuse theomnia-pluginscontainer on guest blobstore (#105). - Read OpenTelemetry export URL from
OTEL_EXPORTER_OTLP_ENDPOINT(#139). - Harden git worktree addressing and merge-rule application (#107, #113, #144, #109).
- Update wasmtime to 50.0.0 (#158).
Fixed
- Apply git merge rules only where both sides changed; follow renames and stage removals correctly (#107, #113).
- Close cursor tool calls left open when the model resumes reasoning or speaking (#142).
- Decode integral protobuf JSON numbers as integers for guest tool arguments (#142).
Removed
- Remove
omnia-filesystem's plugin store; use omnia's localFsStoreand azurePackageStore(#105).
Release notes for previous releases can be found on the respective release
branches of the repository.
Release v0.30.0
0.30.0
Released 2026-09-22
Pairs with omnia 0.36.x.
0.28.0 and 0.29.0 were never published to crates.io (the v0.29.0 tag was
cut by hand and points at no published artefact), so 0.30.0 is the first
line after 0.27.0 and the first release of omnia-cursor, omnia-genai,
and omnia-filesystem. The notes below cover everything since 0.27.0.
Added
omnia-filesystemandomnia-azure-blobimplementomnia_plugin::ContentStore
andomnia_plugin::ReleaseStore(thePluginStorebound behind omnia's registry
acquirer): content entries shared across registries, release records scoped
per registry, verify-before-persist writes. Each impl owns a tree disjoint
from guest storage by construction — aplugins/subtree beside
blobstore/andkeyvalue/on the filesystem, a dedicatedomnia-plugins
container on Azure.omnia-cursorpools its bridges: a completion leases one of
ConnectOptions::max_agentsslots (CURSOR_MAX_AGENTS, default 4, first
come first served; the wait iscursor_lease_wait_ms) and runs its agent
in acursor-sdk-bridgeprocess of its own, closed once the completion's
teardown is done. The bridge reports its own exit: a process that dies
mid-run fails that completion with the typed
cursor-sdk-bridge exited (…) during the run(outcomebridge_exit,
countercursor_bridge_exits) instead of stalling it to the inactivity
deadline, and the agent's teardown RPCs are skipped on a dead bridge.
The last lines the process wrote to stderr are untrusted subprocess
output: they are logged at DEBUG for operators and never reach a WARN
event or the error a guest sees. No RPC waits on a bridge unbounded:
CreateAgentand the head ofSendfall under the
inactivity window, the connect handshake and each teardown call have
bounds of their own, so a bridge that is alive but silent gives its slot
back.CreateAgentand the teardown run on tasks of their own, so a
completion the guest drops mid-create or mid-teardown still closes and
deletes its agent (an unansweredCreateAgentkeeps its slot for one
more window for the late id).
ConnectOptions::bridge_bin(CURSOR_BRIDGE_BIN) names the
executable;bridge_url+bridge_token(CURSOR_BRIDGE_URL,
CURSOR_BRIDGE_TOKEN) attach to a loopbackhttp://bridge another
process manages instead of spawning — a non-loopback URL is rejected
before any RPC, so the bearer token and API key never leave the host —
and a request declaring function tools is rejected there (the callbacks
would reach the bridge's owner, not this client).
Spawn time iscursor_bridge_spawn_ms, spawn failures are
cursor_bridge_spawn_failures, and a spawn that does not complete its
handshake fails with the exit status and the step that failed; its
stderr tail, likewise, is at DEBUG only.omnia-cursorsurvives a bridge that dies under the opening of a
completion: whenCreateAgentor the openingSendfails because the
process exited or its socket failed below Connect, and no candidate has
yet reached the guest'scheck, the dead lease is released and the
prompt goes once more on a fresh one — exactly one restart per
complete, logged at WARN (completion restarting on a fresh bridge)
and counted ascursor_bridge_restarts; the second attempt's result is
final. A loss after a candidate, a deadline, an abort, a Connect or
end-stream error, and a lease failure stand as they are. Failures below
Connect are now the typedTransportError(outcometransport),
distinct from a Connect error and from an end-stream error;Failure,
Exit, andTransportErrorare public so callers match on types rather
than messages, andWasiModelCtx::completedocuments them. The bridge
exit WARN names the process (pid,uptime_ms,status_textsuch as
signal: 9 (SIGKILL)) and the run on it (run_in_flight,silent_ms),
and the spawned bridge'sCURSOR_SDK_BRIDGE_LOGpassthrough is
documented. Theexpect_errorguest scenario gains acheckflag for a
failure that must strike after a candidate reached the guest.omnia-genaigainsConnectOptions::endpoint(GENAI_ENDPOINT): a base
URL every request goes to in place of the provider's own — the
self-hosted-gateway option. The request keeps the shape of the provider
the model id routes to and auth is still that provider's key from the
environment; a missing trailing slash is supplied, and a URL that is not
http://orhttps://is rejected atconnect.omnia-cursorandomnia-genaiare tested end to end from real guest
components: acrates/test-programscrate compiles the shared
omnia:modelscenarios (echo, the threecheckoutcomes, tool
round-trips, fan-out, abandoned fan-out, an expected failure) for
wasm32-wasip2, and each backend runs them throughomnia_test::host
against a protocol-faithful fake —fake-cursor-sdk-bridge(behind the
crate'sfake-bridgefeature; spawned per lease or attached in-process,
with a fault matrix from a hung handshake to aSIGKILLmid-run, and a
check that the ready line's bearer token never reaches a log) for
cursor, anOpenAI-compatible chat-completions endpoint behind
GENAI_ENDPOINTfor genai. The scripted-server unit tests both crates
carried are retired in their favour;Client::idle_slotson
omnia-cursoris the suites' hidden probe for a lease fully released.
The cursor live tier gainsstress_fanout(the four-way fan-out twenty
times over) andupstream_tripwire, red by design until a bridge
release lets one process host two agents.
Changed
omnia-cursorruns onecursor-sdk-bridgeprocess per live agent rather
than one per client, soClient::connectspawns and closes a probe bridge
(still failing fast on a missing or broken binary) and each completion
pays a bridge spawn.ConnectOptionsgainsmax_agents,bridge_bin,
bridge_url, andbridge_token; struct literals must name them
(FromEnvdefaults are unchanged in effect).omnia-genai'sConnectOptionsgainsendpoint; struct literals must
name it (Nonekeeps the provider's own endpoint, as before).omnia-wasm-pkgis deleted before it ever shipped: registry acquisition
(RegistryAcquire, path/registry composition, the digest-verify story) was
absorbed into omnia'somnia-plugincrate, re-exported fromomnia. This
repository's role in plugin loading is the store impls above.- The omnia crates are consumed from crates.io at the published 0.36.0 line
(wasmtime 49 underneath) instead of through[patch.crates-io]git
overrides pinned to a pre-release omnia commit. No API change for users of
these crates; the workspace no longer needs a sibling omnia checkout or a
git fetch to build.
What's Changed
- Bump to 0.28.0 by @augentic-releases[bot] in #29
- Wasi model by @andrewweston in #30
- Specify readiness testing by @andrewweston in #31
- MCP server for cursor-agent by @andrewweston in #32
- Post-upgrade testing and code review by @andrewweston in #33
- Async guest-2-guest linking by @andrewweston in #34
- Specify-driven refactoring by @andrewweston in #35
- Streamline testing by @andrewweston in #36
- Trace cursor thinking by @andrewweston in #37
- configurable timeout for cursor by @andrew-goldie in #38
- Bump to 0.29.0 by @augentic-releases[bot] in #39
- Ci fix by @andrew-goldie in #40
- Upgrade to wasmtime 47.0.2 by @andrewweston in #41
- Update Rust version by @andrewweston in #42
- Simplify telemetry by @andrewweston in #43
- Improve model logging by @andrewweston in #44
- Cursor usability improvements by @andrewweston in #45
- Fix kafka issue by @andrewweston in #46
- RFC 78 - Prompt budget by @andrewweston in #47
- Repo rename by @andrewweston in #48
- Retarget Omnia patches to main by @andrewweston in #49
- Remove branch pin by @andrewweston in #50
- Omnia feature flags by @andrewweston in #51
- Integration tests by @andrewweston in #52
- Add filesystem backend for wasi:blobstore by @andrewweston in #53
- Cursor fixes by @andrewweston in #54
- Cursor fixes by @andrewweston in #55
- Cursor fixes v2 by @andrewweston in #56
- update deps by @andrewweston in #57
- Runtime macro simplification by @andrewweston in #58
- KeyValue filesystem backend by @andrewweston in #59
- Ensure directory exists for get_container by @andrewweston in https://github.com/augentic/omn...
v0.29.0: Ci fix (#40)
* vet supply chain update * patch and pin wrpc version
Release v0.27.0
0.27.0
Released 2026-06-19
Changed
- Updated Omnia crates to 0.34.0.
- Updated
webpki-rootsto 1.0.8 in the postgres crate and refreshed other transitive dependencies.
What's Changed
- Bump to 0.25.0 by @github-actions[bot] in #24
- Fix azure table to support partition key in document id by @karthik-phl in #25
- Bump to 0.27.0 by @augentic-releases[bot] in #26
- Updated Omnia by @karthik-phl in #27
- Fixed vet issues by @karthik-phl in #28
New Contributors
- @augentic-releases[bot] made their first contribution in #26
Full Changelog: v0.25.0...v0.27.0
Release notes for previous releases can be found on the respective release
branches of the repository.
Release v0.26.0
0.26.0
Released 2026-06-10
Changed
- The Azure Table backend now encodes the partition key in the document id
({PartitionKey}\0{RowKey}), so collections no longer need the
{table}/{partitionKey}format. - Migrated
azure-blobto theazure_storage_blob1.0 download-range API. - Upgraded Omnia SDK 0.31.0 → 0.33.0 and the Azure SDK suite to 1.0
(azure_core,azure_identity,azure_storage_blob,
azure_security_keyvault_secrets). - Raised the minimum supported Rust version to 1.95.
- Refreshed backend dependencies, including
mongodb3.7,async-nats0.49,
tokio-postgres-rustls0.14, andopentelemetry-proto0.32.
What's Changed
- Fix azure table to support partition key in document id by @karthik-phl in #25
Full Changelog: v0.25.0...v0.26.0
Release notes for previous releases can be found on the respective release
branches of the repository.
Release v0.25.0
0.25.0
Released 2026-04-22
Changed
- Upgraded Omnia SDK from 0.30.0 to 0.31.0
- Upgraded Azure SDK dependencies to align on
azure_core0.34:azure_core0.33.0 → 0.34.0azure_identity0.33.0 → 0.34.0azure_storage_blob0.10.1 → 0.11.0azure_security_keyvault_secrets0.12.0 → 0.13.0
- Upgraded crate-level dependencies:
jsonschema0.45.0 → 0.46.2 (kafka)redis1.1.0 → 1.2.0 (redis)
- Adapted
azure-blobtoazure_storage_blob0.11.0 API (download range now usesRange<usize>, body accessed via field); fixed potential overflow in range calculation on 32-bit target - Replaced
Duration::from_secs(10 * 60)withDuration::from_mins(10)in NATS key-value config
What's Changed
- Bump to 0.23.0 by @github-actions[bot] in #18
- Upgrade omnia by @andrew-goldie in #19
- vet omnia 0.30.0 by @andrew-goldie in #20
- Patch wasmtime by @karthik-phl in #22
- Update to use Omnia 0.31.0 by @karthik-phl in #23
Full Changelog: v0.23.0...v0.25.0
Release notes for previous releases can be found on the respective release
branches of the repository.
Release v0.24.0
0.24.0
Released 2026-04-01
Added
Changed
What's Changed
- Bump to 0.22.0 by @github-actions[bot] in #11
- rename crates by @andrewweston in #12
- Azure Blob Storage by @andrew-goldie in #13
- Introducing jsondb implementation for Azure table storage by @karthik-phl in #14
- Dependencies by @andrew-goldie in #16
- Dependencies2 by @andrew-goldie in #17
- Bump to 0.23.0 by @github-actions[bot] in #18
- Upgrade omnia by @andrew-goldie in #19
- vet omnia 0.30.0 by @andrew-goldie in #20
Full Changelog: v0.22.0...v0.24.0
Release notes for previous releases can be found on the respective release
branches of the repository.
Release v0.23.0
0.23.0
Released 2026-03-30
Added
Changed
What's Changed
- Bump to 0.21.0 by @github-actions[bot] in #7
- Azure table storage by @andrew-goldie in #8
- Prepare for publishing to crates.io by @andrewweston in #9
- Add missing RELEASES.md by @andrewweston in #10
- Bump to 0.22.0 by @github-actions[bot] in #11
- rename crates by @andrewweston in #12
- Azure Blob Storage by @andrew-goldie in #13
- Introducing jsondb implementation for Azure table storage by @karthik-phl in #14
- Dependencies by @andrew-goldie in #16
- Dependencies2 by @andrew-goldie in #17
New Contributors
- @andrew-goldie made their first contribution in #8
Full Changelog: v0.21.0...v0.23.0
Release notes for previous releases can be found on the respective release
branches of the repository.
Release v0.22.0
0.22.0
Released 2026-02-25
Added
Changed
What's Changed
- Bump to 0.20.0 by @github-actions[bot] in #2
- set publish to true by @andrewweston in #3
- update deps by @andrewweston in #4
- Update shared workflow location by @andrewweston in #5
- Postgres backend by @karthik-phl in #6
- Bump to 0.21.0 by @github-actions[bot] in #7
- Azure table storage by @andrew-goldie in #8
- Prepare for publishing to crates.io by @andrewweston in #9
- Add missing RELEASES.md by @andrewweston in #10
New Contributors
- @github-actions[bot] made their first contribution in #2
- @karthik-phl made their first contribution in #6
- @andrew-goldie made their first contribution in #8
Full Changelog: v0.20.1...v0.22.0
Release notes for previous releases can be found on the respective release
branches of the repository.
Release v0.21.0
0.21.0
Released 2026-01-22
Changed
- Updated Postgres backend to work with the wasi-sql specification
- Modified all backends to reference qwasr
- Updated outdated packages
Release notes for previous releases can be found on the respective release
branches of the repository.