Mariano
7299c56953
Fix sub-agent cwd/workspace separation ( #87218 )
...
Merged via squash.
Prepared head SHA: f47b073830
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-05-27 23:55:24 +02:00
Kevin Lin
bb752c2b47
Revert "feat: expose plugin approval action metadata" ( #87419 )
...
This reverts commit 0c867eef75 .
# Conflicts:
# docs/.generated/plugin-sdk-api-baseline.sha256
2026-05-27 14:48:06 -07:00
Patrick Erichsen
ee57f341f0
Add ClawHub skill verification and trust surfaces ( #86699 )
...
* feat(skills): fetch ClawHub skill verification
* feat(skills): resolve ClawHub verification targets
* feat(skills): add ClawHub verify command
* docs(skills): document ClawHub verification
* test(skills): type verify CLI fixture
* fix(skills): fetch verified skill card URL
* fix(skills): bound verified card downloads
* fix(skills): fail closed on malformed verification
* fix(skills): corroborate ClawHub install origins
* feat(skills): surface ClawHub trust in control UI
* chore(protocol): refresh generated gateway models
* chore(ui): refresh i18n raw copy baseline
* docs: clarify skills verify wording
* fix: fail closed on skill trust mismatches
* fix: reject incomplete clawhub provenance
* fix: satisfy trust verdict lint
* fix: restore ci checks after main merge
2026-05-27 14:23:24 -05:00
Peter Steinberger
bb46b79d3c
refactor: internalize OpenClaw agent runtime ( #85341 )
...
* refactor: extract agent core package
Introduce packages/agent-core as the OpenClaw-owned home for reusable agent loop, harness, session, prompt, and runtime dependency contracts.
* refactor: extract shared llm runtime
Move provider model registries, stream wrappers, OAuth helpers, and LLM utilities into src/llm with plugin-sdk barrels instead of depending on the old embedded runtime layout.
* refactor: remove pi runtime internals
Rename remaining Pi-shaped agent surfaces to OpenClaw agent runtime names, delete obsolete Pi docs and package graph checks, and add the third-party notice for incorporated code.
* refactor: tighten agent session runtime
Make agent-core/runtime dependencies explicit, consolidate compaction and session transcript helpers, and move model/session helpers behind OpenClaw-owned contracts.
* refactor: remove static model and pi auth paths
Drop static model catalogs and Pi auth bridges, move model/provider facts to manifest-owned runtime contracts, and harden internal embedded-agent utilities.
* refactor: remove legacy provider compat paths
* docs: remove agent parity notes
* fix: skip provider wildcard metadata parsing
* refactor: share session extension sdk loading
* refactor: inline acpx proxy error formatter
* refactor: fold edit recovery into edit tool
* fix: accept extension batch separator
* test: align startup provider plugin expectations
* fix: restore provider-scoped release discovery
* test: align static asset packaging expectations
* fix: run static provider catalogs during scoped discovery
* fix: add provider entry catalogs for scoped live discovery
* fix: load lightweight provider catalog entries
* fix: refresh provider-scoped plugin metadata
* fix: keep provider catalog entries on release live path
* fix: keep static manifest models in release live checks
* fix: harden release model discovery
* fix: reduce OpenAI live cache probe reasoning
* fix: disable OpenAI cache probe reasoning
* ci: extend OpenAI gateway live timeout
* fix: extend live gateway model budget
* fix: stabilize release validation regressions
* fix: honor provider aliases in model rows
* fix: stabilize release validation lanes
* fix: stabilize release memory qa
* ci: stabilize release validation lanes
* ci: prefer ipv4 for live docker node calls
* fix: restore shared tool-call stream wrapper
* ci: remove legacy pi test shard alias
* fix: clean up embedded agent test drift
* fix: stabilize runtime alias status
* fix: clean up embedded agent ci drift
* fix: restore release ci invariants
* fix: clean up post-rebase runtime drift
* fix: restore release ci checks
* fix: restore release ci after rebase
* fix: remove stale pi runtime path
* test: align compaction runtime expectations
* test: update plugin prerelease expectations
* fix: handle claude live tool approvals
* fix: stabilize release validation gates
* fix: finish agent runtime import
* test: finish post-rebase agent runtime mocks
* fix: keep codex compaction native
* fix: stabilize codex app-server hook tests
* test: isolate codex diagnostic active run
* test: remove codex diagnostic completion race
# Conflicts:
# extensions/codex/src/app-server/run-attempt.test.ts
* ci: fix full release manifest performance run id
* refactor: narrow llm plugin sdk boundary
* chore: drop generated google boundary stamps
* fix: repair rebase fallout
* fix: clean up rebased runtime references
* fix: decode codex jwt payloads as base64url
* fix: preserve shipped pi runtime alias
* fix: add scoped sdk virtual modules
* fix: decode llm codex oauth jwt as base64url
* fix: avoid stale vertex adc negative cache
* fix: harden tool arg decoding and codeql path
* fix: keep vertex adc negative checks live
* refactor: consolidate codex jwt and edit helpers
* fix: await codex oauth node runtime imports
* fix: preserve sdk tool and notice contracts
* fix: preserve shipped compat config boundaries
* fix: align codex oauth callback host
* fix: terminate agent-core loop streams on failure
* fix: keep codex oauth callback alive during fallback
* ci: include session tools in critical codeql scans
* fix: keep Cloudflare Anthropic provider auth header
* docs: redirect legacy pi runtime pages
* fix: honor bundled web provider compat discovery
* fix: protect session output spill files
* fix: keep legacy agent dir env blocked
* fix: contain auto-discovered skill symlinks
* fix: harden agent core sdk proxy surfaces
* fix: restore approval reaction sdk compat
* fix: keep live docker runs bounded
* fix: keep codex oauth redirect host aligned
* fix: resolve post-rebase agent runtime drift
* fix: redact anthropic oauth parse failures
* fix: preserve responses strict tool shaping
* fix: repair agent runtime rebase cleanup
* docs: redirect retired parity pages
* fix: bound auto-discovered resources to roots
* fix: repair post-rebase agent test drift
* fix: preserve bundled provider allowlist migration
* fix: preserve manifest-owned provider aliases
* fix: declare photon image dependency
* fix: keep provider headers out of proxy body
* fix: preserve shipped env aliases
* fix: refresh control ui i18n generated state
* fix: quote read fallback paths
* fix: preview edits through configured backend
* test: satisfy core test typecheck
* fix: preserve ZAI usage auth fallback
* test: repair codex diagnostic test
* fix: repair agent runtime rebase drift
* test: finish embedded runner import rename
* fix: repair agent runtime rebase integrations
* test: align compaction oauth fallback expectations
* fix: allow sdk-auth session models
* fix: update doctor tool schema import
* fix: preserve bedrock plugin region
* fix: stream harmony-like prose immediately
* ci: include session runtime in codeql shards
* fix: repair latest rebase integrations
* fix: honor explicit codex websocket transport
* fix: keep openai-compatible credentials provider-scoped
* fix: refresh sdk api baseline after rebase
* fix: route cli runtime aliases through openclaw harness
* test: rename stale harness mock expectation
* test: rename embedded agent overflow calls
* test: clean embedded auth test wording
* test: use openclaw stream types in deepinfra cache test
* fix: refresh sdk api baseline on latest main
* fix: honor bundled discovery compat allowlists
* fix: refresh sdk api baseline after latest rebase
* fix: remove stale rebase imports
* test: rename stale model catalog mock
* test: mock renamed doctor runtime modules
* fix: map canonical kimi env auth
* fix: use internal model registry in bench script
* fix: migrate deepinfra provider catalog entry
* fix: enforce builtin tool suppression
* fix: route compaction auth and proxy payloads safely
* refactor: prune unused llm registry leftovers
* test: update codex hooks session import
* test: fix model picker ci coverage
* test: align model picker auth mock types
2026-05-27 19:24:04 +01:00
Peter Steinberger
7aaca4a8a6
chore(release): prepare 2026.5.27
2026-05-27 16:53:50 +01:00
Pavan Kumar Gondhi
91590132f6
Block unsafe Node runtime env overrides [AI] ( #87308 )
...
* fix: block unsafe node runtime env overrides
* fix: block node env path redirects
* docs: add changelog entry for PR merge
2026-05-27 20:34:12 +05:30
Peter Steinberger
1507a9701b
refactor: centralize inbound supplemental context
...
* refactor: centralize inbound supplemental context
* refactor: trim supplemental finalizer typing
* docs: clarify supplemental context projection
* refactor: move inbound finalization into core
* refactor: simplify channel inbound facts
* refactor: fold supplemental media into inbound finalizer
* refactor: migrate channel inbound callers to builder
* docs: mark inbound finalizer compat types deprecated
* refactor: wire runtime turn context builder
* refactor: replace channel turn runtime API
* fix: respect discord quote visibility
* fix: avoid deprecated line dispatch helper
* refactor: deprecate channel message SDK seams
* docs: trim channel outbound SDK page
* test: migrate irc inbound assertion
* refactor: deprecate outbound SDK facades
* refactor: deprecate channel helper SDK facades
* refactor: deprecate channel streaming SDK facade
* refactor: move direct dm helpers into inbound SDK
* chore: mark legacy test-utils SDK alias deprecated
* refactor: remove unused allow-from read helper
* refactor: route remaining channel dispatch through core
* refactor: enforce modern extension SDK imports
* test: give slow image root tests more time
* ci: support node fallback on windows
* fix: add transcripts tool display metadata
* refactor: trim legacy channel test seams
* fix: preserve channel compat after rebase
* fix: keep deprecated channel inbound aliases
* fix: preserve discord thread context visibility
* fix: clean final rebase conflicts
* fix: preserve channel message dispatch aliases
* fix: sync channel refactor after rebase
* fix: sync channel refactor after latest main
* fix: dedupe memory-core subagent mock
* test: align clickclack inbound dispatch assertions
* fix: sync plugin sdk api hash after rebase
* fix: sync channel refactor after latest main
* fix: sync plugin sdk api hash after rebase
* fix: sync plugin sdk api hash after latest main
* test: remove stale inbound context awaits
2026-05-27 09:26:06 +01:00
Yoshikazu Terashi
3104f36329
fix(cron): surface classified run failure causes
...
Surface classified cron failure causes without changing raw cron JSON error text.
- add additive CLI `cause` output for finished run entries with `errorReason`
- persist/backfill full `FailoverReason` values on cron run-log entries
- thread provider context through cron finalization so provider-specific failure causes stay accurate
- extend protocol/Swift models and regression coverage for CLI JSON, run-log parsing/search, alerts, and protocol conformance
Verification:
- `pnpm lint --threads=8`
- `pnpm protocol:check`
- `pnpm exec oxfmt --check src/cli/cron-cli/shared.ts src/cli/cron-cli/shared.cause-display.test.ts src/cron/run-log.ts src/cron/run-log.error-reason.test.ts src/cron/cron-protocol-conformance.test.ts src/cron/service.failure-alert.test.ts src/cron/service/timer.ts src/cron/service/ops.ts src/gateway/protocol/schema/cron.ts scripts/protocol-gen-swift.ts`
- `git diff --check`
- AWS Crabbox `cbx_8a6a65ab83b0` / `run_42b73a4a9750`: 4 files, 20 tests passed
- autoreview clean, no accepted/actionable findings
- GitHub CI/CodeQL/OpenGrep/Workflow Sanity green/skipped/neutral on `aa29b087b2587d0aed3d409de5e7a2c706c32cdf`
Co-authored-by: Yoshikazu Terashi <yterashi@peperon-works.jp >
2026-05-27 09:03:17 +01:00
Pablo Guardiola
0c867eef75
feat: expose plugin approval action metadata
...
Expose plugin approval action metadata so plugins can describe richer approval actions across gateway, SDK, channel, and UI surfaces.
2026-05-26 22:46:09 -07:00
Jesse Merhi
42f0822bfa
fix(exec): hide unavailable durable approval actions ( #86359 )
...
* fix(macos): align ask always approval actions
* fix(macos): harden approval prompt decisions
* fix(ui): satisfy approval action lint
* fix(infra): settle jsonl sockets on close
* fix(ui): explain unavailable durable approvals
* test(macos): document legacy approval fallback
2026-05-27 14:58:11 +10:00
joshavant
1600bcd44d
fix: mark ios watch app as watchkit app
2026-05-26 15:52:08 -07:00
joshavant
1daef79f80
fix: restore ios build stability
2026-05-26 15:37:32 -07:00
Peter Steinberger
f7e2d9bb47
ci(release): port 2026.5.25 release gate fixes
2026-05-26 21:19:51 +01:00
Peter Steinberger
ad71c427fa
chore: update tool display snapshot
2026-05-26 16:17:51 -04:00
Shakker
0f49bbbeb2
fix: dedupe transcripts tool display metadata
2026-05-26 21:09:18 +01:00
Vincent Koc
9b1b6d02fd
fix(agents): restore current guard checks ( #86934 )
2026-05-26 20:59:03 +01:00
Peter Steinberger
645cbf6c33
fix: add transcripts tool display metadata
2026-05-26 17:28:23 +01:00
Nimrod Gutman
19e4c37c37
feat(ios): show Talk voice mode ( #86798 )
...
Merged via squash.
Prepared head SHA: bd24da3f3b
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-05-26 17:31:31 +03:00
Peter Steinberger
592f192bf0
chore: remove unused tracked assets
2026-05-26 02:21:58 +01:00
Peter Steinberger
d00d0a21c2
chore: bump OpenClaw to 2026.5.26
2026-05-26 01:26:00 +01:00
Peter Steinberger
77d9ac30bb
refactor: reuse shared coercion helpers ( #86419 )
...
* refactor: share talk event metric extraction
* refactor: reuse shared coercion helpers
* refactor: reuse shared primitive guards
* refactor: reuse shared record guard
* refactor: reuse shared primitive helpers
* refactor: reuse shared string guards
* refactor: reuse shared non-empty string guard
* refactor: share plugin primitive coercion helpers
* refactor: reuse plugin coercion helpers
* refactor: reuse plugin coercion helpers in more plugins
* refactor: reuse channel coercion helpers
* refactor: reuse monitor coercion helpers
* refactor: reuse provider coercion helpers
* refactor: reuse core coercion helpers
* refactor: reuse runtime coercion helpers
* refactor: reuse helper coercion in codex paths
* refactor: reuse helper coercion in runtime paths
* refactor: reuse codex app-server coercion helpers
* refactor: reuse codex record helpers
* refactor: reuse migration and qa record helpers
* refactor: reuse feishu and core helper guards
* refactor: reuse browser and policy coercion helpers
* refactor: reuse memory wiki record helper
* refactor: share boolean coercion helpers
* refactor: reuse finite number coercion
* refactor: reuse trimmed string list helpers
* refactor: reuse string list normalization
* refactor: reuse remaining string list helpers
* refactor: reuse string entry normalizer
* refactor: share sorted string helpers
* refactor: share string list normalization
* test: preserve command registry browser imports
* refactor: reuse trimmed list helpers
* refactor: reuse string dedupe helpers
* refactor: reuse local dedupe helpers
* refactor: reuse more string dedupe helpers
* refactor: reuse command string dedupe helpers
* refactor: dedupe memory path lists with helper
* refactor: expose string dedupe helpers to plugins
* refactor: reuse core string dedupe helpers
* refactor: reuse shared unique value helpers
* refactor: reuse unique helpers in agent utilities
* refactor: reuse unique helpers in config plumbing
* refactor: reuse unique helpers in extensions
* refactor: reuse unique helpers in core utilities
* refactor: reuse unique helpers in qa plugins
* refactor: reuse unique helpers in memory plugins
* refactor: reuse unique helpers in channel plugins
* refactor: reuse unique helpers in core tails
* refactor: reuse unique helper in comfy workflow
* refactor: reuse unique helpers in test utilities
* refactor: expose unique value helper to plugins
* refactor: reuse unique helpers for numeric lists
* refactor: replace index dedupe filters
* refactor: reuse string entry normalization
* refactor: reuse string normalization in plugin helpers
* refactor: reuse string normalization in extension helpers
* refactor: reuse string normalization in channel parsers
* refactor: reuse string normalization in memory search
* refactor: reuse string normalization in provider parsers
* refactor: reuse string normalization in qa helpers
* refactor: reuse string normalization in infra parsers
* refactor: reuse string normalization in messaging parsers
* refactor: reuse string normalization in core parsers
* refactor: reuse string normalization in extension parsers
* refactor: reuse string normalization in remaining parsers
* refactor: reuse string normalization in final parser spots
* refactor: reuse string normalization in qa media helpers
* refactor: reuse normalization in provider and media lists
* refactor: reuse normalization for remaining set filters
* refactor: reuse normalization in policy allowlists
* refactor: reuse normalization in session and owner lists
* refactor: centralize primitive string lists
* refactor: reuse lowercase entry helpers
* refactor: reuse sorted string helpers
* refactor: reuse unique trimmed helpers
* refactor: reuse string normalization helpers
* refactor: reuse catalog string helpers
* refactor: reuse remaining string helpers
* refactor: simplify remaining list normalization
* refactor: reuse codex auth order normalization
* chore: refresh plugin sdk api baseline
* fix: make shared string sorting deterministic
* chore: refresh plugin sdk api baseline
* fix: align host env security ordering
2026-05-25 21:20:41 +01:00
Nimrod Gutman
9ca52ce3d9
[codex] improve iOS realtime talk mode ( #86355 )
...
Merged via squash.
Prepared head SHA: 3f5aedb265
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-05-25 13:27:37 +03:00
Ayaan Zaidi
deb54b5dab
fix(android): harden play media permission removal
2026-05-25 09:43:15 +05:30
Ayaan Zaidi
ffb02a5919
fix(android): stabilize realtime talk connection state
2026-05-25 09:01:07 +05:30
Ayaan Zaidi
70614f88cc
fix(android): keep talk mode on realtime relay
2026-05-25 09:01:07 +05:30
Ayaan Zaidi
d7aa1f31de
test(android): add gateway connect adb probe
2026-05-25 09:01:07 +05:30
Ayaan Zaidi
e52a3b31e4
test(android): add voice mode adb e2e harness
2026-05-25 09:01:06 +05:30
Peter Steinberger
c422e7240f
chore: release 2026.5.25
2026-05-25 00:46:47 +01:00
Ayaan Zaidi
c4525104e9
style(android): sharpen voice mode surfaces
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
955909c988
style(android): refine list surface spacing
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
63a2f69601
fix(android): prevent stale chat during session switches
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
d86ed21f3d
fix(android): hide internal chat content blocks
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
cc5eb972e6
feat(android): add pair new gateway action
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
94bc18ad75
fix(android): keep permission setup action visible
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
be9bb775a5
fix(android): complete qr setup operator handoff
2026-05-24 20:38:57 +05:30
Ayaan Zaidi
0b55a6363e
fix(android): align setup pairing scopes
2026-05-24 20:38:57 +05:30
Ayaan Zaidi
400d90a4da
style(android): sharpen v2 screen rhythm
2026-05-24 18:37:31 +05:30
Ayaan Zaidi
24ddd18ae1
fix(android): simplify gateway status copy
2026-05-24 18:24:51 +05:30
Ayaan Zaidi
cec52bd279
fix(android): route offline voice to gateway setup
2026-05-24 18:22:28 +05:30
Ayaan Zaidi
5c15859759
fix(android): stop operator chat subscription
2026-05-24 18:16:01 +05:30
Ayaan Zaidi
60e6ccdb8c
fix(android): smooth gateway pairing recovery
2026-05-24 18:05:40 +05:30
Ayaan Zaidi
01b284cac0
style(android): fix talk mode ktlint formatting
2026-05-24 17:51:53 +05:30
Peter Steinberger
0cba872e38
chore: bump version to 2026.5.24
2026-05-24 02:40:16 +01:00
Peter Steinberger
bbf9c45ba7
feat(talk): add realtime active-run control
...
Co-authored-by: Colin <colin@solvely.net >
2026-05-24 02:35:04 +01:00
njuboy
a1eb765f0a
fix(session-lock): enforce maxHoldMs in shouldReclaim during lock acquisition ( #85764 )
...
* fix(session-lock): enforce maxHoldMs in shouldReclaim during lock acquisition
- Adds optional maxHoldMs parameter to inspectLockPayload
- Inspect now marks locks as stale when held longer than maxHoldMs
- Passes maxHoldMs through inspectLockPayloadForSession
- acquireSessionWriteLock's shouldReclaim callback now passes maxHoldMs
This ensures that when a live process holds a lock for longer than
maxHoldMs (default 5min), other processes can reclaim it during
acquisition — matching the watchdog's existing enforcement.
Previously shouldReclaim only used staleMs (30min default), meaning
a lock held for 10+ minutes by a live PID would never be reclaimable,
causing 60s timeout failures and gateway freezes.
Closes #85762
* fix(session-lock): add dead-PID fast-path before retry loop
Adds a fast-path check at the top of acquireSessionWriteLock:
if the lock file's owner PID is dead, remove it immediately
before entering the retry loop. This saves up to timeoutMs (60s)
of futile waiting when the previous lock holder has died.
The shouldReclaim callback already handles this case, but only
iteratively through the retry loop. The fast-path eliminates
that unnecessary delay.
* fix(session-lock): enforce max hold during acquisition
* fix(session-lock): revalidate max hold safely
* fix(session-lock): honor holder max-hold policy
* fix(session-lock): keep cleanup from reclaiming live holders
* fix(session-lock): remove stale locks only when unchanged
* fix(session-lock): skip self-held max-hold reclaim
* fix(ci): refresh gateway protocol checks
---------
Co-authored-by: njuboy11 <njuboy11@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-24 00:38:01 +01:00
brokemac79
f4b92f5e6c
fix(agents): simplify subagent completion handoff
...
Simplify native subagent completion handoff and remove manual subagent control surfaces.
Co-authored-by: brokemac79 <martin_cleary@yahoo.co.uk >
2026-05-23 13:50:08 +01:00
Peter Steinberger
0556958d82
fix: use native mac settings sidebar
2026-05-22 22:53:32 +01:00
Peter Steinberger
bb5010b89a
docs: absorb docs sweep
...
Co-authored-by: Kai <kai@itskai.dev >
Co-authored-by: Weihang <gwh7078@163.com >
Co-authored-by: Scott Long <longstoryscott@gmail.com >
Co-authored-by: moejaberr <mjaber@uoguelph.ca >
Co-authored-by: huihui0822 <109355071+huihui0822@users.noreply.github.com >
2026-05-22 21:52:01 +01:00
Peter Steinberger
4df34cb790
chore(release): bump version to 2026.5.22
2026-05-22 21:25:16 +01:00
Peter Steinberger
c94c513714
refactor(ios): centralize setup auth parsing
...
Centralizes iOS setup-code auth parsing so token/bootstrap/password trimming and the bootstrap-clears-stale-credentials rule live in one parsed value.
Verification:
- `git diff --check`
- `swiftformat --lint --config config/swiftformat --unexclude apps/ios/Sources apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `swiftlint lint --config apps/ios/.swiftlint.yml apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- GitHub merge state clean for `fc35f31e95e73850a153149edaf471c10379dff2`
2026-05-22 17:54:53 +01:00