Commit Graph

49321 Commits

Author SHA1 Message Date
Val Alexander
6a41a54212 fix(macos): harden direct gateway TLS pinning
Summary:
- Require macOS system trust before saving and accepting first-use direct `wss://` gateway TLS pins.
- Honor `gateway.remote.tlsFingerprint` in macOS direct node-mode TLS params.
- Add focused Swift coverage and update remote gateway docs/changelog.

Verification:
- Local: swiftformat --lint on touched Swift files.
- Local: git diff --check HEAD~1..HEAD.
- Local: swift test --package-path apps/shared/OpenClawKit --filter GatewayTLSPinningTests.
- Local: swift test --package-path apps/macos --filter 'MacNodeModeCoordinatorTests|GatewayEndpointStoreTests'.
- Local: PATH=/Users/buns/.nvm/versions/node/v24.13.0/bin:$PATH pnpm docs:list.
- CI: macos-node, macos-swift, check-docs, security-fast, security-scm-fast, security-dependency-audit, Opengrep OSS, and changed-path checks passed on PR head cf383fc047.

Fixes #50642.
Supersedes #50643.
2026-05-13 21:30:22 -05:00
Eduardo Piva
983064f5f8 fix(sessions): report ACP-runtime metadata for ACP-keyed sessions
Report ACP control-plane session runtime metadata from persisted ACP session metadata/backend, and keep ACP-shaped bridge sessions on normal configured model/runtime metadata.

Proof: focused sessions runtime/model-display tests, core prod/test typechecks, touched-file format check, seeded openclaw sessions --json behavior proof, and passing relevant CI. Known unrelated red check: checks-fast-contracts-plugins-d plugin SDK documentation contract for codex helper subpaths.
2026-05-13 19:03:50 -07:00
Sarah Fortune
bce56bacc7 fix(migrate): swap glyphs on manual-review and archive item rows
Manual-review items are kind:"manual" with status:"skipped" so they were rendering with ⏭️, which reads like "done, ignored" — exactly the wrong signal for items that still need user attention. Render with 🔍 instead so the row says "look closer here".

Archive items end up status:"migrated" once written to the report dir, so they were rendering with , which overstates what happened — the file was saved aside, not imported. Render with 📖 so the row reads "filed away".

Skill/plugin/secret/memory rows continue to render with their status glyphs (  ⏭️ ⚠️) unchanged. JSON output (--json) is unaffected.
2026-05-13 18:58:17 -07:00
Vincent Koc
e774b25b2f fix(agents): preserve reply metadata through tool media 2026-05-14 09:54:31 +08:00
pashpashpash
3ce922437f fix: load Codex for selectable OpenAI agent models
Treat selectable configured OpenAI agent models as Codex runtime requirements during plugin auto-enable, startup planning, and doctor install repair.\n\nPR: https://github.com/openclaw/openclaw/pull/81591
2026-05-14 09:51:15 +08:00
Vincent Koc
97ed9b2d82 test(agents): fix live profile lint 2026-05-14 09:19:04 +08:00
Vincent Koc
5923d9e807 fix(plugin-sdk): export codex runtime helpers 2026-05-14 09:19:04 +08:00
Vincent Koc
a504cd0190 test: make root permission assertions deterministic 2026-05-14 08:52:41 +08:00
Peter Steinberger
f3361dc928 test(agents): surface live OpenAI replay auth failures 2026-05-14 01:36:56 +01:00
Val Alexander
52370c5998 feat(ui): add browser-local Control UI text size setting
Adds a bounded browser-local Control UI text size setting in Appearance and Quick Settings, persists it in UiSettings, and applies CSS text-scale variables across chat text, composer input, sidebars, and tool cards while preserving mobile Safari input zoom safety.

Fixes #8547.
Thanks @BunsDev.
2026-05-13 19:18:05 -05:00
Peter Steinberger
0b55317494 test(plugins): isolate capability provider runtime mocks 2026-05-14 01:07:57 +01:00
Peter Steinberger
3225ec43c8 test(plugin-install): align npm peer scan expectations 2026-05-14 00:51:09 +01:00
Peter Steinberger
23446a248b ci(release): fail full validation on child failure 2026-05-14 00:46:22 +01:00
Eduardo Piva
9431d18aaf fix(sessions): classify spawn-child sessions correctly
Classify ACP spawn-child sessions via persisted spawnedBy metadata and share the session kind classifier across sessions/status output.

