Skip to content

Releases: joax/joaxclaw

JoaxClaw v0.20.2

Choose a tag to compare

@github-actions github-actions released this 28 Jul 19:06
Immutable release. Only release title and notes can be modified.
74199a8

Fixed

  • Media from the display-media skill now renders on a remote gateway. Images, video, and audio referenced by a workspace path (e.g. file://…/color-99.jpg) were resolved through local file access, so when connected to a remote gateway the app looked on the wrong machine and showed a red "could not load" tile. They're now read from the gateway host over the connection, via the joaxclaw-fs plugin's new host.readMedia method (local gateways are unchanged). Requires updating the joaxclaw-fs plugin on your gateway to ≥ 0.11.4 — via Extensions → update, or the "Install via agent" flow.

JoaxClaw v0.20.1

Choose a tag to compare

@github-actions github-actions released this 20 Jul 12:03
Immutable release. Only release title and notes can be modified.
46458ae

Fixed

  • Cron runs no longer clutter the chat list. Finished scheduled (cron) sessions were appearing in the chat sidebar as plain conversations labelled with the agent (e.g. "main"). They're now kept out of the chat list — cron runs belong in the Crons tab, and a currently-running one still surfaces under the Scheduled group.

JoaxClaw v0.20.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 07:21
Immutable release. Only release title and notes can be modified.
6ed784d

Added

  • PDFs and documents in chat. You can now attach any file to a message — PDFs, Word/Excel/CSV, PowerPoint, code, archives — not just images and audio. Documents render as tidy file cards (a format-specific icon + filename + size, click to open or download), images and videos get thumbnails, and the file picker, paste, and drag-and-drop all accept every type. Previously a PDF was mis-classified as audio and rendered as a broken player.
  • Connection diagnostics (Gateway → Connection). A new Connection log panel shows the live handshake and — front and center — the exact operator scopes the gateway granted, as green/red chips. Filter the raw frames (hide heartbeat noise, or show issues only) and copy the whole thing in one click, so a permission problem is obvious at a glance instead of buried in JSON. An app-wide banner also warns when your token is missing critical scopes and points to the fix.

Fixed

  • Remote connections work again after upgrading OpenClaw to 2026.7.x. The upgraded gateway rejects a device-less operator connection from a remote origin, so the app would connect but lose every operator scope ("missing scope: operator.read") — everything failed. JoaxClaw now presents a signed device identity in the handshake (Ed25519, stored securely, paired once and approved on the host with openclaw devices approve), restoring full operator access over Tailscale/LAN.
  • Operator role now survives on other networks. A paired device kept its operator role only on the home network; from a café over Tailscale the role silently dropped. The app now caches the gateway's device tokens and resends them — the one auth path that preserves operator scopes on a remote/relayed connection — and re-pairs automatically if a token goes stale.
  • The connect handshake negotiates scopes instead of failing. If a token can't hold every scope the app asks for, it now retries with a progressively narrower request rather than being left with none.

Note: device pairing is a one-time step — the first connection registers the device, then you approve it once on the gateway host (openclaw devices list + openclaw devices approve). Subsequent reconnects just work.


JoaxClaw v0.19.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 10:25
Immutable release. Only release title and notes can be modified.
655c262

Added

  • Structured questions from agents. Models can now ask you a question as tappable buttons instead of a wall of text — a choice between options, or a simple Yes / No — and your pick is sent straight back. Delivered via an injected ask-user skill and rendered as an interactive card in the chat.
  • Host CPU / RAM / GPU on a remote gateway. The dashboard and System Monitor now show the gateway host's resources (not your client machine's) when you're connected remotely — via the joaxclaw-fs plugin's host.metrics — with a host badge so it's clear whose numbers you're seeing. GPU is multi-vendor (NVIDIA / AMD / Apple Silicon).
  • Tracked background scripts. When an agent runs something long — a build, install, deploy, training run, or server — it launches it as a tracked job instead of blocking, and you get a live progress card in the chat: status, elapsed time, streaming output, a % bar when the script prints one, and a Stop button. Jobs run on the gateway host, so progress survives an app reconnect. When a script finishes, the session is automatically woken with the result so the agent can act on it — no polling.
  • Running scripts & reminders on the dashboard. The right panel now surfaces the scripts your models are running (with Stop) and pending self-reminders (with a live countdown and cancel).
  • "About You" profile. Tell your agents who they're talking to. A new Settings → You panel — and a first-run welcome — lets you set your name and a short description; it's shared as context at the start of new chats, and your name replaces the "JoaxClaw" label the model used to see. A per-chat toggle keeps any single conversation private.

