Commit Graph

66163 Commits

Author SHA1 Message Date
Vincent Koc
bcb10e2a28 fix(release): reuse SHA-pinned root evidence 2026-07-10 21:12:49 -07:00
Vincent Koc
f677d924f9 fix(release): reject untrusted reuse before lookup 2026-07-10 21:08:18 -07:00
Vincent Koc
6b38f68a06 fix(release): revalidate reused evidence before publish 2026-07-10 21:08:18 -07:00
Vincent Koc
50b765617f fix(testbox): export CI across shell snippets 2026-07-10 21:08:18 -07:00
Vincent Koc
349728abf8 fix(release): support legacy verifier checkouts 2026-07-10 21:08:18 -07:00
Vincent Koc
e0cb3cef93 fix(release): gate evidence reuse on trusted lineage 2026-07-10 21:08:18 -07:00
Vincent Koc
fb4ffe76e6 fix(release): verify from trusted workflow checkout 2026-07-10 21:08:18 -07:00
Vincent Koc
cf3443796c fix(testbox): sync source on every lease reuse 2026-07-10 21:08:18 -07:00
Vincent Koc
1fa8ec497e fix(release): resume serialized plugin selections 2026-07-10 21:08:18 -07:00
Vincent Koc
50319d27b0 fix(release): validate reused SHA evidence 2026-07-10 21:08:17 -07:00
Vincent Koc
1bb51a59af fix(testbox): preserve git command contracts 2026-07-10 21:08:17 -07:00
Vincent Koc
2843773be7 fix(testbox): isolate wrapper git commands 2026-07-10 21:08:17 -07:00
Vincent Koc
947803066b fix(testbox): isolate git state probes 2026-07-10 21:08:17 -07:00
Vincent Koc
1a384f71db fix(testbox): keep changed gates synchronized 2026-07-10 21:08:17 -07:00
Vincent Koc
29cfc61b6f perf(testbox): skip sync for proven clean heads 2026-07-10 21:08:17 -07:00
Vincent Koc
e85a4f0ef2 fix(testbox): force noninteractive remote hydration 2026-07-10 21:08:17 -07:00
Vincent Koc
48704f065a fix(release): preserve verifier executable mode 2026-07-10 21:08:17 -07:00
Vincent Koc
28f018e520 refactor(release): move CI verifier into scripts 2026-07-10 21:08:17 -07:00
Vincent Koc
883a615516 fix(testbox): rotate stale reusable leases 2026-07-10 21:08:17 -07:00
Vincent Koc
52b18ca42f feat(release): watch CI transitions compactly 2026-07-10 21:08:17 -07:00
Vincent Koc
6a606f93a3 feat(release): checkpoint candidate workflow state 2026-07-10 21:08:17 -07:00
Vincent Koc
d86b62dea9 perf(release): reuse exact-SHA validation evidence 2026-07-10 21:08:17 -07:00
Vincent Koc
0c9ebe961e perf(release): share changelog verification snapshots 2026-07-10 21:08:16 -07:00
Ayaan Zaidi
fab69517b3 fix(auto-reply): key command-turn reply operations to the source session 2026-07-11 09:26:25 +05:30
qingminlong
cd7a21787f fix(computer): reject malformed numeric input before node actions (#103642) 2026-07-10 20:50:26 -07:00
Vincent Koc
ad9d142245 style(test): format release workflow guard 2026-07-11 11:45:23 +08:00
Vincent Koc
b0258a5d8b fix(release): isolate frozen Telegram QA temp roots 2026-07-11 11:45:23 +08:00
Vincent Koc
543b0e7794 fix(ci): support frozen Swift lint targets 2026-07-11 11:45:23 +08:00
Haaai
667a5d9a63 fix(agents): guide node discovery before describe (#51926)
* fix(agents): guide node discovery before describe

Co-authored-by: Liuhaai <haixiang@iotex.io>

* test(agents): refresh node tool prompt snapshots

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-10 20:45:20 -07:00
Deepak Jain
612e1b94b7 fix(exec): clarify node approval recovery (#91280)
* fix(exec): clarify node approval recovery

Co-authored-by: Deepak Jain <deepujain@gmail.com>

* chore(pr): keep release notes in PR context

* fix(exec): describe dashboard URL handoff

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-10 20:40:53 -07:00
Sasan
dc097be00d fix(doctor): follow symlinked launcher when locating sandbox setup scripts (#90942)
* fix(doctor): follow symlinked launcher when locating sandbox setup scripts

* refactor(doctor): reuse shared package-root resolver for sandbox scripts

resolveSandboxScript hand-rolled its own cwd/argv1/realpath candidate
scan, duplicating openclaw-root discovery. Reuse resolveOpenClawPackageRootSync,
which already follows the symlinked launcher via realpath and handles
node_modules/.bin and version-manager links, then look for scripts/ under
the resolved package root. Resolves the duplicate-discovery review finding.

* fix(doctor): keep searching cwd for sandbox scripts when first package root lacks them

resolveSandboxScript stopped at the first openclaw package root the shared
resolver returned. argv1 candidates resolve before cwd, so an installed/published
root (package.json present, scripts/ dropped by the npm files allowlist) shadowed
a valid source-checkout cwd and made doctor --fix return null.

- add resolveOpenClawPackageRootsSync: all distinct roots in candidate order
- resolveSandboxScript returns the first root that actually contains the script
- resolveOpenClawPackageRootSync now delegates to the plural (behavior unchanged)
- test: source-checkout cwd shadowed by an installed argv1 root without scripts/
2026-07-11 11:36:02 +08:00
Ben Badejo
8a29e8c934 fix(docs): expose top-level docs hubs on mobile (#100908)
* fix(docs): expose docs hubs on mobile

* docs: refresh docs map

* docs: remove committed proof screenshots

---------

Co-authored-by: Benjamin Badejo <ben@benbadejo.com>
2026-07-10 20:30:35 -07:00
Josh Avant
fbd330b7aa fix(channels): honor configured read target policies (#99905)
* fix(channels): enforce configured read targets

* test(channels): align policy checks with boundaries

* fix: bind channel reads to trusted turn context

* test: satisfy gateway lint

* fix: narrow message action channel imports

* fix(feishu): authorize message reads before provider access

* fix(slack): await reaction clear authorization

* fix(channels): align provider action contracts

* fix(matrix): read direct-room account data before sync

* fix(channels): reject unsupported attachment actions early

* fix: restore trusted operator conversation reads

* fix(matrix): authorize pin actions before provider reads

* fix: preserve trusted channel read workflows

* fix(discord): resolve current channel ids consistently

* fix(agents): preserve message action turn capability

* fix(plugins): enforce host-owned read provenance

* fix(channels): harden Teams and Discord read policy

* fix(channels): preserve exact-current action compatibility

* fix(imessage): authorize trusted current chat aliases

* fix(channels): preserve normalized current aliases

* fix(channels): preserve external current target aliases

* fix: reconcile channel policy with current main

* fix(discord): isolate DM read policy

* fix(channels): enforce provider read gates

* fix(gateway): await serialized message action identity tokens

* fix(ci): refresh channel protocol contracts
2026-07-10 22:29:37 -05:00
Vincent Koc
ffc8051cac test(release): align trusted SHA workflow guard 2026-07-11 11:09:58 +08:00
Vincent Koc
553f543bdf fix(release): support frozen validation targets 2026-07-11 11:09:58 +08:00
Peter Steinberger
feae1faf06 fix(release): expose Telegram launcher failures safely (#104099)
* fix(release): expose Telegram launcher failures safely

* test(release): prove namespace launcher diagnostics
2026-07-10 20:03:36 -07:00
Peter Steinberger
4a00b96bbb docs(changelog): credit final landed fixes 2026-07-10 23:02:55 -04:00
lin-hongkuan
f4732576bd fix(ios): preserve prefixed share text (#103453)
* fix(ios): preserve prefixed share text

* fix(ios): harden shared text normalization

---------

Co-authored-by: lin-hongkuan <lin-hongkuan@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-10 20:01:06 -07:00
Peter Steinberger
dba64d574f chore(release): set version to 2026.7.2 2026-07-11 04:00:49 +01:00
Peter Steinberger
e0862e609a feat(ui): hide chat avatars in direct sessions (#104092)
* feat(ui): hide chat avatars in direct sessions

* fix(ui): classify direct threads from full history, not the render window

* fix(ui): classify direct threads by canonical session kind

* fix(ui): match session metadata across equivalent alias keys in the chat thread

* fix(ui): classify unmatched chat sessions by canonical key shape

* fix(ui): keep avatars in global sessions that can aggregate group senders

* docs(ui): note global-alias limitation on chat avatar classification
2026-07-10 20:00:44 -07:00
Peter Steinberger
05ebaf41f6 fix(tool-call-repair): bound serialized stream normalization (#104100)
* fix(tool-call-repair): bound serialized stream normalization

Co-authored-by: wuqingxuan <wu.qingxuan@xydigit.com>
Co-authored-by: 徐闻涵0668001344 <xu.wenhan1@xydigit.com>
Co-authored-by: qingminlong <qing.minlong@xydigit.com>
Co-authored-by: WangYan <wang.yan29@xydigit.com>

* fix(tool-call-repair): preserve strict scan narrowing

* fix(tool-call-repair): lint serialized name validation

* fix(tool-call-repair): replay split suffix whitespace

* fix(tool-call-repair): cap complete-call whitespace

* test(tool-call-repair): assert bounded whitespace replay

---------

Co-authored-by: wuqingxuan <wu.qingxuan@xydigit.com>
Co-authored-by: 徐闻涵0668001344 <xu.wenhan1@xydigit.com>
Co-authored-by: qingminlong <qing.minlong@xydigit.com>
Co-authored-by: WangYan <wang.yan29@xydigit.com>
2026-07-10 20:00:11 -07:00
Peter Steinberger
04865fe44b feat(ui): gateway browser panel with annotate-to-prompt and element inspect in the web Control UI (#104012)
* feat(ui): add gateway browser panel with annotate and inspect modes

* chore(i18n): translate browser panel strings

* fix(ui): address browser panel review findings (stable tab handles, stale view guard, inspect click suppression)

* fix(ui): make the browser panel reload button reload the remote page

* fix(ui): tile the browser dock against the terminal dock and re-probe evaluate per connection

* fix(ui): label page-reported prompt text as untrusted and accept host:port URL entries

* fix(ui): sanitize inspected selector fragments in the annotation prompt

* fix(i18n): retranslate annotation prompt keys so the page-reported provenance label survives localization

* docs: regenerate docs map for the browser panel section

* chore(i18n): reconcile locale bundles with latest main after rebase

* style(ui): format chat-pane imports after rebase

* chore(i18n): refresh locale metadata after rebase
2026-07-10 19:54:47 -07:00
Peter Steinberger
2cc8bb40fd fix(plugins): quiet trusted discovery warning (#104097) 2026-07-10 19:53:03 -07:00
Peter Steinberger
bb26753705 fix(telegram): satisfy lint in transport-close proof test
restrict-plus-operands (Buffer + string) and no-promise-executor-return
tripped the lint shards on every PR since #101783 landed; scoped fixes
only, no behavior change.
2026-07-10 19:44:03 -07:00
ly-wang19
780f8d6f62 fix(telegram): clean up split reasoning previews (#97828)
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
2026-07-10 19:43:14 -07:00
NianJiu
df36c821a4 fix(android): require explicit retry after interrupted sends (#103273)
* fix(android): require retry after interrupted outbox sends

* fix(android): fail ambiguous outbox sends closed

Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>

* fix(android): preserve run-id-only acknowledgements

* style(android): format outbox assertion

* fix(android): fail outbox recovery closed

Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>

* test(android): prove dropped ack is not replayed

Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>

* fix(android): accept terminal outbox acknowledgements

Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>

* fix(android): persist rejected outbox retries

Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>

* fix(android): require manual retry after transmitted failures

* fix(android): migrate ambiguous outbox rows safely

* test(android): import outbox cancellation type

* fix(android): limit destructive chat cache migration

* fix(android): guard outbox retry transitions

* fix(android): reject malformed chat acknowledgements

* test(android): type migration bind arguments

* test(android): separate migration and replay proof

* fix(android): accept admitted outbox acknowledgements

* fix(android): preserve gateway health after acknowledged outbox failures

* fix(android): stop outbox flush on persistence failure

* fix(android): stop outbox flush when claims fail

* fix(android): enforce durable outbox barriers

* fix(android): coalesce outbox flush requests

* style(android): format outbox assertions

---------

Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-10 19:41:40 -07:00
sunlit-deng
4d55b116c6 fix(feishu): keep native-card payloads in topic threads (#102804) 2026-07-10 19:33:18 -07:00
Peter Steinberger
add44b19f1 improve(ui): replace background tasks rail chips with a quiet status line (#104074) 2026-07-10 19:33:06 -07:00
Peter Steinberger
0074005682 feat(ui): add Model Providers settings page with auth, quota, and cost per provider (#104061) 2026-07-10 19:31:41 -07:00
Peter Steinberger
4b7a5a4e8b fix(installer): default to Node 22.22.2 (#104073) 2026-07-10 19:28:49 -07:00