Releases: librefang/librefang
Release list
v2026.7.21
release: v2026.7.21 (#6537) * chore: bump version to v2026.7.21 * chore(codegen): sync generated artifacts (openapi.json, SDKs, baselines) * docs: strip stray code fence and leaked assistant commentary from release article The committed file wrapped the whole article in an outer ```markdown code fence and appended a trailing block of AI-assistant meta-commentary that was never meant to ship, breaking the dev.to-style article render. --------- Co-authored-by: Evan <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude <[email protected]>
v2026.7.11
Full Changelog
Stable release. First stable cut on the repaired release pipeline (#6433):
cli_pypinow publishes only for stable / LTS tags, so beta/rc pre-releases no longer fill thelibrefangPyPI project's 10 GB quota.- The desktop asset-cleanup no longer deletes the CLI binary tarballs, so the macOS/Linux/Windows CLI wheels publish to PyPI cleanly.
See the CHANGELOG for the full list of changes.
Install / Upgrade
Homebrew (macOS):
brew install librefang # CLI (stable) — official homebrew-core
brew tap librefang/tap # pre-release CLI + desktop app
brew install --cask librefang # Desktop (stable)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Documentation · Discord · Contributing Guide
Full diff: v2026.7.10...v2026.7.11
v2026.6.29
Full Changelog
14 PRs from 4 contributors since v2026.6.26-beta.24.
Highlights
- Korean language support — full UI, CLI/TUI, and error message translations added (233 keys covered)
- ARM64 Linux packages — aarch64 binaries now published alongside x86_64 via AUR and the project's pacman repo
- Telegram setup resilience — the setup form stays available after a describe timeout instead of disappearing
- Codex CLI flexibility — Codex CLI can now be used outside of Git repositories
- Mixed-media message enrichment — coalesced batches with mixed content types are now correctly enriched on the debounced path
Added
- UI Korean translation (#6349) (@seungjin)
- Complete Korean error translations (43 → 233 keys) (#6353) (@houko)
- Add Korean (ko) translation for the CLI/TUI (#6356) (@houko)
- Publish aarch64 packages alongside x86_64 (#6334) (#6358) (@houko)
Fixed
- Bump pdf-extract 0.10→0.12 to patch lopdf RUSTSEC-2026-0187 (#6339) (@houko)
- Keep Telegram setup form available after describe timeout (#6345) (@pavver)
- Allow Codex CLI outside Git repositories (#6347) (@pavver)
- Enrich coalesced mixed-media batches on the debounced path (#6348) (#6351) (@houko)
Documentation, maintenance, and other internal changes
Maintenance
- Symlink legacy NDK binutils so vendored OpenSSL cross-compiles for Android (#6335) (@houko)
- Put NDK bin on PATH so openssl-src finds the legacy ranlib symlink (#6338) (@houko)
- Enable auto-merge instead of forcing --admin (#6340) (@houko)
- Publish AUR packages on release (#6334) (#6341) (@houko)
- Publish project-maintained pacman repo to R2 (#6334) (#6352) (@houko)
Other
- Fix[flake.nix]: Add perl to nativeBuildInputs (#6346) (@FrantaNautilus)
Install / Upgrade
Homebrew (macOS):
brew tap librefang/tap
brew install librefang # CLI (stable)
brew install librefang-beta # CLI (beta channel)
brew install librefang-rc # CLI (rc channel)
brew install --cask librefang # Desktop (stable)
brew install --cask librefang-beta # Desktop (beta channel)
brew install --cask librefang-rc # Desktop (rc channel)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Coming from OpenClaw / OpenFang? librefang migrate --from openclaw (or --from openfang)
Documentation · Discord · Contributing Guide
Full diff: v2026.6.26-beta.24...v2026.6.29
v2026.6.26-beta.24
Full Changelog
10 PRs from 2 contributors since v2026.6.24-beta.23.
Added
- Add Ukrainian localization and extract hardcoded copy (#6312) (@pavver)
- Add AUR packaging for Arch Linux (#6314) (@pavver)
- Surface run params, errors, and one-click re-run (#6292) (#6324) (@houko)
- Allow a custom model id when editing an agent (#6318) (#6327) (@houko)
Fixed
- Disable redirect following on OAuth HTTP clients (SSRF + credential leak) (#6315) (@houko)
- Block separator-less secret env names from WASM guests (#6316) (@houko)
- Guard gc_sweep running_tasks removal with task_id (TOCTOU) (#6317) (@houko)
- Describe inbound images on the debounced channel path (#6321) (#6323) (@houko)
- Accept empty-recipient HMAC so bootstrap_peers can connect (#6330) (@houko)
Documentation, maintenance, and other internal changes
Maintenance
Install / Upgrade
Homebrew (macOS):
brew tap librefang/tap
brew install librefang # CLI (stable)
brew install librefang-beta # CLI (beta channel)
brew install librefang-rc # CLI (rc channel)
brew install --cask librefang # Desktop (stable)
brew install --cask librefang-beta # Desktop (beta channel)
brew install --cask librefang-rc # Desktop (rc channel)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Coming from OpenClaw / OpenFang? librefang migrate --from openclaw (or --from openfang)
Documentation · Discord · Contributing Guide
Full diff: v2026.6.24-beta.23...v2026.6.26-beta.24
v2026.6.24-beta.23
Full Changelog
33 PRs from 5 contributors since v2026.6.22-beta.22.
Added
- Localize TUI Onboarding Wizard and Agents screen (#6253) (@pavver)
- Pluggable context-rewrite modules — per-agent engine + host-run request_llm_summary (closes #6264) (#6287) (@houko)
- Add scriptable tool result transform hook (#6291) (@pavver)
- Per-step errors and re-run with same parameters (#6292) (#6302) (@houko)
- Code_search workspace regex search tool (#6295) (#6307) (@houko)
Fixed
- Gate provider hourly token budget pre-call so exhaustion flags the fallback chain (#5980) (#5988) (@DaBlitzStein)
- Persist agent skill & MCP-server assignments to agent.toml (#6046) (@DaBlitzStein)
- Embed developer-loop placeholder in first result delivery (closes #6251) (#6254) (@maoxin1234)
- Kill sidecar child on shutdown + forward async delegation result to channel (#6267) (@DaBlitzStein)
- Complete dashboard i18n coverage (#6271) (@pavver)
- Vendor OpenSSL unconditionally so cross-compiled release targets link (#6279) (@houko)
- Merge updater plugin config into base tauri.conf.json (closes #6270) (#6283) (@houko)
- Handle /new in the TUI chat surfaces (closes #6265) (#6284) (@houko)
- Merge the dual [Unreleased] sections into one at the top (#6285) (@houko)
- Forward web-UI-initiated delegation results to the home channel (refs #6266) (#6286) (@houko)
- AUTH PLAIN fallback for SMTP + expose input/error in workflow runs list (#6293) (@DaBlitzStein)
- Scope GET /api/workflows/{id}/runs to the path workflow (#6298) (@houko)
- Block sandbox escape via intermediate-ancestor symlink on writes to non-existent dirs (#6299) (@houko)
- Reject newline/CR/NUL in secret key to prevent secrets.env line injection (#6300) (@houko)
- Graceful 400 for non-table [memory]/[proactive_memory] in PATCH /api/memory/config (#6301) (@houko)
- Apply api_key_env/base_url in PATCH /api/agents/{id}/config instead of dropping them (#6303) (@houko)
- Wire provider cooldown breaker into the LLM retry path and fix its probe gate (#6305) (@houko)
- Gate scriptable transform-hook tests behind cfg(unix) to unbreak Windows CI (#6306) (@houko)
- Gate use std::sync::Arc behind cfg(unix) to complete the Windows-red fix (#6308) (@houko)
- Install libdbus-1-dev in the release Bump Version job (#6309) (@houko)
Performance
- JSON-aware token estimation for tool paths (#6281) (@maoxin1234)
Documentation, maintenance, and other internal changes
Maintenance
- Token-estimation accuracy benchmark with multi-tokenizer baselines (#6269) (@maoxin1234)
- Bump the cargo-minor-patch group across 1 directory with 8 updates (#6276) (@app/dependabot)
- Bump wasmtime from 45.0.2 to 46.0.0 (#6277) (@app/dependabot)
- Bump cron from 0.16.0 to 0.17.0 (#6278) (@app/dependabot)
- Bump vulnerable/yanked lockfile deps to clear global CI failures (#6280) (@houko)
- Bump actions/checkout from 6 to 7 (#6296) (@app/dependabot)
- Bump actions/cache from 5.0.5 to 6.0.0 (#6297) (@app/dependabot)
Install / Upgrade
Homebrew (macOS):
brew tap librefang/tap
brew install librefang # CLI (stable)
brew install librefang-beta # CLI (beta channel)
brew install librefang-rc # CLI (rc channel)
brew install --cask librefang # Desktop (stable)
brew install --cask librefang-beta # Desktop (beta channel)
brew install --cask librefang-rc # Desktop (rc channel)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Coming from OpenClaw / OpenFang? librefang migrate --from openclaw (or --from openfang)
Documentation · Discord · Contributing Guide
Full diff: v2026.6.22-beta.22...v2026.6.24-beta.23
v2026.6.22-beta.22
Full Changelog
1 PR from 1 contributor since v2026.6.22-beta.21.
Highlights
- Safer upgrades — the installer now falls back to the last known-good release and automatically rolls back a failed upgrade instead of leaving the app in a broken state.
Fixed
Install / Upgrade
Homebrew (macOS):
brew tap librefang/tap
brew install librefang # CLI (stable)
brew install librefang-beta # CLI (beta channel)
brew install librefang-rc # CLI (rc channel)
brew install --cask librefang # Desktop (stable)
brew install --cask librefang-beta # Desktop (beta channel)
brew install --cask librefang-rc # Desktop (rc channel)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Coming from OpenClaw / OpenFang? librefang migrate --from openclaw (or --from openfang)
Documentation · Discord · Contributing Guide
Full diff: v2026.6.22-beta.21...v2026.6.22-beta.22
v2026.6.22-beta.21
Full Changelog
45 PRs from 7 contributors since v2026.6.17-beta.20.
Highlights
- Context-window awareness — a live usage indicator shows how much context remains, quota errors are classified honestly, and agents now guide you to open a new session when you hit a token or context limit.
- Dashboard agent management — you can now edit and bind a system prompt directly from the agent detail drawer, remove a configured sidecar channel, and view agents grouped into Core Agents and Hands sections.
- Per-agent sidecar secrets & provider controls — each agent instance can hold its own private credentials, and you can view and edit the provider max-token limit from the UI; the arbitrary 200k cap on agent max tokens has been removed.
- CoT pruning + streaming reliability — chain-of-thought steps are pruned and developer-loop turns aggregated to keep sessions lean; streaming final answers now arrive as a fresh message instead of being lost on delivery.
- Confidential OAuth clients — OAuth clients can now supply their
client_secretvia an env variable (client_secret_env), keeping secrets out of config files.
Added
- Non-blocking agent_send via the async-task tracker (#6044) (@DaBlitzStein)
- Global Auto-Dream on/off switch on the Memory tab (#6194) (@houko)
- Edit + bind system prompt from the agent detail drawer (#6201) (@houko)
- Remove a configured sidecar channel from the dashboard (#6202) (@houko)
- Group the Agents list into Core Agents and Hands sections (#6205) (@houko)
- Context-window usage indicator + honest quota-error classification (#6215) (@houko)
- Per-instance sidecar secrets so each agent can own its own handle (#6217) (@houko)
- Coding-agent class, actual_model reporting, CodeWhale driver, provider grouping (#6220) (@houko)
- Add agent label to librefang_tool_call_total (#6226) (#6229) (@houko)
- Guide user to a new session on token/context limit (#6211) (#6231) (@houko)
- Emit agent-loop exit-reason metric (#6227) (#6232) (@houko)
- Tool-call telemetry fidelity — failure-type breakdown, per-tool latency histogram, span error status (#6233) (@houko)
- Display + edit provider max-token limit (#6209) (#6238) (@houko)
- CoT-pruning + developer-loop aggregation (#6173) (#6239) (@houko)
- Localize TUI main interface, welcome, sessions, and peers screens (#6241) (@pavver)
- Add agent dimension to librefang_tool_execution_seconds (#6244) (#6245) (@houko)
- Confidential OAuth clients via client_secret_env (revives #5060) (#6260) (@houko)
Fixed
- Zeroize EmbeddingConfig.api_key on drop (partial LF-001) (#6190) (@BunnyMoth)
- Enforce SHA256 verification in install.sh, remove silent skip paths (#6191) (@BunnyMoth)
- Resolve link-preview-js peer conflict and commit lockfile (#6192) (@houko)
- Deny WASM fs_write to the audit anchor via a capability deny-list (#6196) (@houko)
- Bind launchctl status string to a let so the macOS build compiles (E0716) (#6203) (@houko)
- Serve the SPA shell on a hard refresh of Prompts and Tasks pages (#6207) (@houko)
- Refuse to delete the active (bound) prompt version (#6208) (@houko)
- Stop the agent-creation wizard stamping a hidden 200k hourly token cap (#6212) (@houko)
- Merge Hand settings on save instead of replacing the whole config (#6213) (@houko)
- Drop the arbitrary 200000 cap on the agent max_tokens input (#6214) (@houko)
- Allow close_range, getresuid/gid, and pipe splicing syscalls in seccomp sandbox (#6221) (@pavver)
- Scope compaction-summary banner to the compacted session (#6225) (#6230) (@houko)
- Make i18n locale-detection test deterministic on macOS (refs #6240) (#6243) (@houko)
- Spill oversized shell_exec output instead of truncating (#6242) (#6246) (@houko)
- Deliver streaming final answer as a fresh notifying message (#6248) (#6249) (@houko)
- Rank explicit per-peer bindings above the sidecar instance default (#6258) (@neo-wanderer)
- Clear .secrets.baseline drift from #6190 and hard-error pre-commit when detect-secrets missing (#6259) (@houko)
- Channel_send without recipient replies to the group, not the speaker (#6261) (@neo-wanderer)
Changed
- Migrate browser_tools.rs to ToolError (#3576 slice) (#6218) (@houko)
- Typed TmuxError for terminal_tmux (#3576) (#6237) (@houko)
- Make WebhookStore async-safe with tokio RwLock (closes #2) (#6256) (@maoxin1234)
Documentation, maintenance, and other internal changes
Maintenance
- Bump the dashboard-minor-patch group in /crates/librefang-api/dashboard with 7 updates (#6183) (@app/dependabot)
- Bump the web-minor-patch group in /web with 5 updates (#6184) (@app/dependabot)
- Drop five orphaned email workspace dependencies (#6193) (@houko)
- Bump the docs-minor-patch group in /docs with 3 updates (#6224) (@app/dependabot)
- Skip network-dependent hands registry tests on the macOS lane (#6240) (#6247) (@houko)
- Warn on cleanup failures in shell and web_fetch_to_file (#6255) (@maoxin1234)
- Replace detect-secrets baseline with gitleaks (#6262) (@houko)
Install / Upgrade
Homebrew (macOS):
brew tap librefang/tap
brew install librefang # CLI (stable)
brew install librefang-beta # CLI (beta channel)
brew install librefang-rc # CLI (rc channel)
brew install --cask librefang # Desktop (stable)
brew install --cask librefang-beta # Desktop (beta channel)
brew install --cask librefang-rc # Desktop (rc channel)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Coming from OpenClaw / OpenFang? librefang migrate --from openclaw (or --from openfang)
Documentation · Discord · Contributing Guide
Full diff: v2026.6.17-beta.20...v2026.6.22-beta.21
v2026.6.17-beta.20
Full Changelog
22 PRs from 3 contributors since v2026.6.16-beta.19.
Added
- Per-conversation agent routing for multi-agent groups (#5323) (#6127) (@houko)
- Passkey (WebAuthn/FIDO2) dashboard login (#5981) (#6129) (@houko)
- Deterministic inbound dispatch — channel-instance binding lookup (#5671 Model A) (#6131) (@houko)
- GitHub/Codeberg registry source selector (#6142) (@houko)
- Gate auto-routing on AutoRouteStrategy, not the "assistant" name (#6139) (#6148) (@houko)
- Propagate W3C traceparent on outbound MCP tool calls (#6128) (#6153) (@houko)
- Report the model codex actually used (#6134) (#6157) (@houko)
- Dock the agent panel as a resizable sidebar with a larger prompt editor (#6154 #6155) (#6164) (@houko)
- The cron-management tool disables jobs instead of deleting them (#6159) (#6165) (@houko)
- Enlarge TOML view, edit agent system prompt and tools with reset-to-default (#6150 #6151 #6152) (#6166) (@houko)
- Central prompt repository page with versions and agent binding (#6160) (#6167) (@houko)
Fixed
- Enforce cross-chat dispatch guard through the /mcp bridge (#6117) (#6125) (@houko)
- Take over a stale conversation-ownership claim from a channel-ineligible holder (#5323) (#6132) (@houko)
- Respect
LIBREFANG_HOMEwhen resolving plugin directory (#6136) (@HuaGu-Dragon) - Close channel media RBAC bypass and audit findings (#6141) (@houko)
- Keep Save actionable after a passing Test (#6144) (#6146) (@houko)
- Refetch hand settings after save so inputs persist (#6145) (#6147) (@houko)
- Show the correct Hand agent name in the sessions view (#6156) (#6162) (@houko)
- Build vendored OpenSSL on Windows so webauthn-rs links (#6161) (#6163) (@houko)
- Pin vendored OpenSSL to Strawberry Perl on the Windows test lane (#6171) (@houko)
Changed
Documentation, maintenance, and other internal changes
Maintenance
- Bump the actions-minor-patch group with 2 updates (#6140) (@app/dependabot)
Install / Upgrade
Homebrew (macOS):
brew tap librefang/tap
brew install librefang # CLI (stable)
brew install librefang-beta # CLI (beta channel)
brew install librefang-rc # CLI (rc channel)
brew install --cask librefang # Desktop (stable)
brew install --cask librefang-beta # Desktop (beta channel)
brew install --cask librefang-rc # Desktop (rc channel)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Coming from OpenClaw / OpenFang? librefang migrate --from openclaw (or --from openfang)
Documentation · Discord · Contributing Guide
Full diff: v2026.6.16-beta.19...v2026.6.17-beta.20
v2026.6.16-beta.19
Full Changelog
18 PRs from 3 contributors since v2026.6.11-beta.18.
Highlights
- External Skill Registry — agents can now discover and consume skills hosted on a Codeberg registry, with diff and propose-to-registry support for pending evolution drafts
- Persistent MCP Server Config — MCP server configurations are stored in SQLite and survive restarts; runtime writes to
/api/mcp/serversare also persisted - Ukrainian Language Support — backend and web UI are now fully localized in Ukrainian
- DeepSeek V4 Pro Reasoning — DeepSeek v4-pro is now treated as a thinking-with-tools model so
reasoning_contentis correctly echoed through - WhatsApp Voice Notes & Matrix Memory — ElevenLabs voice notes send as Ogg/Opus with proper MIME sniffing; Matrix peers with colons in their IDs can now use the Memory tool
Added
- Consume a Codeberg-hosted skill registry via registry.registry_host (#6095) (#6103) (@houko)
- Diff + propose-to-registry for pending evolution drafts (#5819) (#6104) (@houko)
- SidecarChannelConfig.agent + available_agents (#5671 PR-A) (#6105) (@houko)
- SQLite-backed MCP server config storage + boot merge (#6021) (#6106) (@houko)
- Add Ukrainian language support for backend and web UI (#6109) (@pavver)
- Persist /api/mcp/servers writes to a DB store via mcp_runtime_store (#6113) (#6115) (@houko)
Fixed
- Accept
versionfield in ClawHubInstallRequest (#6038) (#6039) (@DaBlitzStein) - Stage Skills-tab edits behind a Save button (#6042) (@DaBlitzStein)
- Refresh detect-secrets baseline for migrated Cloudflare account_id (#6093) (@houko)
- Treat deepseek-v4-pro as thinking-with-tools so reasoning_content is echoed (#6098) (@DaBlitzStein)
- Preserve caller-supplied channel name case in channel_send (#6078) (#6101) (@houko)
- Percent-encode colons in peer_id so Matrix peers can use Memory (#6100) (#6102) (@houko)
- Pin brace-expansion override to 2.0.2 to unbreak the Cloudflare docs build (#6110) (@houko)
- Send ElevenLabs voice notes as Ogg/Opus and sniff audio mime (#6116) (#6118) (@houko)
Changed
Documentation, maintenance, and other internal changes
Maintenance
Install / Upgrade
Homebrew (macOS):
brew tap librefang/tap
brew install librefang # CLI (stable)
brew install librefang-beta # CLI (beta channel)
brew install librefang-rc # CLI (rc channel)
brew install --cask librefang # Desktop (stable)
brew install --cask librefang-beta # Desktop (beta channel)
brew install --cask librefang-rc # Desktop (rc channel)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Coming from OpenClaw / OpenFang? librefang migrate --from openclaw (or --from openfang)
Documentation · Discord · Contributing Guide
Full diff: v2026.6.11-beta.18...v2026.6.16-beta.19
v2026.6.11-beta.18
Full Changelog
8 PRs from 2 contributors since v2026.6.10-beta.17.
Fixed
- Persist run state outside the state lock so GET /run never spuriously reports running:false (#6083) (@houko)
- Inject embedded SDK into the sidecar --describe probe so the configure form isn't empty without pip install (#6085) (@houko)
- Encode qrcode_img_content so the login QR is scannable (#6086) (@houko)
Documentation, maintenance, and other internal changes
Maintenance
- Bump @whiskeysockets/baileys from 6.7.21 to 6.7.22 in /packages/whatsapp-gateway (#6077) (@app/dependabot)
- Bump @types/react from 19.2.16 to 19.2.17 in /web in the web-minor-patch group (#6079) (@app/dependabot)
- Bump the dashboard-minor-patch group in /crates/librefang-api/dashboard with 3 updates (#6080) (@app/dependabot)
- Free runner disk space before nix build (#6082) (@houko)
- Free runner disk space before the unit-test build (fixes ENOSPC on main) (#6089) (@houko)
Install / Upgrade
Homebrew (macOS):
brew tap librefang/tap
brew install librefang # CLI (stable)
brew install librefang-beta # CLI (beta channel)
brew install librefang-rc # CLI (rc channel)
brew install --cask librefang # Desktop (stable)
brew install --cask librefang-beta # Desktop (beta channel)
brew install --cask librefang-rc # Desktop (rc channel)CLI (Linux/macOS): curl -fsSL https://librefang.ai/install.sh | sh
npm: npm install -g @librefang/cli · pip: pip install librefang · cargo: cargo install librefang
Docker: docker pull ghcr.io/librefang/librefang:latest
Coming from OpenClaw / OpenFang? librefang migrate --from openclaw (or --from openfang)
Documentation · Discord · Contributing Guide
Full diff: v2026.6.10-beta.17...v2026.6.11-beta.18