Fixed

  • "reply session initialization conflicted" recovers better. Mid-conversation on a remote gateway, a stuck server-side reply context is now aborted before retrying; and reminders / script wake-ups are no longer delivered to ephemeral sub-agent sessions, which was a source of the conflict.
  • Saving a model provider no longer errors. Editing a provider's models (e.g. Google) previously tripped the gateway's array-shrink guard; the save now names the exact array paths (including nested ones) so it goes through.
  • Deleting a chat removes it for good. It now also deletes the underlying gateway session, so it no longer reappears as a "recent" row — and idle sessions are deletable too.
  • Opening a chat gives instant feedback. Tapping a not-yet-loaded chat switches to it immediately with a loading spinner instead of hanging on a slow remote history fetch.
  • Background scripts pick up your PATH. Long scripts run via your login shell, so tools like node (nvm / asdf / Homebrew) resolve correctly instead of a stale /usr/bin/node.
  • Quieter host logs. The app no longer re-sends (and the gateway no longer re-logs) RPCs an older gateway doesn't implement, such as plugins.list.

Note: the remote host metrics and script tracking require the joaxclaw-fs plugin ≥ 0.11.2 on the gateway (openclaw plugins install --force openclaw-joaxclaw-fs + restart).


JoaxClaw v0.18.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 22:41
Immutable release. Only release title and notes can be modified.

Added

  • The Memory tab, rebuilt as pluggable connections. What was a hardcoded Obsidian view is now a provider-neutral memory manager: Connect a store (Obsidian, or a new zero-dependency Markdown folder), Manage which agents can reach it and whether it's read-only, and Browse its contents in-app — a backlink graph for Obsidian, a notes list + preview for Markdown. Agents reach each store through a generated OpenClaw skill, so adding a backend is a single registry entry. Existing Obsidian vaults are folded into connections automatically, so nothing is lost.
  • Memory on a remote gateway. Enabling a connection against a remote gateway now installs its skill, browses its server-local stores, and renders the Obsidian backlink graph — all on the gateway host, over the connection, via the existing joaxclaw-fs plugin (no separate install). When the host doesn't have the plugin yet, the tab offers a one-click Install via agent (the same flow as Teams/Processes); local gateways keep working as before.
  • Env-var credential references for memory stores. A secret field can be an env:VAR reference instead of a literal key, so the plaintext credential stays out of both the generated skill file and localStorage. It's resolved where the request actually runs — the gateway host's environment for a remote store, a name-validated local lookup otherwise.
  • Live gateway connection-strength indicator. A wifi-style signal meter in the status bar reflects how healthy the gateway connection is — sampling round-trip latency on a rolling window and showing 0–4 colored bars (green / amber / red) with median RTT and loss. Works against a local or remote gateway.
  • Sky Light theme. A bright light theme built around whites and soft light blues, with matching gentle sky-toned backgrounds for the app and chat.
  • Theme-aware app logo. The logo now matches the active theme — the dark-navy artwork on light themes (e.g. Sky Light), the pale artwork on dark themes — following the OS scheme for system themes.
  • Recent chats in the sidebar. Reopening the app now surfaces the chats you were last working on, newest first, under the Today / Yesterday / Earlier groups. The list is driven by the gateway's session history (so it survives a restart) and is capped to the most recent few, with Show older to reveal the rest — instead of showing nothing until you re-open a chat by hand.
  • Scheduled section in the chat list. Sessions currently being driven by a cron job are grouped under their own Scheduled heading and labelled by the job's name, instead of showing up as a bare agent run.

Changed

  • Management surfaces consolidated under Settings. The top navigation is now just the things you use day-to-day; Sessions, Models, and Extensions move into Settings sub-tabs (Connection · Gateway · Sessions · Devices · Channels · Local LLM · Models · Extensions). Deep links (e.g. "manage plugin") jump straight to the right sub-tab.
  • Sessions view de-technified. It's now a management view (Chats is where you resume live sessions): name-first rows with the raw session key on hover, plain-language status (Completed / Stopped / Timed out), and a cost-first usage cell with the token breakdown on hover — no more raw keys or "ctx tokens" jargon.
  • Extensions redesigned into a scannable library. A segmented Skills / Plugins control with search and a context-aware Add, rows grouped by attention (Needs setup → Active → Off), each leading with name + description + clear state, with Configure/Update inline and the technical details tucked into the expanded row.

Fixed

  • Transient "reply session initialization conflicted" turns now recover on their own. When the gateway briefly races two initializations of a fresh session's reply context, the turn is retried automatically — up to three times with an escalating backoff, across both the agent-stream and chat-state error paths — instead of stranding a dead ⚠ bubble that you had to re-send by hand.
  • Memory errors say what actually went wrong. The real cause (ECONNREFUSED / TLS certificate / timeout) is surfaced instead of a bare "fetch failed", and the tab shows just the message rather than a raw {"code":…} blob.
  • Obsidian over local HTTPS is reliable. A local Obsidian host's self-signed certificate is tolerated (and TLS skipped via node:https for localhost), so a local vault connects without cert errors.
  • Memory connection tests run on the right machine. For a remote gateway, a connection is tested from the gateway host rather than your local machine, so the result reflects what the agents will actually see.