Commit Graph

3660 Commits

Author SHA1 Message Date
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
github-actions[bot]
7a717b7770 chore(i18n): refresh native zh-CN locale 2026-07-04 05:11:36 +00:00
Peter Steinberger
6a7b62889e feat(macos): install and run the local Gateway automatically (#99767)
* feat(macos): automate local gateway setup

* fix(macos): auto-approve the local Mac node

* chore(macos): refresh generated setup metadata

* chore(macos): refresh generated setup metadata

* chore(macos): refresh generated setup metadata

* chore(macos): refresh generated setup metadata

* chore(macos): refresh generated setup metadata
2026-07-03 22:09:56 -07:00
github-actions[bot]
e7aea60542 chore(i18n): refresh native sv locale 2026-07-04 03:11:48 +00:00
github-actions[bot]
84c86f73eb chore(i18n): refresh native ru locale 2026-07-04 03:10:46 +00:00
github-actions[bot]
e6c3ad9963 chore(i18n): refresh native fa locale 2026-07-04 03:10:02 +00:00
github-actions[bot]
0c960cd8ae chore(i18n): refresh native nl locale 2026-07-04 03:08:54 +00:00
github-actions[bot]
127ce63954 chore(i18n): refresh native vi locale 2026-07-04 03:08:24 +00:00
github-actions[bot]
bd3263d713 chore(i18n): refresh native th locale 2026-07-04 03:07:12 +00:00
github-actions[bot]
c2737d55a9 chore(i18n): refresh native pl locale 2026-07-04 03:06:46 +00:00