Commit Graph

68179 Commits

Author SHA1 Message Date
openclaw-release-bot b3239a5f0f chore(release): update appcast for 2026.7.1 2026-07-14 06:53:20 +00:00
Peter Steinberger 1dd78aee42 docs: document catalog terminal relay (#107204)
* fix(protocol): regenerate terminal protocol artifacts

* fix(protocol): regenerate terminal protocol artifacts

* fix(protocol): regenerate terminal protocol artifacts
2026-07-13 23:50:08 -07:00
Peter Steinberger 044392684b test(release): repair scheduled E2E regressions (#107173)
* test(release): repair scheduled E2E regressions

* test(release): refresh generated protocol bindings

* docs(agents): harden remote proof invocations
2026-07-13 23:49:36 -07:00
Peter Steinberger a2b4c4e17d refactor(signal): trim dead exports (#107217) 2026-07-13 23:43:46 -07:00
Peter Steinberger 6625ea92f0 refactor(codex): evaluate startup deadlines first 2026-07-13 23:40:39 -07:00
Peter Steinberger c953d8ec41 fix(codex): gate startup phases before deadlines 2026-07-13 23:40:39 -07:00
Peter Steinberger ec72fda21c refactor(scripts): use dependency metadata parsers 2026-07-13 23:33:30 -07:00
Peter Steinberger 3c82249ab9 test: accelerate session concurrency coverage (#107186) 2026-07-13 23:32:53 -07:00
Peter Steinberger c44b854e8e refactor(ui): use task-list token contract 2026-07-13 23:29:14 -07:00
Peter Steinberger cbb5e97dd4 refactor(whatsapp): trim internal exports (#107206) 2026-07-13 23:23:11 -07:00
Peter Steinberger 21382b3755 refactor(qqbot): use silk-wasm buffer inputs 2026-07-13 23:19:54 -07:00
Peter Steinberger 63c48f881f fix(protocol): refresh generated clients (#107177) 2026-07-13 23:18:55 -07:00
Peter Steinberger 4d56176e5f build(android): verify Gradle distribution checksum (#107194) 2026-07-13 23:18:54 -07:00
Peter Steinberger d9d3d4b9e3 refactor(matrix): use fake-indexeddb prototype 2026-07-13 23:11:49 -07:00
Peter Steinberger 834810b3d6 refactor(imessage): trim internal exports (#107196)
* refactor(imessage): trim internal exports

* test(imessage): type inbound dispatch mock
2026-07-13 23:05:24 -07:00
ruizcrp 40cf6c51b3 feat(workboard): add manual card movement surfaces (#96554)
Adds consistent manual Workboard movement across CLI, slash commands, and agent tools while preserving operator authority and agent claim isolation.

Co-authored-by: Ross I4JU <ross@i4ju.ch>
2026-07-13 23:01:06 -07:00
Peter Steinberger d3ac854e31 refactor(agents): extract attempt execution phases 2026-07-13 22:54:42 -07:00
Peter Steinberger 83512e1986 refactor(matrix): use native media types 2026-07-13 22:54:26 -07:00
Peter Steinberger 304beb22e1 refactor(concurrency): use p-map skip results 2026-07-13 22:43:26 -07:00
Jason (Json) 5f8b2a4670 fix: complete Codex login handoff during onboarding (#107174) 2026-07-13 23:40:55 -06:00
Peter Steinberger df5097b6e7 fix(native): keep platform validation warning-free (#107101)
* build(android): keep Gradle warning-free

* ci(native): pin XcodeGen tooling

* test(macos): avoid concurrency warnings
2026-07-13 22:33:12 -07:00
Peter Steinberger b241d4a12d refactor(agents): extract attempt session runtime setup 2026-07-13 22:32:01 -07:00
Peter Steinberger 1d02cc83dd refactor(skills): use chokidar all events 2026-07-13 22:31:00 -07:00
Wynne668 73cb408565 fix(google-meet): reject nondecimal transcript cursors (#106384)
* fix(google-meet): reject nondecimal transcript cursors

Use parseStrictNonNegativeInteger for --since validation so hex,
exponent, and fractional spellings are rejected at the CLI boundary
instead of silently coercing to different cursor offsets.

Remove the redundant file header comment to stay within the
oversized-file LOC ratchet.

* test(google-meet): harden transcript cursor coverage

* style(google-meet): format cursor tests

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 22:28:18 -07:00
Peter Steinberger ee858fc9f2 refactor(types): remove stale node-llama declarations 2026-07-13 22:26:47 -07:00
zw-xysk 2f11d8752d fix(slack): add 30s timeout to read-mode action API calls (#107103)
* fix(slack): add 30s timeout to read-mode action API calls

* fix(slack): reuse bounded lookup client

* test(slack): use review-safe token fixtures

* test(slack): restore concise token fixtures

* test(slack): mark new auth fixture as placeholder

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 22:26:02 -07:00
xingzhou 46457b3610 fix(ui): Sessions filters silently accept trailing text (#107072)
* fix(ui): reject partial session filter values

* fix(ui): validate session filters strictly

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 22:22:20 -07:00
Peter Steinberger d8d2f83cc1 feat(terminal): open Codex/Claude catalog sessions in a terminal on their owning host
Catalog session rows (sidebar context menu + click), the built-in viewer
header, and a new "Open Codex/Claude sessions in" preference can launch the
native CLI (codex resume / claude --resume) in the operator terminal on the
machine that owns the session.

- Gateway-local sessions spawn through the existing terminal launch policy
  (sandbox/enabled gates preserved) with the resume command in the session cwd.
- Paired-node sessions run through a new seq-ordered node PTY relay: a
  duplex node-host command streams PTY output via node.invoke.progress and
  receives keystrokes/resize via a new node.invoke.input event, behind the
  unchanged terminal.* client protocol (TerminalSessionManager gains a backend
  abstraction; node relay reuses the streaming-invoke controller).
- Owner boundary: each plugin owns its resume command and builds argv from a
  validated thread id; the gateway routes node opens through the node command
  allowlist and plugin invoke policy (no advertisement-only trust), and nodes
  re-verify session eligibility before spawning.
- UI setting catalogOpenTarget + canOpenTerminal capability gate every entry
  point; capability requires the owning host to actually have the CLI.

Node PATH is normalized before command-availability probes, Windows .cmd/.bat
shims spawn via ComSpec, and catalog terminal opens reattach persisted tabs
before opening the new tab.
2026-07-13 22:20:50 -07:00
Josh Avant 177ad6bb61 test: cover queued reset session rotation (#106995) 2026-07-13 22:20:23 -07:00
Bek beb0aace72 fix: prevent completed Codex hook relays from lingering (#106899) 2026-07-14 01:19:59 -04:00
Peter Steinberger bdc91cb4af refactor(memory-wiki): trim internal exports (#107157) 2026-07-13 22:19:01 -07:00
Peter Steinberger eb91c593d3 test(plugin-sdk): harden temp directory cleanup (#107151) 2026-07-13 22:12:49 -07:00
yyj-xydt 429bf9383e fix(workboard): avoid timing leaks in claim authorization (#104259)
* test(workboard): cover claim token lifecycle auth

* fix(workboard): compare claim tokens safely

Co-authored-by: 0668001099 <yang.yujie1@xydigit.com>

* refactor(workboard): centralize claim identity checks

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 22:12:45 -07:00
Peter Steinberger 069915f173 test: accelerate sqlite state cli tests (#107150) 2026-07-13 22:12:21 -07:00
Peter Steinberger 25bc6df8cd refactor(speech-core): remove redundant API back-edge 2026-07-13 22:11:48 -07:00
Peter Steinberger e278a34331 feat(macos): refresh DMG installer artwork (#107142) 2026-07-13 22:09:36 -07:00
Vincent Koc ee6d6e7e78 refactor(extensions): remove dead local exports (#107146) 2026-07-14 13:09:20 +08:00
Peter Steinberger cac097946d feat(ui): devices card action redesign + in-page removal confirm (#107123)
* feat(ui): redesign devices card actions and fix silent stale cleanup

* fix(ui): show device id in removal prompt; keep device glyphs page-local

* fix(ui): drop pending removal prompt on connection reset

* fix(ui): sync device removal prompt locales; attach devices view test containers

* chore(i18n): sync locale bundles for device removal prompt
2026-07-13 22:07:39 -07:00
Peter Steinberger 9c2dc92dd8 refactor(msteams): trim internal exports (#107148) 2026-07-13 22:01:56 -07:00
Peter Steinberger 73838101df refactor(agents): extract attempt stream runtime setup 2026-07-13 22:01:22 -07:00
Peter Steinberger a6094900b6 fix(ui): stop Raw config editor asking users to switch to Raw (#107116)
* fix(ui): hide form warning in raw config mode

* chore: keep release notes out of fix PR
2026-07-13 21:56:45 -07:00
Hannes Rudolph a5b2e4167d docs: publish release notes for v2026.7.1 (#107040)
* docs: publish release notes for v2026.7.1

* docs: refine v2026.7.1 release notes
2026-07-13 22:54:04 -06:00
Vincent Koc 7a279741ed fix(plugin-sdk): refresh API baseline hash (#107140) 2026-07-14 12:53:33 +08:00
Peter Steinberger bf5fb5b760 fix(tui): preserve input across gateway restarts (#107115)
* fix(tui): recover input after gateway reconnects

* refactor(tui): extract submit state helpers
2026-07-13 21:51:38 -07:00
Peter Steinberger 61986571bb fix(plugins): forward-port bundled SDK fallback hardening (#107131)
* fix(plugins): avoid bundled SDK fallback races

* fix(ci): satisfy plugin SDK LOC ratchet

* fix(ci): align fallback forward-port guards

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-13 21:50:46 -07:00
Peter Steinberger 2e58c2bc53 test: accelerate sqlite reliability suite (#107134) 2026-07-13 21:50:36 -07:00
Peter Steinberger 4023eb92d2 feat(android): add foreground Voice Wake (#107081)
* feat(android): add foreground voice wake

* chore(android): refresh voice wake artifacts

* fix(android): refresh voice wake capability readiness

* chore(android): sync voice wake translations

* chore: keep release notes in PR context
2026-07-13 21:48:29 -07:00
zengLingbiao 692cb8dd9b fix(cron): reject non-string values in delivery target validation (#106952)
* fix(cron): reject non-string values in delivery target validation

assertNonBlankStringField had inverted logic — non-string values
(number, boolean, object) were silently accepted because typeof !== 'string'
was grouped with the undefined/null early return. The function name says
'assert non-blank string field' but it was bypassing validation for any
non-string type, defeating the purpose of input validation.

* test(cron): cover invalid delivery fields at entrypoints

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 21:48:15 -07:00
Peter Steinberger 352cf819bc improve: speed up agent command tests (#107107)
* test: avoid plugin discovery in agent command suites

* style: format agent command test imports

* test: preserve agent command mock ordering

* test: classify agent mock state as test support
2026-07-13 21:46:50 -07:00
moguangyu5-design 8419675fa1 fix(session): swallow onRecordError throw to avoid unhandled rejection (#106951)
* fix(session): swallow onRecordError throw to avoid unhandled rejection

* fix(session): settle async record error handlers

* fix(session): assimilate record handler results

---------

Co-authored-by: moguangyu5-design <moguangyu5-design@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 21:45:57 -07:00