Commit Graph

4219 Commits

Author SHA1 Message Date
github-actions[bot]
e069cb26f7 chore(i18n): refresh native locales 2026-07-05 04:04:27 +00:00
Vincent Koc
451190d625 fix(mobile): authenticate terminal page with stored operator token 2026-07-05 05:39:12 +02:00
WhatsSkiLL
1c83c2d4a6 fix(android): prevent gateway setup button clipping (#100090)
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-07-04 23:31:39 -04:00
Peter Steinberger
851156af3b feat: animate the OpenClaw mascot across web, iOS, and Android
Ports the openclaw.ai hero mascot animation (body float 4s, eye blink 3s,
antenna wiggle 2s, staggered claw snaps 4s) to every product surface that
shows the logo:

- web: ui/public/favicon.svg now carries SMIL animations, so every <img>
  usage (login gate, sidebar brand, agent avatar fallback) animates with
  no markup changes; CSS animations do not run in <img>-loaded SVGs.
- iOS: new OpenClawMascotView renders the canonical 120x120 vector via
  Canvas + TimelineView (30fps, honors Reduce Motion); OpenClawProMark
  uses it in onboarding, sidebar, and command center. Static PNG imageset
  deleted (watch app keeps its own copy).
- Android: new OpenClawMascot composable (PathParser + infinite
  transitions, honors the OS animator scale) replaces the static vector
  drawable in onboarding and the chat/shell/voice headers, with tint
  support for the monochrome header silhouettes. Drawable deleted.
2026-07-04 20:14:34 -07:00
Peter Steinberger
fcd7eb6130 feat(android): terminal settings screen hosting the gateway terminal page 2026-07-04 20:07:56 -07:00
Peter Steinberger
211e0d7263 feat(ios): Terminal hub destination embedding the gateway terminal page 2026-07-04 20:07:19 -07:00
WhatsSkiLL
1a23b266ef [AI-assisted] fix(android): polish Voice text truncation (#100060) 2026-07-04 22:59:42 -04:00
WhatsSkiLL
b550c829b2 [AI-assisted] fix(android): polish home overview layout (#100059)
* fix(android): polish home overview layout

* chore(android): refresh native i18n inventory

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-07-04 21:42:36 -04:00
Peter Steinberger
1b8d837674 fix(tui): preserve queued prompt lifecycle (#100123)
Allow busy TUI sessions to forward prompts into the configured queue while
keeping queued-turn admission, cancellation, restart, and transcript ownership
consistent across the TUI, Gateway, and followup queue.

Co-authored-by: Sebastien Tardif <sebtardif@ncf.ca>
2026-07-04 21:15:28 -04:00
Peter Steinberger
5938c7809a feat(gateway): terminal detach/reattach with output replay, terminal.list/text 2026-07-04 15:58:17 -07:00
Peter Steinberger
0427fa35fb chore: update oxlint tsgolint (#100083)
* chore: update oxlint tsgolint

* chore: sync Canvas A2UI bundle
2026-07-04 16:41:15 -04:00
Peter Steinberger
6df0fb818d feat: add session thread management (#98510)
* feat: add session thread management

Squash of codex/thread-management (025aefc3ad1) onto origin/main:
pin/archive/rename sessions via sessions.patch, archived-aware
sessions.list, lifecycle fencing, read-only archived chat, SDK +
Swift protocol support, Control UI session management.

* refactor(ui): minimal session rows with hover-revealed management

Chat picker and sidebar recents share session-row primitives: single-line
rows, relative timestamps, rename/archive/pin revealed on hover or focus,
accent pin badge for pinned rows, and an active-run spinner in the trail
slot. Sidebar floats pinned sessions above recency via the shared
comparator and gains archive/pin actions through the unified sessions-view
patch fallback. Archive eligibility is one shared policy
(canArchiveSessionRow); the sidebar/picker active-run tooltip now uses the
real sessionsView.activeRun locale key.

* fix: align session admission with mailbox-era main

Integration fixes after rebasing onto current main: sessions_list mailbox
test expectations learn the archived/pinned row fields and archived:false
list param; gateway agent admission treats a session as deleted only when
both the requested and canonical alias sets miss it (legacy bare-main
stores and exec-approval followups read under different spellings); cron
persist tests keep a consistent store across claim-guarded persist calls;
the ACP abort hook test asserts abort propagation instead of signal
identity; drop dead lifecycle writes flagged by no-useless-assignment and
fix the promise-executor return in the codex compact test.

* fix(qa): align UI e2e and shard fixtures with redesigned session rows

Sidebar session rows are wrapper divs with an inner link now: update the
navigation browser tests and chat-flow Playwright selectors. Seed a real
per-test session store for the auto-fallback admission guard instead of
depending on leftover host files at /tmp/sessions.json. Teach the
test-projects routing fixture about the suites that newly import the
shared temp-dir helper. Document the Codex thread-format contract for
archivedAt/pinnedAt (flag derived from server-stamped timestamp, epoch ms
here vs Codex epoch seconds) at the type and in the session docs.

* test: route auto-fallback suite through temp-dir helper plans

The auto-fallback suite now imports the shared temp-dir helper for its
seeded session store, so the top-level helper routing fixture must list
it in the auto-reply plan.
2026-07-04 14:30:47 -04:00
Peter Steinberger
66015762a3 feat(gateway-protocol): add terminal.* RPC methods and events 2026-07-04 11:18:41 -07:00
Barbara Kudiess
129e0a8cf0 feat: pair mobile devices from the Control UI (#94672)
* feat(gateway): add device.pair.setupCode RPC for connect QR

The OpenClaw mobile/companion app scans a pairing setup code to connect to the gateway, but that code + QR could only be produced by the openclaw qr CLI (ASCII to stdout). Non-terminal clients driving onboarding had no way to display the connect QR.

Add a device.pair.setupCode gateway method that reuses resolvePairingSetupFromConfig + encodePairingSetupCode + renderQrPngDataUrl to return { setupCode, qrDataUrl?, gatewayUrl, auth, urlSource }. The embedded setup code mints a short-lived bootstrap token that hands off broad operator scopes (read/write/approvals/talk.secrets), so the method requires operator.admin (matching the wizard methods a companion already uses) and is not advertised. auth is a label only; the gateway credential is never returned, and an oversized QR is omitted so the response always satisfies the result schema.

Refs #94661.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(ui): pair mobile devices from Control UI

* docs: refresh generated docs map

* docs: clarify mobile QR auto-connect

* docs: clarify mobile QR auto-connect

* docs: clarify mobile QR auto-connect

---------

Co-authored-by: Barbara Kudiess <76582160+bkudiess@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-04 12:41:14 -04:00
github-actions[bot]
2abad575d2 chore(i18n): refresh native locales 2026-07-04 08:06:04 +00:00
github-actions[bot]
8f9e1635a1 chore(i18n): refresh native uk locale 2026-07-04 07:50:19 +00:00
github-actions[bot]
305715c725 chore(i18n): refresh native tr locale 2026-07-04 07:49:26 +00:00
github-actions[bot]
531af42246 chore(i18n): refresh native it locale 2026-07-04 07:48:44 +00:00
github-actions[bot]
6bd1a4b89f chore(i18n): refresh native ar locale 2026-07-04 07:47:40 +00:00
github-actions[bot]
43fe5cc890 chore(i18n): refresh native hi locale 2026-07-04 07:47:03 +00:00
github-actions[bot]
4352eaf6ad chore(i18n): refresh native fr locale 2026-07-04 07:45:49 +00:00
github-actions[bot]
7838bc82b6 chore(i18n): refresh native ko locale 2026-07-04 07:45:27 +00:00
github-actions[bot]
9eb1a05c49 chore(i18n): refresh native ja-JP locale 2026-07-04 07:44:13 +00:00
github-actions[bot]
4381c29494 chore(i18n): refresh native es locale 2026-07-04 07:43:53 +00:00
github-actions[bot]
2dc7bd19cb chore(i18n): refresh native de locale 2026-07-04 07:42:31 +00:00
github-actions[bot]
4997802eb0 chore(i18n): refresh native pt-BR locale 2026-07-04 07:42:17 +00:00
github-actions[bot]
db72ffd5d4 chore(i18n): refresh native zh-TW locale 2026-07-04 07:40:47 +00:00
github-actions[bot]
dd050bc5f8 chore(i18n): refresh native zh-CN locale 2026-07-04 07:40:36 +00:00
Josh
e43c72954a Polish iOS onboarding and chat critique fixes (#99243)
* fix(ios): polish onboarding and empty chat

Co-authored-by: Josh <17843332+jcooley8@users.noreply.github.com>

* fix(ios): correlate pending chat echoes

* fix(ios): ship localized chat starters

* fix(ios): preserve chat echo identity

* fix(ios): adopt late correlated chat echoes

* fix(ios): reconcile reused chat runs

* fix(ios): preserve transformed chat history

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-04 00:38:56 -07:00
Jason (Json)
cccc856b82 fix: reject incompatible Node 23 runtimes (#99832)
* fix: reject incompatible Node 23 runtimes

* fix: repair installer CI coverage

* docs: clarify supported Node ranges

* fix: fail closed on unreadable runtime versions

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-04 00:03:49 -07:00
github-actions[bot]
b68e2e701a chore(i18n): refresh native sv locale 2026-07-04 05:29:11 +00:00
github-actions[bot]
63aa909216 chore(i18n): refresh native ru locale 2026-07-04 05:27:32 +00:00
github-actions[bot]
72a3b712af chore(i18n): refresh native fa locale 2026-07-04 05:27:14 +00:00
github-actions[bot]
d066a81d22 chore(i18n): refresh native nl locale 2026-07-04 05:25:47 +00:00
github-actions[bot]
469e707970 chore(i18n): refresh native vi locale 2026-07-04 05:25:28 +00:00
github-actions[bot]
9c3ffc5aaf chore(i18n): refresh native th locale 2026-07-04 05:24:06 +00:00
github-actions[bot]
c54a6f304e chore(i18n): refresh native pl locale 2026-07-04 05:23:47 +00:00
github-actions[bot]
2f7bd01835 chore(i18n): refresh native uk locale 2026-07-04 05:22:10 +00:00
github-actions[bot]
a3aa917225 chore(i18n): refresh native id locale 2026-07-04 05:22:05 +00:00
github-actions[bot]
5769416b62 chore(i18n): refresh native it locale 2026-07-04 05:20:26 +00:00
github-actions[bot]
5f2e51fccf chore(i18n): refresh native tr locale 2026-07-04 05:20:21 +00:00
github-actions[bot]
ef5650f781 chore(i18n): refresh native ar locale 2026-07-04 05:18:40 +00:00
github-actions[bot]
863a054576 chore(i18n): refresh native hi locale 2026-07-04 05:18:36 +00:00
github-actions[bot]
edbbdf6728 chore(i18n): refresh native fr locale 2026-07-04 05:16:54 +00:00
github-actions[bot]
972d394c7b chore(i18n): refresh native ko locale 2026-07-04 05:16:46 +00:00
github-actions[bot]
ab0d604ced chore(i18n): refresh native ja-JP locale 2026-07-04 05:15:14 +00:00
github-actions[bot]
cffc6adbce chore(i18n): refresh native es locale 2026-07-04 05:15:10 +00:00
github-actions[bot]
27778a7c3d chore(i18n): refresh native de locale 2026-07-04 05:13:30 +00:00
github-actions[bot]
4078dc78cc chore(i18n): refresh native pt-BR locale 2026-07-04 05:13:21 +00:00
github-actions[bot]
85d31e10d5 chore(i18n): refresh native zh-TW locale 2026-07-04 05:11:47 +00:00