Skip to content

Releases: 4fuu/uri-agent

URI Agent 2026.1030.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 06:06

URI Agent 2026.1030.0

This release aligns the Antigravity provider with the October upstream protocol changes, following the Antigravity-Manager 5.0.0 reference: the internal gemini-pro-agent codename is retired, the thought-signature sentinel moved to its Base64 form, and new-generation models are tier-controlled by a thinkingLevel instead of a numeric budget.

Fixed

  • Antigravity upstream alignment:
    • gemini-3.1-pro medium and high efforts route to gemini-3.1-pro-high (10001 thinking budget, 65535 output) instead of the retired gemini-pro-agent;
    • the placeholder signature is the official Base64 sentinel; the plain form is still recognized on replay and upgraded, and Claude targets strip sentinel signatures entirely instead of mirroring them;
    • roster records that publish a thinkingLevel for new-generation families (Gemini 4+, Claude 5+) route every effort with that channel: requests send thinkingLevel LOW/MEDIUM/HIGH mapped from the selected effort and never a thinkingBudget, which those models reject; 2.5-era records reuse the field while staying budget-controlled and keep the numeric channel;
    • the roster drops entries upstream marks disabled, including -disabled and _disabled ids, instead of offering them as discovered rows.

Verification

The release workflow passed its version validation, full Rust verification (cargo fmt --check, Clippy, tests, and cargo check), builds and bundle verification for Linux x86-64/ARM64, Apple Silicon macOS, and Windows x86-64, and the Linux, Homebrew, and Scoop installer smoke tests. The verify job reported 945 passed and 1 ignored.

Full Changelog: v2026.1029.0...v2026.1030.0

URI Agent 2026.1029.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 09:06

URI Agent 2026.1029.0

This release adds a non-interactive execute mode for scripts and pipes, makes the binary self-documenting with a complete --help reference and a docs subcommand, and adds uri-agent models with <provider>/<id> model selection. Model handling absorbs the October upstream compatibility reports, and an internal cleanup pass removes about 5,000 lines of dead or duplicated code from the TUI, protocols, core, config, and MCP bridge.

Warning

Breaking changes. WASM plugin support is removed: the extism runtime, the wasm_plugin protocol, the plugin SDK crate and its example, resident plugins and --background, plugin state storage, plugin settings, and dynamic model tool sources are gone. Saved sessions that loaded wasm_plugin help still resume; calls to the removed protocol report it as unknown. Built-in Rust plugins are unaffected.

