Skip to content

Releases: farhan-beg/talaria

Talaria 1.14.15

Choose a tag to compare

@farhan-beg farhan-beg released this 09 Oct 15:37

Files got the deep pass: stacked cards, a real table view, and in-app previews for almost everything.

  • Reply file cards stack full width now: an "N files" header, type and folder under each name, and long names shortened in the middle so the extension stays visible.
  • CSV and TSV open as a table: sticky header, row numbers, sized columns, search across rows, tap a row to read the whole record (links tappable, Prev/Next), raw text toggle in the menu.
  • Big text files and logs render lazily with line numbers, so a 50k-line file actually opens.
  • New in-app previews: video (player controls), audio (seek, ±10 s, speed), Word .docx, Excel .xlsx (sheet tabs), PowerPoint .pptx (slide cards), ODT/ODS/ODP text, HTML and SVG (offline, scripts off, view source), zip/jar/epub listings (open an entry, back returns to the archive), APK info, font specimens, animated GIFs, HEIC/AVIF.

Signed with the same key as every previous release (CN=Hermes Mobile). Source: https://github.com/farhan-beg/talaria

Talaria 1.14.14

Choose a tag to compare

@farhan-beg farhan-beg released this 08 Oct 08:42

Bots: every Hermes profile is now a named agent with its own face, @handle and forever-chat.

New Bots screen (robot icon on Home, or Control center -> Bots):

  • Every profile as a bot with its avatar, @handle, the last line of its chat, and a green "working" badge while it's busy.
  • Pinned bots first, then sections, like Desktop. Search, and a toggle for hidden bots.
  • Long-press to pin, hide, edit or delete.

Forever-chat:

  • Tap a bot to open its one "Bot Chat". The server finds it by name, so it's the same chat Desktop has.
  • It runs on that bot's own profile and doesn't change the profile the app manages. It comes back if Android kills the app.
  • The header shows the bot's avatar and name; Rename becomes "All bots" so the chat keeps its title.

New bot: name, mission, colour, shape, optional SOUL. Edit bot: everything plus a photo (cropped to 512 px), section and SOUL.md. The look syncs through the same profile metadata Desktop reads, and two devices saving at once won't overwrite each other.

Teammate messages arrive as that bot's bubble with its avatar, not as yours.

Not yet: Desktop's multi-bot group rooms; per-bot cron and screen panes.

Signed with the same key as every previous release (CN=Hermes Mobile). Source: https://github.com/farhan-beg/talaria

Talaria 1.14.13

Choose a tag to compare

@farhan-beg farhan-beg released this 08 Oct 04:40

Fixed: links in chat open with a single tap.

  • Text selection and the bubble's long-press used to swallow the tap. Web links now open in your browser or the app that handles them, and Hermes file paths open in the viewer.
  • Bare www. links are tappable too.
  • The same fix applies to links in headings, list items and tables.
  • Long-press still selects text and opens the menu, exactly as before.

Signed with the same key as every previous release (CN=Hermes Mobile). Source: https://github.com/farhan-beg/talaria

Talaria 1.14.12

Choose a tag to compare

@farhan-beg farhan-beg released this 08 Oct 03:59

