github cogwheel0/conduit v4.3.1

one hour ago

Highlights

  • LibreChat (Beta) becomes Conduit's fourth backend: sign in, chat with its model specs, agents and models, and keep its history in the Chats tab.
  • Hermes 0.23 works over the Desktop Gateway, a gateway's own Webapp listener and the API server, and gets Rooms, chat pinning and hiding, Context & Usage, error cards and background-work controls.
  • Open WebUI 0.13.3 is supported, with its terminals' coding agents offered as models and a full-screen Computer viewer for a terminal's desktop and browser.
  • iOS 26 uses many more of the system's own controls, and voice and read-aloud float on Liquid Glass islands.

LibreChat (Beta)

  • Add a LibreChat server from the backend chooser or the LibreChat tab in the account sheet. Sign in with email and password or LDAP, two-step verification by code or backup code, or the server's single sign-on buttons. (#943, #953)
  • Switch between LibreChat and Open WebUI accounts in Accounts. Open WebUI accounts keep their session and data while LibreChat is in use. (#945–#948)
  • LibreChat chats fill the Chats tab, stay in sync and searchable, and can be read offline. Rename, pin, archive and delete work offline and reach the server later. (#949, #952)
  • The model picker lists the server's model specs, agents and each endpoint's models under foldable sections. Send, stream, stop and regenerate. A reply keeps running while another chat is open. (#950, #954)
  • Attach files, photos and camera shots. Turn on web search, code interpreter, file search and MCP servers. Answer tool approvals and questions, and insert prompts from the LibreChat prompt library with /. (#951, #955)
  • Share links, Branch into new chat, Duplicate Chat, memories in Personalization, and the server's speech engines. (#956)
  • Controls that only feed Open WebUI requests are hidden for LibreChat models.

Hermes

Hermes 0.23

  • Desktop Gateway: approvals, clarifications, sudo and secret prompts show again on Hermes 0.22 and later. The Toolsets page and MCP reloads work on 0.23. (#959)
  • Webapp listener: chat through a gateway's own Webapp listener: create, send, stop, steer, rename, branch and switch models, plus /model, /branch and /compress. Conduit waits for a gateway that is starting up and lists its installed skills. (#960)
  • API server: approvals can be answered on 0.22.1+, and refusals say what went wrong instead of a bare HTTP error. A chat started in another Hermes app offers Continue in a Copy. Runs interrupted or held by a restart recover, and dropped run streams resume. (#961)
  • Older servers: the reasoning effort you pick now applies to API server chats. PDFs are no longer offered there, since Hermes rejects them. On the Desktop Gateway, a PDF Hermes can't render is sent as a file the agent can read, instead of failing the message. API server scheduled jobs can be edited. Chats that start with the same words keep their own sessions. (#962)

Chats

  • Pin, Archive and Hide Hermes chats, with a Hidden Chats page in Hermes settings. Branch from Here and Undo Last Turn. Editing or regenerating a message in a Desktop Gateway chat now continues the same server session, with its context. (#964)
  • All of a turn's questions are answered in one form, also on API server runs. Edited files show as a diff card, with paths relative to the chat's working directory. Paid tools show their price on approvals, and the agent's plan stays above the composer. (#966, #1009)
  • Context & Usage in the chat menu shows how full the context window is, what fills it, token and cost totals and your plan's limits, and can compact the chat. (#967)
  • A failed turn shows a card that says what broke and offers one fix. (#967)
  • A chip above the composer shows running subagents and background processes. Read a subagent's output, steer or stop it, or kill a process. (#968)
  • Conduit asks before switching to a model that Hermes holds for confirmation: Switch and Send or Keep Current Model. (#1013)
  • The answer to a message Hermes saved during a restart now appears once Hermes replies. (#1014)

Rooms and scheduled jobs

  • Rooms: Desktop Gateway connections can open group chats with two to six bots, with @mentions, live bot status and approvals. (#965)
  • On the Desktop Gateway, scheduled jobs can be stopped mid-run (Hermes 0.22.6+), can choose what happens to Missed Runs, and can Deliver To messaging apps, Bot Chats and Group Chats. (#963)

Connections

  • Conduit asks before a connection sends credentials over plain HTTP to another machine, and such connections are marked Not encrypted. Localhost and HTTPS never ask, and existing connections keep working. (#1011)
  • Catalog MCP servers ask for their credentials when added, and OAuth servers go on to sign in. (#1015)
  • With two or more connections, switch between them from the name at the top of the sidebar. (#1021)
  • The dashboard sign-in page no longer goes blank when the keyboard is up in the account sheet. (#1010)

Open WebUI

  • Open WebUI 0.13.2 and 0.13.3 work without a compatibility warning. (#987, #1018)
  • Coding agents: with a terminal selected in a saved chat, its coding agents (Codex, Claude Code and others) appear under Coding Agents in the model picker. Agent chats don't offer Regenerate, Edit or Compare, which the server would refuse anyway. Requests from coding agents in chats started on the web can be answered. (#987, #1018)
  • Computer: a button in the chat header opens the selected terminal's Desktop or Browser full screen. Watch while a reply runs, or Take Control to type, use the trackpad, zoom and browse. Turn it off under Settings > Chat. (#969)
  • Memory recalls, skill lists and other tool calls the server marks hidden no longer show as tool blocks, and tool blocks show the model's label for each call. Notification preferences are saved where the web client keeps them. (#987)

Direct

  • Tool calls no longer stop after 8 rounds or 16 calls. A loop now ends after 3 failed calls in a row, then asks the model for a final answer. (#1008)
  • New Images per request setting (default 10). Image and document budgets apply per request, so older attachments are left out instead of every later turn failing. (#1008)
  • The context limit you pick for a local Ollama model is sent to Ollama as num_ctx. (#1008)
  • Reasoning and tool sections survive a reload, and <think> tags are split out of streams. (#995)
  • Context fill is measured on a reply's last model call. Streams from servers that send null for unset fields no longer fail. (#984, #999)

iOS

  • On iOS 26, the app uses the system's own alerts, sheets, menus, search bars, pop-up buttons, date and time pickers and popovers. A response's usage opens in a popover with context fill, its More menu is grouped, and the note editor has a bottom toolbar. (#970–#979, #992)
  • Voice calls and read-aloud float on Liquid Glass islands. Tap anywhere on the track to seek, skip 15 seconds, and follow the highlighted word. (#971, #978, #989, #1012)
  • The sliding sidebar shows backends as a tab bar beside a glass New Chat button, and VoiceOver reads each tab's name. (#974, #1012)
  • Grouped forms for sign-in and Settings, a calmer chat header, chats and notes listed under date sections, preview tiles for Light, Dark and System, and a greeting by first name. (#999)
  • Settings and Workspace pages blur the bar once content scrolls under it. (#1019)

Chats

  • Replies are typeset on one rhythm: code blocks wrap long lines, tables size columns to their content, nested lists indent, and follow-up suggestions show as full rows. A reply shows "Thinking…" with the time waited until text arrives. (#999)
  • Temporary Chat turns on and off with one tap. One speech speed applies to both cloud and device voices. (#978, #999)
  • Long chats scroll without the scrollbar jumping, the Android scrollbar can be dragged, and jumping back to the latest reply leaves it resting on the composer. (#993)
  • The chat stays put while you drag the sidebar open, and tapping your profile twice no longer opens Settings twice. (#988, #991)
  • Faster streaming Markdown, chat paging, branch previews and message footers. (#985, #986, #997, #998)

Under the hood

  • cupertino_native_better 2.5.1, and refreshed dependencies, including openai_dart 12. (#970, #984, #992, #1012)
  • LibreChat v0.8.8 and Hermes Agent v0.23.0 vendored as API references, plus a LibreChat dev stack. (#942, #959)
All changes

What's Changed

  • Upgrade cupertino_native_better to 2.3.2 and use more of its native controls by @cogwheel0 in #970
  • Show a response's usage in a native popover on iOS 26 by @cogwheel0 in #972
  • Group a response's More menu and show context fill in its usage on iOS 26 by @cogwheel0 in #975
  • Animate the voice overlay's toggles with native SF Symbol effects by @cogwheel0 in #971
  • Float voice and read-aloud on Liquid Glass islands, with scrubbing, speed and word highlights by @cogwheel0 in #978
  • Use the system search bar for search fields in sheets on iOS 26 by @cogwheel0 in #973
  • Show the sliding sidebar's backends as a 44 pt icon tab bar beside a glass New Chat by @cogwheel0 in #974
  • Open pinned models, citation previews and the birth date natively on iOS 26 by @cogwheel0 in #977
  • Give the note editor an iOS 26 bottom toolbar by @cogwheel0 in #979
  • Ask with system sheets and alerts, and open widget menus natively, on iOS 26 by @cogwheel0 in #976
  • Support Open WebUI 0.13.2 and keep its new tool calls and agent requests right by @cogwheel0 in #987
  • Let a tap anywhere on the read-aloud track seek, at the point tapped by @cogwheel0 in #989
  • Vendor LibreChat v0.8.8 and add a LibreChat dev stack by @cogwheel0 in #942
  • Add the LibreChat transport: browser User-Agent, cookie session and sign-in by @cogwheel0 in #943
  • Add the LibreChat chat protocol: history, generation streams and mapping by @cogwheel0 in #944
  • Prepare chats, storage and sync for a second account backend by @cogwheel0 in #945
  • Let Open WebUI be parked with its accounts kept by @cogwheel0 in #946
  • Route and gate on the account that owns the Chats tab by @cogwheel0 in #947
  • Add LibreChat accounts and switching between Open WebUI and LibreChat by @cogwheel0 in #948
  • Add the LibreChat sync engine by @cogwheel0 in #949
  • Add LibreChat models and the turn runner by @cogwheel0 in #950
  • Add the core of LibreChat files, tools, approvals, prompts, memories, sharing and speech by @cogwheel0 in #951
  • Put LibreChat chats in the Chats tab and keep them in sync by @cogwheel0 in #952
  • Adopt cupertino_native_better 2.4.0: native search fields, live islands and read-only usage rows by @cogwheel0 in #992
  • Add LibreChat sign-in and accounts to the app by @cogwheel0 in #953
  • Chat with LibreChat models: picker, send, stream, stop and regenerate by @cogwheel0 in #954
  • Add LibreChat uploads, tools, approvals and prompts to the composer by @cogwheel0 in #955
  • Add LibreChat memories, share links, branching and speech, and turn LibreChat on by @cogwheel0 in #956
  • Prevent repeated profile taps from stacking Settings by @kapily in #991
  • Add a full-screen Computer viewer for Desktop and Browser, opened from the chat header by @kapily in #969
  • Keep Hermes Desktop Gateway chats working on Hermes 0.23 by @cogwheel0 in #959
  • Chat through a Hermes gateway's own Webapp listener on Hermes 0.23 by @cogwheel0 in #960
  • Keep Hermes REST chats working on Hermes 0.23 by @cogwheel0 in #961
  • Fix older Hermes API server and Desktop Gateway bugs by @cogwheel0 in #962
  • perf: bound branch preview normalization to visible text by @kapily in #997
  • perf: limit streamed Markdown reference scans to mutable text by @kapily in #985
  • perf: bound chat paging and index sibling lookups by @kapily in #986
  • Stop, catch up and deliver Hermes scheduled jobs by @cogwheel0 in #963
  • Pin, archive and hide Hermes chats, and branch or rewind them on the server by @cogwheel0 in #964
  • Hermes Group Chats with several bots by @cogwheel0 in #965
  • Hermes clarify forms, diff cards, paid-tool costs and the plan card by @cogwheel0 in #966
  • Hermes error cards and the Context & usage sheet by @cogwheel0 in #967
  • Show and control a Hermes chat's subagents and background processes by @cogwheel0 in #968
  • Lift fixed limits on Direct tool rounds, images and documents by @cogwheel0 in #1008
  • Make the iOS app feel native: grouped forms, glass chat chrome, a quieter sidebar and cleaner replies by @cogwheel0 in #999
  • Show Hermes diff card paths from the chat's working directory by @cogwheel0 in #1009
  • Keep the Hermes dashboard sign-in visible over the keyboard by @cogwheel0 in #1010
  • Ask before a Hermes connection sends credentials over plain HTTP by @cogwheel0 in #1011
  • Keep direct chats' reasoning across a reload, and split in direct streams by @cogwheel0 in #995
  • Adopt cupertino_native_better 2.5.1: named sidebar tabs, tap to seek, Linux-like test runs by @cogwheel0 in #1012
  • Share one math rule across clients, fix its misses, and split answers into typed blocks by @cogwheel0 in #996
  • Ask before switching a Hermes chat to a model Hermes holds by @cogwheel0 in #1013
  • Show the answer to a Hermes message saved during a restart by @cogwheel0 in #1014
  • Ask for a catalog MCP server's credentials when adding it by @cogwheel0 in #1015
  • Support Open WebUI 0.13.3 and offer its terminals' coding agents as models by @cogwheel0 in #1018
  • Replace the top fade on iOS settings and Workspace pages with a scroll-under blur by @cogwheel0 in #1019
  • Drop the committed branch-preview benchmark samples by @cogwheel0 in #1020
  • fix: keep chat stationary while opening the sidebar by @kapily in #988
  • perf: avoid eager clipboard cleanup in message footers by @kapily in #998
  • Fix jumping scrollbars and repeated height scans in long chats by @kapily in #993
  • chore: refresh dependencies and remove obsolete native overrides by @kapily in #984
  • Move the Hermes connection switcher into the sidebar header by @cogwheel0 in #1021

Full Changelog: v4.3.0...v4.3.1

Don't miss a new conduit release

NewReleases is sending notifications on new releases.