Added

  • Non-interactive execute mode: uri-agent -x "<prompt>" (or --execute) runs one turn without the terminal interface and exits. The final assistant reply goes to stdout and one-line progress (tool calls, task changes, model retries, errors) goes to stderr as plain text with no ANSI escapes. The prompt comes from the flag, from stdin, or from both; the session is committed like any other turn, so --continue-session or --session <ID> reopens it and a resumed session can be continued with -x. The usual --provider, --model, --thinking, --cwd, --offline, --api-key, and --output-limit flags apply; --acpv1 cannot be combined with -x.
  • Self-contained CLI reference: uri-agent --help now documents every mode, conflict, and accepted value plus the environment variables, settings, and file paths in one long reference, and uri-agent docs [<topic>] lists or prints the documentation embedded in the binary.
  • Runnable model listing: uri-agent models prints one <provider>/<id> per line with its display name, * marking the current default. Only providers with a configured credential are listed unless --all is given, a stale catalog is refreshed first, and a failed refresh falls back to the cache with a warning.
  • <provider>/<id> model selection: without --provider, --model accepts the form uri-agent models prints. The value splits at its first / only when that provider lists the remaining ID and no provider lists the whole value, so IDs containing / (such as OpenRouter's) keep working. New -x sessions check the model before any request and refresh the catalog once when the cache lacks it.

Changed

  • Protocol-use guidance: the system prompt now teaches efficient protocol use instead of restating the step grammar — load every needed protocol in one help call, batch independent steps, chain dependent ones, and keep unneeded output out of context with show — and adds operating rules for untrusted content and concise final replies. Unknown protocol names report close matches.
  • October compatibility absorption, from the pi and oh-my-pi monitoring reports of 2026-10-01 through 2026-10-08:
    • retry classification treats "model is at capacity", "server_busy", and "servers are currently busy" as server failures and the HTTP/2 "pending stream has been canceled" as a network failure;
    • context-overflow detection recognizes both Strata overflow phrasings while leaving its output-limit errors unclassified, and estimates ASCII at 3.5 characters per token so large inputs leave output room;
    • the Cloudflare AI Gateway converts dotted catalog Claude versions to the dashed IDs the Anthropic passthrough accepts;
    • Antigravity browser login prefers its fixed loopback callback port and otherwise binds an OS-assigned one (RFC 8252 §7.3);
    • a samplingParamsByThinkingLevel catalog axis refines per-effort sampling overrides for OpenAI-compatible families;
    • the Antigravity client version resolves from the official update manifest (env override, then manifest, then pin) with silent failure backoff, keeping version-gated models reachable;
    • a successful Antigravity roster fetch filters the built-in model rows to what the account can run, roster models no built-in route covers join as discovered rows, and failed or empty lookups keep the built-in list; the roster cache is keyed on a stable account identity, so token rotation reuses it while account switches do not;
    • official-endpoint Anthropic requests trim the oldest inline base64 images past a 24 MB budget so long screenshot sessions stop hitting the 32 MB request-body limit.

Fixed

  • Catalog warning noise: the "skipped without api or baseUrl" warning fires only for providers configured in models.json, where a missing endpoint is a real configuration problem; endpoint-less rows from unconfigured providers (such as per-deployment Azure) are dropped silently. Catalog warnings no longer accumulate, so a background refresh replayed each warning once per merge and startups showed it twice.
  • Partial Antigravity rosters: effort levels whose route target the account roster lacks are marked unsupported in the surviving model's thinkingLevelMap, so partially available models keep their logical identity and tuned routes without offering selections that would 404.

Verification

The release workflow passed its version validation, full Rust verification (cargo fmt --check, Clippy, tests, and cargo check), builds and bundle verification for Linux x86-64/ARM64, Apple Silicon macOS, and Windows x86-64, and the Linux, Homebrew, and Scoop installer smoke tests. The verify job reported 943 passed and 1 ignored.

Full Changelog: v2026.1002.0...v2026.1029.0

URI Agent 2026.1002.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 08:09

URI Agent 2026.1002.0

This release replaces the protocol tool's text request envelope with structured steps and JSON input, bounds a running turn's activity in a live process card, and makes background tasks visible and controllable from the TUI.

Warning

Breaking changes. Sessions move to sessions-v6.db; earlier session databases are left untouched and are not migrated, so sessions from previous versions do not appear in :resume. WASM plugins must be rebuilt against ABI 9 with the updated uri-agent-plugin-sdk; earlier ABI versions are rejected.

Changed

  • Protocol steps replace the request envelope: the protocol tool takes steps (1 to 8 objects) instead of *** Begin Request strings. Each step names one read or exec address and an optional JSON input object, and can carry id, if, for with max, and show. Later steps reference earlier results through {{ reference }} substitution, if expressions, and bounded for loops. The whole call is validated before anything runs and expands to at most 64 operations. Operations that later steps reference stay in the foreground instead of moving to the background.
  • Typed protocol input: every built-in protocol takes a typed input object and rejects unknown fields. Protocol results can carry JSON, exposed to later steps as <id>.json; MCP tool calls pass input through and map structuredContent to .json. The standalone sessions protocol is removed; saved sessions are read through context://sessions/....
  • WASM ABI 9: protocol handlers receive input and return { text, json? }, and host calls take { uri, input }. The SDK and the example plugin are updated, and define_plugin! uses the SDK's re-exported serde_json, so plugins without their own dependency compile for wasm.
  • Gemini tool schemas: Gemini receives the original tool schema as parametersJsonSchema, so the free-form input object survives conversion.
  • Live process card: while a turn runs, its reasoning and tool activity render as a bounded card where the finished process row will be. The card shows a summary that counts every step by kind ("Ran 2 commands · read 3 files · edited 1 file · 1 failed"), an "… N earlier steps" marker, and the latest four rows (two in the compact layout). The finished process row keeps the same summary, and expanding it still lists the full activity. Narrow rows shorten the counts but keep the failure count.
  • Intermediate text in the card: assistant text from a model response that also calls a tool is treated as intermediate. Once the call starts, the text moves into the card and stays on its last rows (up to three wrapped rows, two in the compact layout) until newer text arrives or two further tool rounds complete. Only a response without tool calls stays in the transcript as the turn's answer.
  • One spinner per turn: only the footer animates. A running card is marked ◆, and the row still in progress is marked ›.
  • Tool details: multi-line shell scripts show their following lines again, a step's address is shown only when the title does not already show it, multi-step calls list one row per step with its own status, *** Result N of M lines stay in the full document instead of the preview, tool output has its own preview budget, and replace previews as bounded -/+ lines.
  • Anthropic thinking budgets: the output cap is treated as the requested answer size, and the thinking budget is added on top, bounded by the model ceiling. When the budget would fall below Anthropic's 1024-token minimum, thinking is sent disabled instead of a rejected budget.
  • Codex client version: bumped to 0.159.0, which unblocks gpt-6.1-sol model discovery.

Added

  • Task manager details: :tasks rows show a status glyph, protocol, label, and live elapsed time, with running tasks first. The selected task shows its id, protocol, timestamps, and a live tail of its output with control sequences removed.
  • Task actions: i interrupts an interactive shell task, o opens the complete output, and c copies it; x still cancels.
  • Running task in the footer: the footer names the newest running background task and its elapsed time, and clicking it opens :tasks with that task selected. A background task that settles while the TUI is open shows a brief notice, such as ✓ task <label> completed in 1m 12s.

Fixed

  • Step validation and substitution: references such as issue.comments>0 compare instead of reading null, \" and \\ parse in string literals, true/false/null match only as whole words, a step cannot reference its own id, and template text such as {{a}} and {{b}} stays literal. Step shape errors name the step and field, and <protocol>://help addresses are rejected before anything runs.
  • Protocol inputs: shell env accepts substituted numbers and booleans as text and rejects empty names, =, and NUL. MCP prompt arguments must be strings. Help, error, truncated-output, and search hints use JSON syntax and escaping.
  • Retry-After in the past: a Retry-After HTTP date that has already passed falls back to exponential backoff instead of retrying immediately.
  • Z.AI context overflow: the Z.AI CN "Prompt exceeds max length" error is classified as context overflow and triggers the checkpoint path.
  • Antigravity endpoint: the daily control endpoint is tried before the sandbox host, which rejects compliant accounts in some regions with "User location is not supported".

Verification

The release workflow passed its version validation, full Rust verification (cargo fmt --check, Clippy, tests, and cargo check), SDK publication, builds and bundle verification for Linux x86-64/ARM64, Apple Silicon macOS, and Windows x86-64, and the Linux, Homebrew, and Scoop installer smoke tests. The verify job reported 936 passed and 1 ignored.

Full Changelog: v2026.928.1...v2026.1002.0

URI Agent 2026.928.1

Choose a tag to compare

@github-actions github-actions released this 28 Sep 16:04

URI Agent 2026.928.1

This release adds a compact touch layout for narrow terminals such as a phone connected over SSH, makes panel rows respond to the mouse again, and orders the command panel by expected use.

Added

  • Compact layout: terminals at most 64 columns wide switch to a layout built for touch. F5 or :layout toggles it for the running process, and :layout auto, :layout wide, or :layout compact sets it directly. The new layout setting (auto, wide, or compact) and URI_AGENT_LAYOUT choose the startup mode. A toggle that lands on what the configured mode would choose returns to following the terminal width.
  • Action bar: the compact layout adds a two-row bar of touch buttons below the footer to write a message, open commands, jump to the latest output, and show status. While a turn runs, the last button stops it.
  • Full-screen panels: in the compact layout, panels fill the screen with a top border only, drop key hints from their titles, and carry a ✕ button that acts like the panel's Esc. Message input and the Queue/Steer choice stay at the bottom, above the phone keyboard.
  • Two-line rows and single-tap selection: in the compact layout, the command panel, selectors, Queue/Steer choice, Model Hub, model roles, Settings, tasks, and plugin panels show the name above the details instead of truncating both. A single tap chooses a row, because phone clients commonly claim double taps.

Changed

  • Compact conversation surface: the footer keeps only the model, effort, task count, and context percentage. The transcript drops its scrollbar and side padding and fills the full width, leaving selection and swipe scrolling to the terminal client. Each mouse-wheel event scrolls 2 rows instead of 6, because a phone swipe arrives as a burst of wheel events; keyboard scrolling is unchanged. Status places each label above its value.
  • Command panel order: commands are listed by expected use rather than alphabetically: session lifecycle (:new, :resume, :quit), model choices, in-conversation tools, configuration, then rare setup. Extension commands follow alphabetically. While searching, match quality still ranks first and this order breaks ties.
  • :compact is summary-only: :compact now only summarizes older history into a checkpoint. It is offered, completed, and run only under the summary context strategy; under rollover it is hidden, and a typed :compact explains how to switch with :context-strategy summary. Rollover still starts new windows automatically.

Fixed

  • Panel rows respond to the mouse: a press on a row, tab, or button inside a panel is no longer taken as the start of a text selection, so command, selector, Queue/Steer, task, and plugin rows can be clicked in every layout. The rest of a panel still selects text.
  • Short panels keep their search field: the command panel and selectors keep the search line when little height is available, such as with a phone keyboard open.
  • Composer hints fit the width: hints at the bottom of the message input drop trailing entries instead of clipping the leading ones.
  • Welcome page on narrow terminals: the model line splits before truncating so the effort stays visible, and the wordmark is centered on odd widths.

Verification

The release workflow passed its version validation, full Rust verification (cargo fmt --check, Clippy, tests, and cargo check), SDK publication, builds and bundle verification for Linux x86-64/ARM64, Apple Silicon macOS, and Windows x86-64, and the Linux, Homebrew, and Scoop installer smoke tests. The verify job reported 885 passed and 1 ignored.

Full Changelog: v2026.928.0...v2026.928.1

URI Agent 2026.928.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 12:08

URI Agent 2026.928.0

This release reports session lifecycle to the Moshi app, stages note and rollover reminders by context-window usage, and stops spawned commands from drawing on the terminal the TUI owns.

Added

  • Moshi session reporting: URI Agent speaks the moshi-hook Unix-socket protocol directly and reports by default. Set URI_AGENT_MOSHI=0 to disable it. The socket is MOSHI_SOCKET_PATH, or the platform default ($XDG_RUNTIME_DIR/moshi-hook.sock on Linux, ~/Library/Application Support/Moshi/moshi-hook.sock on macOS, overridable with MOSHI_STATE_DIR). Reporting is Unix-only: Linux, macOS, and WSL resolve a socket when moshi-hook and URI Agent share a distribution, and native Windows never probes or reports. With no daemon listening, the reporter stays inactive and picks one up if it starts later.
  • Inbox row lifecycle: attaching binds the terminal pane when one is advertised and does not push a notification. The inbox row opens on the first prompt or other activity, with the prompt as the body. A later prompt refreshes that row instead of announcing a new session. A settled turn reports task completion ("Task Done") or failure ("Turn failed"). Once the interface generates a session title, that title becomes the row title. Session updates also carry the remaining context percentage after token usage is known. Inside tmux, Zellij, or Herdr, frames include the pane; tmux frames add the session, window, and socket names when a lookup succeeds, and Herdr frames add the session, workspace, and tab ids when those variables are set.
  • Wire identity: Moshi rejects source: "uri-agent", so frames use source: "pi". That is an allowlisted identity for title tracking and a short Live Activity headline, not a real Pi session. codex is not used, because the daemon drops a Stop event from that source. Mid-turn status ("Reasoning", "Writing", "Running ", "Retrying") is projected and then dropped before sending: moshi-hook publishes no category-less frames and suppresses tool progress, so those updates wait on a silent row-update channel. Reporting is best effort and never blocks the conversation. ACP mode, background resident mode, and depth-2 child Agents do not report. Exit closes every session whose inbox row was opened.

Changed

  • Note and rollover reminders follow window usage: hidden reminders at 15%, 30%, and 50% of the context window ask the model to maintain notes after the work already in hand pauses. Reminders at 60%, 70%, and 80% also ask it to organize that work into notes and to request rollover at the next suitable task boundary; each states how many reminders remain in that series. A jump sends only the highest crossed reminder and marks the skipped levels sent. Near the configured threshold, one further reminder asks for a final note update. If that reserve reminder is already due, it is sent instead of a percentage reminder.

Fixed

  • Spawned commands no longer paint over the TUI: command trees are started in a new session with setsid(), so descendants cannot open /dev/tty and draw on the alternate screen. The new session is still its own process group, so group signals continue to reach the tree.

Verification

The release workflow passed its version validation, full Rust verification (cargo fmt --check, Clippy, tests, and cargo check), SDK publication, builds and bundle verification for Linux x86-64/ARM64, Apple Silicon macOS, and Windows x86-64, and the Linux, Homebrew, and Scoop installer smoke tests. The verify job reported 873 passed and 1 ignored.

Full Changelog: v2026.927.1...v2026.928.0

URI Agent 2026.927.1

Choose a tag to compare

@github-actions github-actions released this 27 Sep 15:12

URI Agent 2026.927.1

This is a patch release fixing the TUI rendering of batched protocol calls introduced in 2026.927.0 and model turns that aborted when a model streamed malformed tool arguments.

Fixed

  • Batched protocol calls render in the TUI again: after protocol moved to one-to-eight batched requests in 2026.927.0, the transcript showed no summary line and the expanded view showed no request details. The summary line now shows the first request's action and target with a +N suffix for the remaining requests, and the expanded view lists every request under its own heading with its body. Single-request calls keep the previous rendering.
  • Malformed streamed tool arguments retry instead of aborting the turn: when a model streams tool arguments whose accumulated JSON fails to assemble while the finish reason claims completion (tool call ... arrived with malformed JSON input), the failure previously fell into the unclassified bucket with no retry policy and immediately ended the turn. It is now classified as malformed tool input and the request is retried up to twice with a short backoff, so transient malformed output recovers instead of losing the turn.

Verification

The release workflow passed its version validation, full Rust verification (cargo fmt --check, Clippy, tests, and cargo check), SDK publication, builds and bundle verification for Linux x86-64/ARM64, Apple Silicon macOS, and Windows x86-64, and the Linux, Homebrew, and Scoop installer smoke tests. Locally, the Rust test suite reported 855 passed and 1 ignored.

Full Changelog: v2026.927.0...v2026.927.1

URI Agent 2026.927.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 13:52

URI Agent 2026.927.0

This release reworks the model-facing protocol request format around request headers and batched execution, moves persisted sessions to sessions-v5.db and WASM plugins to ABI version 8, and removes the Anthropic Claude Pro/Max subscription OAuth provider.

Changed

  • Protocol requests carry headers and run in batches: the protocol tool now takes one to eight fixed-format requests executed in order, each reported in its own result section. A request may include *** name: value header lines between the operation line and a mandatory *** Body: separator, and ends at the last *** End Request line, so bodies may contain that line verbatim. A protocol that needs structured input takes complete serialized JSON as the raw body text.
  • Protocol options move from query strings to headers: every option previously expressed as a ?query suffix is now a request header, query parsing is removed, and targets after :// are fully opaque. Header names are ASCII letters, digits, -, and _; each protocol's help page lists the headers it accepts, and comparable numeric headers accept a comparison prefix such as >=10. Each protocol validates its own headers.
  • Persisted sessions move to sessions-v5.db: the resume index version is bumped to 5 to match the new request representation. Earlier database versions remain untouched and are not migrated, so sessions from older releases do not appear in the new store.
  • WASM plugins move to ABI version 8: protocol requests now carry the URI target, request headers, and a string body through HandlerRequest, HostRequest, and the SDK read/exec calls. Only ABI v8 is accepted, with no compatibility path; existing plugins must be rebuilt against this release's uri-agent-plugin-sdk.

Removed

  • Anthropic Claude Pro/Max subscription login removed: the subscription OAuth login, refresh, impersonation headers, and ANTHROPIC_OAUTH_TOKEN discovery are gone. Anthropic API-key authentication and the generic anthropic-messages Bearer path used by kimi-coding are unchanged. Stale stored OAuth credentials now fail with an explicit error pointing to API-key login.

Chore

  • Codex-compatible backends report client version 0.155.1, up from 0.153.0.

Verification

The release workflow passed its version validation, full Rust verification (cargo fmt --check, Clippy, tests, and cargo check), SDK publication, builds and bundle verification for Linux x86-64/ARM64, Apple Silicon macOS, and Windows x86-64, and the Linux, Homebrew, and Scoop installer smoke tests. Locally, the Rust test suite reported 852 passed and 1 ignored.

Full Changelog: v2026.924.0...v2026.927.0

URI Agent 2026.924.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 19:32

URI Agent 2026.924.0

This release improves narrow-terminal rendering and reduces transient memory use across long-running sessions and model turns.

Fixed

  • Welcome and splash rendering adapt to narrow terminals: the URI wordmark now scales from its doubled pixel form to a single-pixel form, falls back to the plain URI name when necessary, and no longer clips the final mark. Entry-point hints drop trailing items before the line would be truncated, and the hint line is omitted when nothing fits.
  • Protocol request guidance is more explicit: the system prompt and malformed-request errors now show the complete request envelope, including the required final *** End Request line and the placement of optional body lines.
  • File protocol help clarifies query syntax: it now states that query parameters use =, explains that angle brackets are placeholders, and includes a concrete offset/limit example.

Changed

  • Persisted sessions keep less redundant state: after an uncheckpointed session is persisted, its staged event copy is released and resumed sessions read the authoritative history from SQLite. Checkpointed sessions retain only their bounded post-checkpoint tail.
  • Model requests avoid unnecessary history copies: context usage is calculated while the session history is borrowed, model requests are assembled in one path, and the most recent assistant text is found without first cloning the complete history.
  • File and output paths avoid transient allocations: LF-normalized file content can be borrowed, UTF-8 output can reuse its input buffer, and large shell output reserves its final assembled size up front.
  • Long transcripts keep a bounded render cache: rendered transcript blocks outside the active viewport and a small context window are released during viewport rendering and full layout rebuilds.

Verification

The release workflow passed its version validation, full Rust verification (cargo fmt --check, Clippy, tests, and cargo check), SDK publication, builds and bundle verification for Linux x86-64/ARM64, Apple Silicon macOS, and Windows x86-64, and the Linux, Homebrew, and Scoop installer smoke tests. Locally, the Rust test suite reported 839 passed and 1 ignored.

Full Changelog: v2026.923.2...v2026.924.0

URI Agent 2026.923.2

Choose a tag to compare

@github-actions github-actions released this 23 Sep 08:35

URI Agent 2026.923.2

This release focuses on the determinism of the protocol tool request format and fixes two issues that affect daily use.

Fixed

  • Protocol requests now end at the last *** End Request line: every line between the operation line and the final end line is the body, so the body can contain *** End Request verbatim; only non-whitespace content after the final end line is rejected. Newline semantics are also corrected: the newline before the final *** End Request belongs to the request format rather than the body, so add one extra empty line before it when the body should end with a newline (for example, when sending input to an interactive task).
  • Saved-session panels list only root conversations: depth-2 child sessions persisted by the terminal-title plugin and finder lookups no longer appear as an extra row in the @@ reference panel and context://sessions discovery; explicit reads by ID still load child sessions.
  • Tool details no longer repeat the protocol request: the protocol tool's request string was previously rendered a second time as a raw JSON Input section in addition to the Target line and the body block; the raw JSON fallback is now kept only for malformed requests.

Changed

  • Request bodies no longer use the *** Body: header: every line between the operation line and *** End Request is the raw body, passed verbatim and never escaped. A leading *** Body: line is still accepted and ignored for compatibility, but new requests should not include it. The protocol tool description, every built-in protocol help page and example, the TUI display-only request parser, docs/protocols.md, and AGENTS.md are updated accordingly.
  • The request format is now defined once in the protocol tool's request parameter description; the tool description states its purpose only. Retired read/exec tool calls and protocol names used as tool names route through the protocol tool in unknown-model-tool errors.

Verification

cargo fmt --check, cargo clippy --all-targets --all-features -- -D warnings, cargo test (817 passed), and cargo check all pass; release archives for all four platforms (Linux x86-64 / ARM64, macOS Apple Silicon, Windows x86-64) and the Homebrew, Scoop, and Linux installer smoke tests pass.

Full Changelog: v2026.923.1...v2026.923.2

URI Agent 2026.923.1

Choose a tag to compare

@github-actions github-actions released this 23 Sep 06:02