Fixes for the 11 tracked issues (#1-#11).

  1. Approvals: the card tells Hermes it's on screen (approval.received), so the timeout starts when you see it.
  2. Vault: vault.save_login asks with a username + password card; vault.code and password-manager unlock cards name the site.
  3. Chat menu: Branch chat (session.branch) and Undo last turn (session.undo); regenerate uses the session.undo retry; a Redirect chip (session.redirect) sits beside Steer and Queue while a reply runs.
  4. Subagents update live from subagent.* events; the list loads once on open; a toggle pauses new spawns.
  5. Todo checklist strip above the composer (todo.updated, tool.complete.todos, todo_state).
  6. Run in background (prompt.background); results land in the chat and as a notification (background.complete).
  7. Sessions: long-press to pin, archive or hide; Archived filter and profile chip; pinned float to the top; refresh on sessions.changed and cron.changed.
  8. Goal / loop / heartbeat strip with pause, resume and clear (session.control*); context usage sheet (session.context_breakdown); checkpoints sheet with diff and restore (rollback.*).
  9. Hermes' toasts (notification.show / clear); review summaries appear in the chat; risky tool output gets a red badge (tool.output_risk).
  10. One connection per saved server: switching keeps the old socket and its open chat running; notifications name the server and open that chat on tap; each chat is tagged with the server it came from.
  11. More > For nerds: "Hermes sees my reactions" syncs display.message_reactions.

Signed with the same key as every previous release (CN=Hermes Mobile). Source: https://github.com/farhan-beg/talaria

Talaria 1.14.11

Choose a tag to compare

@farhan-beg farhan-beg released this 07 Oct 18:20

Talaria 1.14.11 (versionCode 28)

Fixed: the wrong part of the reply showed.

  • When Hermes replied, then used a tool (like saving to memory) and added a closing line, only the closing line showed and the real reply was hidden in "Worked for".
  • Everything Hermes writes to you in a turn now shows in the reply bubble, in order. Tools and thinking stay folded in "Worked for". Copy and regenerate cover the full reply.

New: More > For nerds > Full reply (on by default). Turn it off to get the old behaviour.

Signed with the same key as every previous release (CN=Hermes Mobile). Source: https://github.com/farhan-beg/talaria

Talaria 1.14.10

Choose a tag to compare

@farhan-beg farhan-beg released this 07 Oct 18:00

Talaria 1.14.10 (versionCode 27)

Fixed: the chat switched when you came back to the app.

  • session.reclaimed is a global server broadcast whose frame session_id is always empty. The app treated empty as "mine", so whenever any chat idled out (another chat, another device), it could resume that one. It now matches the payload ids against the current chat only.
  • Events without a session id can no longer change which chat is open.
  • Coming back to the foreground with a dead socket now re-attaches to the same chat (the foreground reconnect reset a retry counter and skipped the resume).
  • A late resume is dropped if you opened another chat in the meantime.

New: the open chat is remembered per server and profile, so a cold start after the process was killed reopens it instead of a blank chat.

Signed with the same key as every previous release (CN=Hermes Mobile). Source: https://github.com/farhan-beg/talaria

Talaria 1.14.9

Choose a tag to compare

@farhan-beg farhan-beg released this 07 Oct 11:49

Applied on top of the released 1.14.6. No separate 1.14.7 or 1.14.8 releases; everything is included here.

1.14.9 (versionCode 26)

  • Composer: live markdown styling (markers dimmed, offsets 1:1), format bar while typing (bold, italic, strikethrough, inline code, code block, heading, bullets, numbers, checklist, quote, link) with toggle-off on re-tap, and a rendered preview. Slash commands stay plain.
  • Sent messages render markdown in the bubble; Copy still copies the raw text.
  • Renderer: strike, bold-italic, bold, nested inline styles, backslash escapes, , task lists [ ]/[x], multi-line and nested blockquotes, bullet continuation lines, ~~~ fences, setext headings, trailing-# headings, spaced rules.
  • More > For nerds: "Markdown in my messages" switch (on by default).

1.14.8 (versionCode 25)

  • New More > Voice page: choose Phone or Hermes voice; Hermes provider picker (from server schema), per-provider voice/model/speed fields saved via PUT /api/config tts.*; ElevenLabs voice list from /api/audio/elevenlabs/voices; provider API key status/set via /api/env; test playback.
  • Phone voice: installed-voice picker, speed and pitch sliders, link to Android TTS settings.

1.14.7 (versionCode 24)

  • Voice mode: Phone voice / Hermes voice switch (also in More). Hermes voice reads replies through /api/audio/speak using the server tts: provider, sentence-chunked with prefetch, falls back to phone TTS with a visible note on failure.

Talaria 1.14.6

Choose a tag to compare

@farhan-beg farhan-beg released this 07 Oct 07:32

Applied on top of the released 1.14.5.

Hermes contract fixes (from a full docs and code cross-check against hermes-agent main, 2026-10-07)

  • Identifies as source: "mobile" on session.create/resume, like hermes-go, not tui.
  • thinking.delta (spinner and "waiting for provider" frames) now only drives the status line and no longer goes into reasoning.
  • status.update and subagent.progress no longer mark the chat busy. Fixes Stop staying lit after /compress and after process notifications or async subagent chatter. status.update is handled by kind (compressing, ready, process).
  • session.info {running:false} now settles the turn, which covers muted notification turns that never send message.complete.
  • Turns Hermes starts itself (process completion, async delegation, /loop, heartbeat): the live label comes from the server's process notice. After the turn it's reconciled with session.history: hidden wakes vanish, /loop prompts become user bubbles, and display_text labels are used.
  • Desktop-only server requests (preview.*, terminal.read, window.read, tour, display.install.sudo) are declined automatically with 4404 instead of showing a bogus card. Unknown requests get a JSON-RPC error. vault.code is supported.
  • Sending while a turn runs (with attachments, voice, or a queue drain) passes queued: true, so it can't interrupt the live reply.
  • History: failed_turn assistant rows are error notices, not replies. interrupted replies get a Stopped marker. Steer rows stay inside their turn. @image: / @file: refs become attachment chips.
  • Model switch respects confirm_required with a confirm dialog, deferred ("switches after this reply") and warning.
  • JSON-RPC errors are a distinct RpcError and never retried. Only idempotent reads are retried after a dropped socket. session.create carries an idempotency_key.
  • storedSid follows compression rotation through session.info.stored_session_id.
  • Token stats: the usage baseline comes from session.info.usage. A delta against an unknown baseline, or an implausible one, falls back to the streamed estimate (fixes absurd tok/s). Repeated message.start inside one turn no longer resets the clock.
  • Clarify: multi-select questions are supported (sent as a JSON array), and the "(recommended)" suffix is stripped.

Security and robustness (from the external code audit)

  • Encrypted storage retries after a corrupt keystore. A plain fallback is only used if that fails, and More shows a warning.
  • Network security config: only system CAs are trusted, no user CAs.
  • Capped streaming reads for REST, URL fetch (no redirects), pickers (25 MB) and uploads.
  • Remote images in chat load on tap unless they're from your own server.
  • Warnings for public plain-HTTP server URLs on Connect and More.
  • RPC timeout cleanup.

Not done yet (next)

  • Gap-free reconnect (session.events.since), server-side queue replacing the phone queue, async result bodies, todo checklist, live subagent events, context meter and cost, pin/archive, session.branch/undo.
  • Markdown streaming reparse performance, old-Android download filename sanitisation, full-size image decode.
  • Not tested on a device.

Talaria 1.14.5

Choose a tag to compare

@farhan-beg farhan-beg released this 07 Oct 03:38

[1.14.5] - 2026-10-07 (versionCode 22)

Added

  • Chats started from Talaria are labeled "Talaria" with a phone icon in Home recents, History and the Conversations sheet, instead of "tui".
    • Hermes stamps every /api/ws session with source tui, the protocol the app speaks, and the app deliberately does not send a custom source: Hermes derives the agent platform from it, so a "mobile" source would change the toolsets and prompt.
    • The app remembers the session ids it creates (and follows compression rotations), so the label is local to the phone. Chats from before this version and other devices still show their Hermes source.

[1.14.4] - 2026-10-07 (versionCode 21)

Changed

  • The line under the greeting on a new chat changes every time. It picks from a mix of general lines and lines for the time of day (morning, afternoon, evening, late night) and never repeats the previous one. The greeting still follows the phone clock.

Talaria 1.14.3

Choose a tag to compare

@farhan-beg farhan-beg released this 07 Oct 03:25

[1.14.3] - 2026-10-07 (versionCode 20)

Fixed

  • Sessions Hermes starts on its own (through hermes chat -q with source cli, or through its OpenAI-compatible API with source api_server) no longer show up as your chats.
    • api_server sessions always count as background/automation.
    • New setting, Settings → Sessions → "Treat CLI sessions as background" (on by default). Turn it off if you chat with Hermes from the terminal.
    • Both are excluded on the server (exclude_sources) and filtered on the phone, and the lists refetch when the setting changes.

[1.14.2] - 2026-10-07 (versionCode 19)

Fixed

  • Subagent and cron sessions stay hidden when "Show subagent & cron sessions" is off, even after you've opened one.
    • Hermes keeps source as live routing state, so opening a cron run or delegate session from a client flips it (e.g. to tui/desktop). That let it slip past both the server's exclude_sources and the app's own filter.
    • Sessions are now classified by the immutable created_source (falling back to source), the cron_<job>_<YYYYmmdd_HHMMSS> run-id pattern, and _delegate_from markers.
    • With the toggle off the app requests twice the page size, so rows dropped on the phone don't leave recents short.