Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
312 commits
Select commit Hold shift + click to select a range
ca5e352
CLI: include commit hash in --version output (#39712)
altaywtf Mar 8, 2026
b7ad8fd
fix: fail closed talk provider selection
steipete Mar 8, 2026
87640f9
fix: align talk config secret schemas
steipete Mar 8, 2026
8d3d742
refactor: require canonical talk resolved payload
steipete Mar 8, 2026
dc5645d
test: add talk config contract fixtures
steipete Mar 8, 2026
16a5f0b
refactor: split talk gateway config loaders
steipete Mar 8, 2026
032778f
refactor: avoid checkout during prep head verification
steipete Mar 8, 2026
fa00b1d
refactor: dedupe prep branch push flow
steipete Mar 8, 2026
79c5c66
fix: treat model api drift as baseUrl refresh
steipete Mar 8, 2026
75e1521
refactor: extract pure models config merge helpers
steipete Mar 8, 2026
b41bcb0
refactor: expand provider capability registry
steipete Mar 8, 2026
bec3c0b
refactor: reuse one models.json read per write
steipete Mar 8, 2026
bce9d93
fix: publish models.json atomically
steipete Mar 8, 2026
1ec1f0f
refactor: scope prep push results to env artifacts
steipete Mar 8, 2026
95dff16
refactor: fold implicit provider injection into resolver
steipete Mar 8, 2026
d4ab731
fix(telegram): use message previews in DMs
obviyus Mar 8, 2026
b6520d7
CI: scope CodeQL JavaScript analysis
vincentkoc Mar 8, 2026
caf1b84
feat: allow compaction model override via config (#38753)
starbuck100 Mar 8, 2026
6c9b49a
fix(sessions): clear stale contextTokens on model switch (#38044)
yuweuii Mar 8, 2026
74624e6
fix: prefer bundled channel plugins over npm duplicates (#40094)
Takhoffman Mar 8, 2026
2970d72
docs: update Brave Search API docs for Feb 2026 plan restructuring (#…
remusao Mar 8, 2026
bdf9739
Add too-many-prs override label handling
Takhoffman Mar 8, 2026
5387faa
CI: satisfy provider merge fixture typing
vincentkoc Mar 8, 2026
f19761c
Tests: reduce web search secret-scan noise
vincentkoc Mar 8, 2026
6f4de3c
Web search: rename Perplexity auth source helper
vincentkoc Mar 8, 2026
615466b
Docs: use placeholder OpenRouter key in Perplexity guide
vincentkoc Mar 8, 2026
55465d8
Docs: use placeholder OpenRouter key in web tool docs
vincentkoc Mar 8, 2026
2ae5854
Fixtures: normalize talk config API key placeholder
vincentkoc Mar 8, 2026
d23d36a
Tests: lower entropy git commit fixtures
vincentkoc Mar 8, 2026
e19b367
Chore: widen xxxxx detect-secrets allowlist
vincentkoc Mar 8, 2026
aebfce7
Chore: refresh detect-secrets baseline
vincentkoc Mar 8, 2026
7856f57
Web search: allowlist Perplexity auth source type name
vincentkoc Mar 8, 2026
3b68d3f
Chore: refresh detect-secrets baseline after docs line changes
vincentkoc Mar 8, 2026
c5bba66
Chore: refresh detect-secrets baseline after final scan
vincentkoc Mar 8, 2026
4c71176
Chore: refresh detect-secrets baseline for Feishu docs
vincentkoc Mar 8, 2026
0b452a5
CLI: set local gateway mode in setup
vincentkoc Mar 8, 2026
efcca3d
Tests: format daemon lifecycle CLI coverage
vincentkoc Mar 8, 2026
e5c06dd
refactor: use model compat for anthropic tool payload normalization
steipete Mar 8, 2026
64d4d9a
refactor: move bundled extension gap allowlists into manifests
steipete Mar 8, 2026
749eb4e
refactor: thread config runtime env through models config
steipete Mar 8, 2026
8a18e25
refactor: split models registry loading from persistence
steipete Mar 8, 2026
ef2541c
refactor: centralize transcript provider quirks
steipete Mar 8, 2026
f66bd10
refactor: decompose implicit provider resolution
steipete Mar 8, 2026
e53d840
refactor: extract openai stream wrappers
steipete Mar 8, 2026
f493b03
refactor: validate bundled extension release metadata
steipete Mar 8, 2026
6094035
refactor: extract static provider builders
steipete Mar 8, 2026
52bc809
refactor: extract provider stream wrappers
steipete Mar 8, 2026
d307a7c
refactor: extract bundled extension manifest parser
steipete Mar 8, 2026
8ab762c
test: standardize hermetic provider env snapshots
steipete Mar 8, 2026
72ebaf9
test: add implicit provider matrix coverage
steipete Mar 8, 2026
404b152
fix(acp): persist spawned child session history (#40137)
mbelinky Mar 8, 2026
2ed644f
fix: require talk resolved payload
steipete Mar 8, 2026
cee2f3e
refactor: dedupe android talk config parsing
steipete Mar 8, 2026
371c53b
test: expand talk config contract fixtures
steipete Mar 8, 2026
fa580e3
refactor: split android talk voice resolution
steipete Mar 8, 2026
a007bed
test: isolate plugin loader from mocked module cache
steipete Mar 8, 2026
c70151e
test: isolate legacy plugin-sdk root import check
steipete Mar 8, 2026
dd74707
test: isolate git commit resolution fallbacks
steipete Mar 8, 2026
25d0aa7
refactor: simplify plugin sdk compatibility aliases
steipete Mar 8, 2026
f6cb771
refactor: centralize acp session resolution guards
steipete Mar 8, 2026
11be305
refactor: neutralize context engine runtime bridge
steipete Mar 8, 2026
6bd5735
refactor: split doctor config analysis helpers
steipete Mar 8, 2026
f399a81
refactor: extract ios watch reply coordinator
steipete Mar 8, 2026
6877574
fix: restore acp session meta narrowing
steipete Mar 8, 2026
c509515
refactor: extract qmd process runner
steipete Mar 8, 2026
3ada30e
fix: restore gate after rebase
steipete Mar 8, 2026
885199d
docs: add Browserbase as hosted remote CDP option
shrey150 Mar 2, 2026
0252bdc
Revert "docs: add Browserbase as hosted remote CDP option"
shrey150 Mar 2, 2026
641e1ba
docs: add Browserbase as hosted remote CDP option
shrey150 Mar 2, 2026
c0a988f
docs: fix duplicate heading lint error
shrey150 Mar 2, 2026
9a4610c
docs: fix Browserbase section to match official docs
shrey150 Mar 2, 2026
efa1204
docs: restore direct wss://connect.browserbase.com URL
shrey150 Mar 2, 2026
ae39a15
docs: fact-check Browserbase section against official docs
shrey150 Mar 2, 2026
3cf75f7
docs: simplify Browserbase section, drop pricing details
shrey150 Mar 2, 2026
7560201
feat(browser): support direct WebSocket CDP URLs for Browserbase
shrey150 Mar 2, 2026
f9c220e
test+docs: comprehensive coverage and generic framing
shrey150 Mar 2, 2026
8b2f40f
fix(browser): update existing tests for ws/wss protocol support
shrey150 Mar 2, 2026
c1f6edf
fix(browser): preserve wss:// cdpUrl in legacy default profile resolu…
shrey150 Mar 3, 2026
7b58507
chore: remove vendor-specific references from code comments
shrey150 Mar 5, 2026
4d904e7
style(browser): fix oxfmt formatting in config.ts
shrey150 Mar 6, 2026
9914b48
fix: preserve loopback ws cdp tab ops (#31085) (thanks @shrey150)
steipete Mar 8, 2026
4bfa800
fix: share context engine registry across bundled chunks (#40115)
jalehman Mar 8, 2026
dfa3605
fix(browser): rewrite 0.0.0.0 and [::] wildcard addresses in CDP WebS…
joeharouni Feb 16, 2026
dcdce83
fix: normalize wildcard remote CDP websocket URLs (#17760) (thanks @j…
steipete Mar 8, 2026
bcb0d1b
fix(browser): wait for extension tabs after relay drop (#32331)
Mar 3, 2026
0692f71
fix: wait for extension relay tab reconnects (#32461) (thanks @AaronW…
steipete Mar 8, 2026
436ae8a
fix(infra): make browser relay bind address configurable
mvanhorn Mar 8, 2026
e883d0b
fix(browser): add IP validation, fix upgrade handler for non-loopback…
mvanhorn Mar 8, 2026
d3111fb
fix: make browser relay bind address configurable (#39364) (thanks @m…
steipete Mar 8, 2026
9d467d1
docs: add WSL2 + Windows remote Chrome CDP troubleshooting (#39407) (…
steipete Mar 8, 2026
6b338dd
macos: add remote gateway token field for remote mode
cgdusek Mar 4, 2026
bd0e6a6
macos: clarify remote token placeholder text
cgdusek Mar 4, 2026
37e0b01
macos: add mode-toggle remote token sync coverage
cgdusek Mar 4, 2026
3b7a72b
tests: document remote token persistence across mode toggle
cgdusek Mar 4, 2026
3d3e8fe
fix(macos): preserve unsupported remote gateway tokens
ngutman Mar 8, 2026
92726d9
docs(changelog): credit macos remote token author
ngutman Mar 8, 2026
a613143
fix(macos): improve tailscale gateway discovery (#40167)
ngutman Mar 8, 2026
a075bab
refactor(browser): scope CDP sessions and harden stale target recovery
steipete Mar 8, 2026
0ecfd37
feat: add local backup CLI (#40163)
shichangs Mar 8, 2026
dadd7f9
fix(ci): scope secrets scan to branch changes
ngutman Mar 8, 2026
64dd23e
fix(ci): refresh detect-secrets baseline
ngutman Mar 8, 2026
09acbe6
fix: harden backup verify path validation
gumadeiras Mar 8, 2026
5889a2e
fix(plugin-sdk): lazily load legacy root alias
gumadeiras Mar 8, 2026
7dfd77a
fix(setup-podman): cd to TMPDIR before podman load to avoid cwd permi…
langdon Mar 8, 2026
38543d8
fix(cron): consolidate announce delivery, fire-and-forget trigger, an…
tyler6204 Mar 8, 2026
e806c47
Gateway/iOS: replay queued foreground actions safely after resume (#4…
mbelinky Mar 8, 2026
abb8f63
iOS: auto-load the scoped gateway canvas with safe fallback (#40282)
mbelinky Mar 8, 2026
da6592b
Update CHANGELOG.md
vincentkoc Mar 8, 2026
3ea3a1c
Update CHANGELOG.md
vincentkoc Mar 8, 2026
bd1fe4d
fix(run-openclaw-podman): add SELinux :Z mount option on enforcing/pe…
langdon Mar 8, 2026
3f3f66a
Docker: trim runtime image payload (#40307)
vincentkoc Mar 8, 2026
211f68f
docs(changelog): move post-2026.3.8 entries to unreleased (#40342)
vincentkoc Mar 8, 2026
a3dc4b5
fix(tui): improve color contrast for light-background terminals (#40345)
vincentkoc Mar 8, 2026
b2b99f0
fix(models): keep --all aligned with synthetic catalog rows
dorukardahan Mar 8, 2026
3da8882
test(models): refresh list assertions after main sync
dorukardahan Mar 8, 2026
0248570
fix: normalize openai-codex gpt-5.4 transport overrides
Sline Mar 7, 2026
3e70109
docs: add refactor cluster backlog
steipete Mar 8, 2026
8d7778d
refactor: dedupe plugin runtime stores
steipete Mar 8, 2026
32a6eae
refactor: share gateway argv parsing
steipete Mar 8, 2026
3f2f007
refactor: extract gateway port diagnostics helper
steipete Mar 8, 2026
52a253f
refactor: reuse broadcast route key construction
steipete Mar 8, 2026
5845b5b
refactor: share multi-account config schema fragments
steipete Mar 8, 2026
bf601db
test: dedupe brave llm-context rejection cases
steipete Mar 8, 2026
936ac22
refactor: share channel config adapter base
steipete Mar 8, 2026
661af2a
fix(agents): bootstrap runtime plugins before context-engine resolution
steipete Mar 8, 2026
d47aa6b
docs(changelog): remove rebase marker
steipete Mar 8, 2026
362248e
refactor: harden browser relay CDP flows
steipete Mar 8, 2026
4ff4ed7
fix(config): refresh runtime snapshot from disk after write. Fixes #3…
bbblending Mar 8, 2026
141738f
refactor: harden browser runtime profile handling
steipete Mar 9, 2026
dfc18b7
refactor(models): extract list row builders
steipete Mar 9, 2026
24b53fc
refactor(agents): extract provider model normalization
steipete Mar 9, 2026
c29b098
refactor(models): split models.json planning from writes
steipete Mar 9, 2026
ff4745f
refactor(models): split provider discovery helpers
steipete Mar 9, 2026
13bd3db
chore(docs): drop refactor cleanup tracker
steipete Mar 9, 2026
4f42c03
gateway: fix global Control UI 404s for symlinked wrappers and bundle…
velvet-shark Mar 9, 2026
6d5e142
Docker: improve build cache reuse (#40351)
vincentkoc Mar 9, 2026
eabda6e
fix(tests): correct security check failure
vincentkoc Mar 9, 2026
b341580
docs(changelog): correct Control UI contributor credit (#40420)
velvet-shark Mar 9, 2026
f624391
fix(models): use 1M context for openai-codex gpt-5.4 (#37876)
yuweuii Mar 9, 2026
4d501e4
fix(telegram): add download timeout to prevent polling loop hang (#40…
tysoncung Mar 9, 2026
e3df943
ACP: add optional ingress provenance receipts (#40473)
mbelinky Mar 9, 2026
adec8b2
alphabetize web search providers (#40259)
kesku Mar 9, 2026
a438ff4
fix(plugin-sdk): remove remaining bundled plugin src imports (opencla…
kyledh Mar 9, 2026
f114a5c
test: fix android talk config contract fixture
obviyus Mar 9, 2026
ef36cb8
chore(acpx): move runtime test fixtures to test-utils (openclaw#40548)
Takhoffman Mar 9, 2026
e8775cd
fix(agents): re-expose configured tools under restrictive profiles
steipete Mar 9, 2026
99cbda8
fix(media): accept reader read result type
steipete Mar 9, 2026
8befd88
build(protocol): sync generated swift models
steipete Mar 9, 2026
26e76f9
fix: dedupe inbound Telegram DM replies per agent (#40519)
obviyus Mar 9, 2026
d4a960f
fix(matrix): restore robust DM routing without the memberCount heuris…
derbronko Mar 9, 2026
a40c29b
Fix cron text announce delivery for Telegram targets (#40575)
obviyus Mar 9, 2026
4145018
fix: clear plugin discovery cache after plugin installation (openclaw…
GazeKingNuWu Mar 9, 2026
41eef15
test: fix windows secrets runtime ci
steipete Mar 9, 2026
69cd376
fix(daemon): enable LaunchAgent before bootstrap on restart
scoootscooob Mar 7, 2026
44beb7b
fix(daemon): also enable LaunchAgent in repairLaunchAgentBootstrap
scoootscooob Mar 8, 2026
1d6a2d0
fix(gateway): exit non-zero on restart shutdown timeout
dsantoreis Mar 9, 2026
4bb8104
test(secrets): skip ACL-dependent runtime snapshot tests on windows
Mar 9, 2026
31402b8
fix: add changelog for restart timeout recovery (#40380) (thanks @dsa…
steipete Mar 9, 2026
93775ef
fix(browser): enforce redirect-hop SSRF checks
steipete Mar 9, 2026
41e023a
fix(cron): restore owner-only tools for isolated runs
steipete Mar 9, 2026
03a6e3b
test(cron): cover owner-only tool availability
steipete Mar 9, 2026
88aee91
fix(msteams): enforce sender allowlists with route allowlists
steipete Mar 9, 2026
eea925b
fix(gateway): validate config before restart to prevent crash + macOS…
lml2468 Mar 5, 2026
6740cdf
fix(gateway): catch startup failure in run loop to prevent process ex…
lml2468 Mar 5, 2026
335223a
test: add runServiceStart config pre-flight tests (#35862)
lml2468 Mar 5, 2026
c79a0db
fix: address bot review feedback on #35862
lml2468 Mar 7, 2026
f184e78
fix: move config pre-flight before onNotLoaded in runServiceRestart (…
lml2468 Mar 9, 2026
f84adcb
fix: release gateway lock on restart failure + reply to Codex reviews
lml2468 Mar 9, 2026
cf796e2
fix(gateway): detect launchd supervision via XPC_SERVICE_NAME
dimat Feb 19, 2026
fd902b0
fix: detect launchd supervision via xpc service name (#20555) (thanks…
steipete Mar 9, 2026
cf3a479
fix(node-host): bind bun and deno approval scripts
steipete Mar 9, 2026
9abf014
fix(skills): pin validated download roots
steipete Mar 9, 2026
2767907
fix(telegram): abort in-flight getUpdates fetch on shutdown
Feb 22, 2026
6186f62
fix(telegram): use manual signal forwarding to avoid cross-realm Abor…
Feb 22, 2026
2d5e70f
fix: abort telegram getupdates on shutdown (#23950) (thanks @Gkinthec…
steipete Mar 9, 2026
79853ac
fix(cron): stagger missed jobs on restart to prevent gateway overload
rexlunae Feb 17, 2026
96d17f3
fix: stagger missed cron jobs on restart (#18925) (thanks @rexlunae)
steipete Mar 9, 2026
2e79d82
build: update app deps except carbon
steipete Mar 9, 2026
1d301f7
refactor: extract telegram polling session
steipete Mar 9, 2026
e86b38f
refactor: split cron startup catch-up flow
steipete Mar 9, 2026
17599a8
refactor: flatten supervisor marker hints
steipete Mar 9, 2026
f82931b
docs: reorder 2026.3.8 changelog by impact
steipete Mar 9, 2026
e2a1a4a
build: sync pnpm lockfile
steipete Mar 9, 2026
9631f46
chore: refresh secrets baseline
steipete Mar 9, 2026
2d55ad0
docs: move 2026.3.8 entries back to unreleased
steipete Mar 9, 2026
8d2d6db
test: fix Node 24+ test runner and subagent registry mocks
steipete Mar 9, 2026
912aa87
test: fix Windows fake runtime bin fixtures
steipete Mar 9, 2026
66c581c
fix: normalize windows runtime shim executables
steipete Mar 9, 2026
5fca4c0
chore: prepare 2026.3.8-beta.1 release
steipete Mar 9, 2026
250d3c9
chore: update appcast for 2026.3.8-beta.1
steipete Mar 9, 2026
cc0f30f
test: fix windows runtime and restart loop harnesses
steipete Mar 9, 2026
1d3dde8
fix(update): re-enable launchd service before updater bootstrap
steipete Mar 9, 2026
d0847ee
chore: prepare 2026.3.8 npm release
steipete Mar 9, 2026
3caab92
test: narrow gateway loop signal harness
steipete Mar 9, 2026
ce9e91f
fix(launchd): harden macOS launchagent install permissions
steipete Mar 9, 2026
7217b97
fix(onboard): avoid persisting talk fallback on fresh setup
steipete Mar 9, 2026
f9706fd
build: bump unreleased version to 2026.3.9
steipete Mar 9, 2026
6c579d7
fix: stabilize launchd paths and appcast secret scan
steipete Mar 9, 2026
f6d0712
build: sync plugin versions for 2026.3.9
steipete Mar 9, 2026
f2f561f
fix(ui): preserve control-ui auth across refresh (#40892)
velvet-shark Mar 9, 2026
51bae75
fix(kimi-coding): fix kimi tool format: use native Anthropic tool sch…
opriz Mar 9, 2026
98ea71a
fix(swiftformat): exclude HostEnvSecurityPolicy.generated.swift from …
JoshuaLelon Mar 9, 2026
fbf5d56
test(context-engine): add bundle chunk isolation tests for registry (…
dsantoreis Mar 9, 2026
54be30e
fix(agents): bound compaction retry wait and drain embedded runs on r…
cgdusek Mar 9, 2026
425bd89
Allow ACP sessions.patch lineage fields on ACP session keys (#40995)
xaeon2026 Mar 9, 2026
258b790
Update CONTRIBUTING.md
velvet-shark Mar 9, 2026
2cce459
Add Robin Waslander to maintainers
hydro13 Mar 9, 2026
4815dc0
Update CONTRIBUTING.md
velvet-shark Mar 9, 2026
eab39c7
fix(acp): map error states to end_turn instead of unconditional refus…
pejmanjohn Mar 9, 2026
14bbcad
fix(acp): propagate setSessionMode gateway errors to client (#41185)
pejmanjohn Mar 9, 2026
12702e1
plugins: harden global hook runner state (#40184)
vincentkoc Mar 9, 2026
7b88249
fix(telegram): bridge direct delivery to internal message:sent hooks …
vincentkoc Mar 9, 2026
d4e59a3
Cron: enforce cron-owned delivery contract (#40998)
mbelinky Mar 9, 2026
87d939b
Agents: add embedded error observations (#41336)
altaywtf Mar 9, 2026
d86647d
Doctor: fix non-interactive cron repair gating (#41386)
vincentkoc Mar 9, 2026
0bcddb3
iOS: reconnect gateway on foreground return (#41384)
mbelinky Mar 9, 2026
2b2e5e2
fix(cron): do not misclassify empty/NO_REPLY as interim acknowledgeme…
hydro13 Mar 9, 2026
5f90883
fix(auth): reset cooldown error counters on expiry to prevent infinit…
zerone0x Mar 9, 2026
ef95975
Gateway: add pending node work primitives (#41409)
mbelinky Mar 9, 2026
1bc59cc
Gateway: tighten node pending drain semantics (#41429)
mbelinky Mar 9, 2026
e6e4169
acp: fail honestly in bridge mode (#41424)
mbelinky Mar 9, 2026
d346f2d
acp: restore session context and controls (#41425)
mbelinky Mar 9, 2026
30340d6
Sandbox: import STATE_DIR from paths directly (#41439)
altaywtf Mar 9, 2026
8e3f3bc
acp: enrich streaming updates for ide clients (#41442)
mbelinky Mar 9, 2026
4aebff7
acp: forward attachments into ACP runtime sessions (#41427)
mbelinky Mar 9, 2026
0c7f078
acp: add regression coverage and smoke-test docs (#41456)
mbelinky Mar 9, 2026
0669b0d
fix(agents): probe single-provider billing cooldowns (#41422)
altaywtf Mar 9, 2026
3c34743
acp: harden follow-up reliability and attachments (#41464)
mbelinky Mar 9, 2026
531e836
Agents: add fallback error observations (#41337)
altaywtf Mar 9, 2026
56f787e
build(protocol): regenerate Swift models after pending node work sche…
mbelinky Mar 9, 2026
64746c1
fix(discord): apply effective maxLinesPerMessage in live replies (#40…
rbutera Mar 9, 2026
de4c3db
Logging: harden probe suppression for observations (#41338)
altaywtf Mar 9, 2026
c9a6c54
Add HTTP 499 to transient error codes for model fallback (#41468)
zeroasterisk Mar 9, 2026
4790e40
fix(plugins): expose model auth API to context-engine plugins (#41090)
xinhuagu Mar 9, 2026
b48291e
Exec: mark child command env with OPENCLAW_CLI (#41411)
vincentkoc Mar 9, 2026
c0cba7f
Fix one-shot exit hangs by tearing down cached memory managers (#40389)
Julbarth Mar 9, 2026
5a659b0
feat(ui): add chat infrastructure modules (slice 1 of dashboard-v2)
BunsDev Mar 9, 2026
d648dd7
Update ui/src/ui/chat/export.ts
BunsDev Mar 9, 2026
8a6cd80
fix(ui): address review feedback on chat infra slice
BunsDev Mar 9, 2026
8e412ba
Revert "fix(ui): address review feedback on chat infra slice"
BunsDev Mar 9, 2026
9f0a64f
Revert "Update ui/src/ui/chat/export.ts"
BunsDev Mar 9, 2026
6b87489
Revert "feat(ui): add chat infrastructure modules (slice 1 of dashboa…
BunsDev Mar 9, 2026
5decb00
fix(swiftformat): sync GatewayModels exclusions with OpenClawProtocol…
neeravmakwana Mar 10, 2026
1720174
fix: auto-close no-ci PR label and document triage labels
thewilloftheshadow Mar 10, 2026
25c2fac
fix(agents): fix Brave llm-context empty snippets (#41387)
zheliu2 Mar 10, 2026
9432a8b
test: allowlist detect-secrets fixture strings
obviyus Mar 10, 2026
de49a8b
Telegram: exec approvals for OpenCode/Codex (#37233)
huntharo Mar 10, 2026
731f1aa
test: avoid detect-secrets churn in observation fixtures
obviyus Mar 10, 2026
e74666c
build: raise extension openclaw peer floor
obviyus Mar 10, 2026
a0d0400
Merge remote-tracking branch 'upstream/main' into sync/upstream-2026-…
linfangw Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .detect-secrets.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,5 @@ pattern = grep -q 'N[O]DE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache' ~/.bash
pattern = env: \{ MISTRAL_API_K[E]Y: "sk-\.\.\." \},
pattern = "ap[i]Key": "xxxxx",
pattern = ap[i]Key: "A[I]za\.\.\.",
# Sparkle appcast signatures are release metadata, not credentials.
pattern = sparkle:edSignature="[A-Za-z0-9+/=]+"
18 changes: 18 additions & 0 deletions .github/codeql/codeql-javascript-typescript.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: openclaw-codeql-javascript-typescript

paths:
- src
- extensions
- ui/src
- skills

paths-ignore:
- apps
- dist
- docs
- "**/node_modules"
- "**/coverage"
- "**/*.test.ts"
- "**/*.test.tsx"
- "**/*.e2e.test.ts"
- "**/*.e2e.test.tsx"
7 changes: 7 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,13 @@ What you personally verified (not just CI), and how:
- Edge cases checked:
- What you did **not** verify:

## Review Conversations

- [ ] I replied to or resolved every bot review conversation I addressed in this PR.
- [ ] I left unresolved only the conversations that still need reviewer or maintainer judgment.

If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.

## Compatibility / Migration

- Backward compatible? (`Yes/No`)
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/auto-response.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ jobs:
},
{
label: "r: no-ci-pr",
close: true,
message:
"Please don't make PRs for test failures on main.\n\n" +
"The team is aware of those and will handle them directly on the codebase, not only fixing the tests but also investigating what the root cause is. Having to sift through test-fix-PRs (including some that have been out of date for weeks...) on top of that doesn't help. There are already way too many PRs for humans to manage; please don't make the flood worse.\n\n" +
Expand Down Expand Up @@ -261,6 +262,8 @@ jobs:
};

const triggerLabel = "trigger-response";
const activePrLimitLabel = "r: too-many-prs";
const activePrLimitOverrideLabel = "r: too-many-prs-override";
const target = context.payload.issue ?? context.payload.pull_request;
if (!target) {
return;
Expand Down Expand Up @@ -448,6 +451,10 @@ jobs:
return;
}

if (pullRequest && labelSet.has(activePrLimitOverrideLabel)) {
labelSet.delete(activePrLimitLabel);
}

const rule = rules.find((item) => labelSet.has(item.label));
if (!rule) {
return;
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,12 @@ jobs:
with:
submodules: false

- name: Ensure secrets base commit
uses: ./.github/actions/ensure-base-commit
with:
base-sha: ${{ github.event_name == 'push' && github.event.before || github.event.pull_request.base.sha }}
fetch-ref: ${{ github.event_name == 'push' && github.ref_name || github.event.pull_request.base.ref }}

- name: Setup Node environment
uses: ./.github/actions/setup-node-env
with:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jobs:
needs_swift_tools: false
needs_manual_build: false
needs_autobuild: false
config_file: ./.github/codeql/codeql-javascript-typescript.yml
- language: actions
runs_on: blacksmith-16vcpu-ubuntu-2404
needs_node: false
Expand All @@ -36,6 +37,7 @@ jobs:
needs_swift_tools: false
needs_manual_build: false
needs_autobuild: false
config_file: ""
- language: python
runs_on: blacksmith-16vcpu-ubuntu-2404
needs_node: false
Expand All @@ -44,6 +46,7 @@ jobs:
needs_swift_tools: false
needs_manual_build: false
needs_autobuild: false
config_file: ""
- language: java-kotlin
runs_on: blacksmith-16vcpu-ubuntu-2404
needs_node: false
Expand All @@ -52,6 +55,7 @@ jobs:
needs_swift_tools: false
needs_manual_build: true
needs_autobuild: false
config_file: ""
- language: swift
runs_on: macos-latest
needs_node: false
Expand All @@ -60,6 +64,7 @@ jobs:
needs_swift_tools: true
needs_manual_build: true
needs_autobuild: false
config_file: ""
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -95,6 +100,7 @@ jobs:
with:
languages: ${{ matrix.language }}
queries: security-and-quality
config-file: ${{ matrix.config_file || '' }}

- name: Autobuild
if: matrix.needs_autobuild
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ jobs:
labels: ${{ steps.labels.outputs.value }}
provenance: false
push: true
cache-from: type=gha,scope=docker-release-amd64
cache-to: type=gha,mode=max,scope=docker-release-amd64

- name: Build and push amd64 slim image
id: build-slim
Expand All @@ -112,6 +114,8 @@ jobs:
labels: ${{ steps.labels.outputs.value }}
provenance: false
push: true
cache-from: type=gha,scope=docker-release-amd64
cache-to: type=gha,mode=max,scope=docker-release-amd64

# Build arm64 images (default + slim share the build stage cache)
build-arm64:
Expand Down Expand Up @@ -200,6 +204,8 @@ jobs:
labels: ${{ steps.labels.outputs.value }}
provenance: false
push: true
cache-from: type=gha,scope=docker-release-arm64
cache-to: type=gha,mode=max,scope=docker-release-arm64

- name: Build and push arm64 slim image
id: build-slim
Expand All @@ -213,6 +219,8 @@ jobs:
labels: ${{ steps.labels.outputs.value }}
provenance: false
push: true
cache-from: type=gha,scope=docker-release-arm64
cache-to: type=gha,mode=max,scope=docker-release-arm64

# Create multi-platform manifests
create-manifest:
Expand Down
28 changes: 27 additions & 1 deletion .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,7 @@ jobs:
}

const activePrLimitLabel = "r: too-many-prs";
const activePrLimitOverrideLabel = "r: too-many-prs-override";
const activePrLimit = 10;
const labelColor = "B60205";
const labelDescription = `Author has more than ${activePrLimit} active PRs in this repo`;
Expand All @@ -221,12 +222,37 @@ jobs:
return;
}

const currentLabels = await github.paginate(github.rest.issues.listLabelsOnIssue, {
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pullRequest.number,
per_page: 100,
});

const labelNames = new Set(
(pullRequest.labels ?? [])
currentLabels
.map((label) => (typeof label === "string" ? label : label?.name))
.filter((name) => typeof name === "string"),
);

if (labelNames.has(activePrLimitOverrideLabel)) {
if (labelNames.has(activePrLimitLabel)) {
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pullRequest.number,
name: activePrLimitLabel,
});
} catch (error) {
if (error?.status !== 404) {
throw error;
}
}
}
return;
}

const ensureLabelExists = async () => {
try {
await github.rest.issues.getLabel({
Expand Down
6 changes: 5 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,13 @@ repos:
- --exclude-lines
- 'env: \{ MISTRAL_API_K[E]Y: "sk-\.\.\." \},'
- --exclude-lines
- '"ap[i]Key": "xxxxx",'
- '"ap[i]Key": "xxxxx"(,)?'
- --exclude-lines
- 'ap[i]Key: "A[I]za\.\.\.",'
- --exclude-lines
- '"ap[i]Key": "(resolved|normalized|legacy)-key"(,)?'
- --exclude-lines
- 'sparkle:edSignature="[A-Za-z0-9+/=]+"'
# Shell script linting
- repo: https://github.com/koalaman/shellcheck-precommit
rev: v0.11.0
Expand Down
Loading
Loading