Verified with Azure Crabbox seeded ACP session-store proof, targeted session/status tests, touched-file lint, build, and green PR CI.
2026-05-13 16:39:04 -07:00
pashpashpash
74860e93fd fix(codex): preserve user home for app-server launches 2026-05-13 16:37:03 -07:00
Peter Steinberger
8046b5e462 docs: add plugin update changelog (#81512) (thanks @JARVIS-Glasses) 2026-05-14 00:25:52 +01:00
JARVIS-Glasses
5214f16e29 fix(update): clear stale plugin refs after failed updates 2026-05-14 00:25:52 +01:00
Vincent Koc
b5c3379097 fix(telegram): clear progress draft before answer 2026-05-14 07:19:00 +08:00
Peter Steinberger
dc7fab4dc5 perf: cache pi model discovery 2026-05-14 00:13:29 +01:00
Peter Steinberger
b10b946b12 docs(clawhub): remove missing security route 2026-05-13 23:57:05 +01:00
이민재
72f50dd127 fix(slack): normalize read timestamp bounds (#81338)
* fix(slack): normalize read timestamp bounds

* fix(slack): document read timestamp bounds fix

* fix(slack): simplify timestamp bounds validation

---------

Co-authored-by: honor2030 <19909783+honor2030@users.noreply.github.com>
Co-authored-by: Altay <altay@hey.com>
2026-05-14 01:52:55 +03:00
Vincent Koc
d08f68dee7 test(e2e): cover root-managed VPS upgrades 2026-05-14 06:50:58 +08:00
Peter Steinberger
25dd30d656 build(whatsapp): keep audio decoder dependency 2026-05-13 23:48:05 +01:00
Peter Steinberger
c654f1f811 test(whatsapp): allow audio runtime dependency 2026-05-13 23:47:03 +01:00
Josh Lehman
6395117142 fix: restore Codex cron automation compatibility (#81510)
* fix: restore Codex cron automation compatibility

* fix: document Codex cron automation restore
2026-05-13 15:34:31 -07:00
Shakker
26da4edbe1 docs: add acp request error changelog 2026-05-13 22:39:24 +01:00
vyctorbrzezowski
c5071a8061 fix(acp): preserve RequestError details 2026-05-13 22:39:24 +01:00
Eduardo Piva
207fb9951d fix(sessions): display ACP runtime sentinel for ACP sessions (#79543)
Display the ACP runtime sentinel for ACP control-plane session rows in openclaw sessions output, while preserving configured model/provider display for direct sessions.

Verified with focused sessions tests, touched-file oxlint, check:test-types, Crabbox after-fix proof, and exact-head GitHub CI.
2026-05-13 14:26:51 -07:00
B.K.
b8ea6097d9 fix(cli): report stale plugin doctor config (#81515)
Merged via squash.

Prepared head SHA: 23bc849abd
Co-authored-by: BKF-Gitty <263413630+BKF-Gitty@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-05-14 00:03:54 +03:00
vyctorbrzezowski
4d2e708726 fix(memory-lancedb): support cjk auto-capture triggers 2026-05-13 21:49:22 +01:00
Sarah Fortune
6602884b06 test(codex-migrate): stub clack log in migrate mock 2026-05-13 13:29:23 -07:00
Sarah Fortune
b85259c443 test(codex-migrate): cover new preview/result format 2026-05-13 13:29:23 -07:00
Sarah Fortune
49adf206e8 fix(codex-migrate): use String#replace in display name 2026-05-13 13:29:23 -07:00
Sarah Fortune
d7d1fba74b ux(codex-migrate): polish preview/result output
Restructure the migrate codex CLI output:

- Split into separate Before (preview) and After (result) messages
  so each can be tuned independently. Both render through clack's
  log.message so they pick up the standard '|' gutter.
- Group items by kind (Skills, Plugins, Memory, Secrets, Archive,
  Manual review, Other) instead of one flat list. Hide config items
  from display and exclude them from the summary count.
- Drop the internal kind/action tag (e.g. 'manual/manual'), strip
  '<kind>:' id prefixes and trailing ':N' disambiguators, and use
  '•' for bullets.
- Mute parenthetical action text.
- In result mode: replace status text with emoji ( migrated,
   error, ⏭️ skipped, ⚠️ conflict), show '(Migrated)' on success,
  show humanized failure reasons for known codes (plugin_missing,
  marketplace_missing, etc.), say '(Skipped)' for user-deselected
  skill/plugin items but keep the real message on manual-review
  skips. Drop warnings from the result message.
- In preview mode: omit the 'Next' section and move warnings to
  the bottom. Use generic action descriptions ('Copy Codex skill
  into OpenClaw', 'Install Codex plugin into OpenClaw').
- Drop the redundant 'Codex cached plugin bundles remain
  manual-review only.' warning — covered by the source-installed
  warning above it.
2026-05-13 13:29:23 -07:00
Peter Steinberger
cf571c1b58 fix(plugins): scope install scanner to runtime graph 2026-05-13 21:22:37 +01:00
dwc1997
cffae53b43 fix(security): classify broad Windows SIDs as world principals
Carry Windows ACL world-principal classification through @openclaw/fs-safe@0.2.2 so Anonymous Logon, Guests, Interactive, Network, and Local SID/principal variants are treated as world-equivalent in filesystem audit findings.

Also add regression coverage, changelog coverage, a narrow lint cleanup, and a UI test isolation fix needed by the current CI shard.

Co-authored-by: dwc <118101032587@njust.edu.cn>
2026-05-13 15:19:02 -05:00
Kevin Lin
6a23e26a27 docs: consolidate plugin install docs (#81167)
* docs: consolidate plugin install docs

* docs: align plugin getting started page

* snap

* docs: add reusable audit viewer tooling

* docs: add audit viewer doc mode

* docs: add audit viewer diff mode

* docs: strengthen plugin docs audit coverage

* docs: preserve plugin scan order reference

* docs: resolve plugin audit coverage gaps

* docs: strengthen audit line mappings

* docs: narrow plugin docs refactor scope

* docs: preserve plugin audit facts

* docs: keep audit skill local

* docs: remove audit skill from pr

* fix: satisfy plugin scan lint

* docs: address plugin docs review
2026-05-13 13:17:39 -07:00
Peter Steinberger
308b39efd5 docs: document real behavior proof fields 2026-05-13 21:08:17 +01:00
Peter Steinberger
f30c9eff76 docs: refresh clawdtributor update guidance 2026-05-13 21:07:49 +01:00
Peter Steinberger
7c4f607572 docs: refresh config baseline hash 2026-05-13 20:59:11 +01:00
Peter Steinberger
ebd829cffd test: add release qa docker lanes 2026-05-13 20:57:44 +01:00
edge_kase
8237d165e2 feat(acp): add backend provider failover for UNAVAILABLE errors (#69542)
Merged via squash.

Prepared head SHA: 1d4c929ad7
Co-authored-by: kaseonedge <15183881+kaseonedge@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-05-13 22:52:14 +03:00
狼哥
609187f5f6 fix(security): classify dangerous Windows sandbox binds first (#63074)
Adds Windows USERPROFILE to the sandbox blocked home roots so credential binds are denied even when HOME points at a different shell home.

Verified:
- node scripts/test-projects.mjs src/agents/sandbox/validate-sandbox-security.test.ts
- node scripts/test-projects.mjs src/agents/sandbox/bind-spec.test.ts src/agents/sandbox/host-paths.test.ts src/agents/sandbox/validate-sandbox-security.test.ts
- git diff --check HEAD^ HEAD

Co-authored-by: luoyanglang <hanwanlonga@gmail.com>
2026-05-13 14:42:45 -05:00
AI-HUB
b7d3b74f1c fix(ui): order live chat items by timestamp (#81016)
* fix(ui): order live chat items by timestamp

* fix(ui): stabilize chat timestamp sorting

* test: refresh core lint fixtures

* test: refresh current main guard fixtures

* test: refresh codex prompt snapshots

* test(matrix): keep runtime helper local

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-13 20:30:44 +01:00
Peter Steinberger
439e396262 fix(plugins): allow benign LanceDB runtime shims 2026-05-13 20:24:46 +01:00
Peter Steinberger
1f59031373 test(matrix): keep runtime media mock local 2026-05-13 20:07:10 +01:00
Peter Steinberger
8a406528b4 fix(codex): project user MCP servers into app-server threads
Fixes #80814.

Co-authored-by: kinjitakabe <273844887+kinjitakabe@users.noreply.github.com>
2026-05-13 20:07:10 +01:00
sallyom
d4484158d9 fix: avoid broad provider env marker inference 2026-05-13 15:02:56 -04:00
Josh Lehman
b55d9fa466 fix(codex): rotate incompatible context-engine threads (#81223)
* fix(codex): rotate incompatible context-engine threads

* fix(codex): tighten context-engine sidecar policy

* fix: type context-engine binding policy config

---------

Co-authored-by: Josh Lehman <phaedrus@Mac.hsd1.ca.comcast.net>
2026-05-13 11:50:03 -07:00
Shakker
433bafa55b fix: avoid bodyless media response buffering 2026-05-13 19:38:26 +01:00