Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2508 commits
Select commit Hold shift + click to select a range
1921516
fix(status): skip plugin compatibility scan on empty json path
Takhoffman Mar 19, 2026
009f494
fix(plugin-sdk): stop library import warmup side effects
vincentkoc Mar 19, 2026
f397157
fix(plugins): fail strict bootstrap on plugin load errors
vincentkoc Mar 19, 2026
9486f6e
fix(build): suppress singleton smoke deprecation noise
vincentkoc Mar 19, 2026
8e132ae
Hardening: refresh stale device pairing requests and pending metadata…
joshavant Mar 19, 2026
0f69b5c
fix(status): keep startup paths free of plugin warmup
vincentkoc Mar 19, 2026
c38295c
test(ci): tighten startup memory thresholds
vincentkoc Mar 19, 2026
aa172f2
fix(matrix): keep runtime api import-safe
vincentkoc Mar 19, 2026
4162877
Tests: trim command secret gateway imports (#50663)
huntharo Mar 19, 2026
d518260
fix(status): slim json startup path
vincentkoc Mar 19, 2026
a953cb5
Matrix: fix runtime API duplicate exports
gumadeiras Mar 20, 2026
6309b1d
Gateway: preserve interactive pairing visibility on supersede
joshavant Mar 20, 2026
c95d1c1
fix(cron): avoid async context token warmup in isolated runs
shakkernerd Mar 20, 2026
55e12bd
fix(plugins): stabilize bundle MCP path assertions
shakkernerd Mar 20, 2026
ac18a73
fix(ci): cap top-level test lane concurrency
shakkernerd Mar 20, 2026
f91fad1
fix(ci): isolate high-heap unit suites from unit-fast
shakkernerd Mar 20, 2026
a19f058
fix(test): mock zalouser runtime in outbound payload contract
shakkernerd Mar 20, 2026
e009920
fix(ci): isolate remaining stale OOM hotspots
vincentkoc Mar 20, 2026
cf2a66b
chore(docs): refresh generated config baseline
shakkernerd Mar 20, 2026
a2174f1
fix(hooks): skip repo check outside workspace
vincentkoc Mar 20, 2026
1fb30fb
fix(test): stub pnpm in pre-commit hook fixture
shakkernerd Mar 20, 2026
61ae7e0
fix(ci): isolate remaining unit-fast OOM hotspots
shakkernerd Mar 20, 2026
65594f9
Gateway: unify plugin interactive callback state (#50722)
huntharo Mar 20, 2026
f1ce679
Discord: reconcile native commands without restart churn (#46597)
huntharo Mar 20, 2026
4f00b3b
feat(xiaomi): add MiMo V2 Pro and MiMo V2 Omni models, switch to Open…
DJjjjhao Mar 20, 2026
de9f2dc
Gateway: harden OpenResponses file-context escaping (#50782)
joshavant Mar 20, 2026
ab97cc3
Matrix: add allowBots bot-to-bot policy
gumadeiras Mar 20, 2026
f62be0d
Matrix: guard private-network homeserver access
gumadeiras Mar 20, 2026
9c21637
Docs: clarify Matrix private-network homeserver setup
gumadeiras Mar 20, 2026
2d24f35
fix(plugins): add bundled web search provider metadata
shakkernerd Mar 20, 2026
218f8d7
fix(secrets): use bundled web search fast path during reload
shakkernerd Mar 20, 2026
62e6eb1
chore(docs): refresh generated config baseline
shakkernerd Mar 20, 2026
03c86b3
fix(secrets): mock bundled web search providers in runtime tests
shakkernerd Mar 20, 2026
4aef830
fix(matrix): mock configured bot ids in monitor tests
shakkernerd Mar 20, 2026
991eb2e
fix(ci): isolate missing unit-fast heap hotspots
shakkernerd Mar 20, 2026
80110c5
fix(telegram): warn when setup leaves dmPolicy as pairing without all…
ernestodeoliveira Mar 20, 2026
1ba70c3
Docs: switch MiniMax defaults to M2.7
gumadeiras Mar 20, 2026
914fc26
Docs(matrix): add changelog entry for allowBots/allowPrivateNetwork
gumadeiras Mar 20, 2026
b36e456
feat: add Tavily as a bundled web search plugin with search and extra…
lakshyaag-tavily Mar 20, 2026
84ee6fb
feat(tts): add in-memory speech synthesis
obviyus Mar 20, 2026
4ac355b
feat(gateway): add talk speak rpc
obviyus Mar 20, 2026
f7fe75a
refactor(android): simplify talk config parsing
obviyus Mar 20, 2026
e3afaca
refactor(android): route talk playback through gateway
obviyus Mar 20, 2026
4386a0a
refactor(android): remove legacy elevenlabs talk stack
obviyus Mar 20, 2026
4a0341e
fix(review): address talk cleanup feedback
obviyus Mar 20, 2026
47e412b
fix(review): preserve talk directive overrides
obviyus Mar 20, 2026
61965e5
fix: route Android Talk synthesis through the gateway (#50849)
obviyus Mar 20, 2026
2afd657
fix: preserve talk provider and speaking state
obviyus Mar 20, 2026
a73e517
build(protocol): regenerate swift talk models
obviyus Mar 20, 2026
fe863c5
chore(ci): seed unit memory hotspot manifest
shakkernerd Mar 20, 2026
9c7da58
fix(ci): auto-isolate memory-heavy unit tests
shakkernerd Mar 20, 2026
254ea0c
fix(ci): parse GitHub Actions memory hotspot logs
shakkernerd Mar 20, 2026
d689b3f
fix(ci): prioritize memory-heavy unit scheduling
shakkernerd Mar 20, 2026
3db2cfe
chore(ci): refresh unit memory hotspot manifest
shakkernerd Mar 20, 2026
829bece
fix(ci): avoid Windows shell arg overflow in unit-fast
shakkernerd Mar 20, 2026
b90eef5
fix(ci): widen Linux memory-hotspot isolation cap
shakkernerd Mar 20, 2026
4d9ae58
chore(ci): refresh Linux unit memory hotspots from PR failures
shakkernerd Mar 20, 2026
94ab044
fix(ci): split unit-fast into bounded shared-worker lanes
shakkernerd Mar 20, 2026
06fc498
chore(docs): refresh secretref credential matrix
shakkernerd Mar 20, 2026
5036ed2
fix(secrets): cover tavily in runtime coverage tests
shakkernerd Mar 20, 2026
8d805a0
fix(zalouser): decouple tests from zca-js runtime
shakkernerd Mar 20, 2026
f2849c2
fix(feishu): stabilize lifecycle replay tests
shakkernerd Mar 20, 2026
098a0d0
chore(docs): refresh generated config baseline
shakkernerd Mar 20, 2026
9af42c6
fix(config): persist doctor compatibility migrations
vincentkoc Mar 20, 2026
36a59d5
fix(discord): drop stale carbon deploy option
vincentkoc Mar 20, 2026
ce878a9
fix(test): batch unit-fast worker lifetimes
vincentkoc Mar 20, 2026
6c7526f
fix(web-search): share unsupported filter handling
vincentkoc Mar 20, 2026
96f21c3
fix(tools): persist remaining doctor compatibility aliases
vincentkoc Mar 20, 2026
a562fb5
refactor(web-search): share scoped provider config plumbing
vincentkoc Mar 20, 2026
709c730
fix: standardize 'MS Teams' to 'Microsoft Teams' across docs (#50863)
bugkill3r Mar 20, 2026
397b0d8
fix(tui): split assistant error formatting seam
vincentkoc Mar 20, 2026
e56dde8
fix(web-search): split runtime provider resolution
vincentkoc Mar 20, 2026
3a72d2d
fix(config): split config doc baseline coverage
vincentkoc Mar 20, 2026
dfc157e
test(plugins): trim loader regression harness churn
vincentkoc Mar 20, 2026
ecec0d5
build(android): add play and third-party release flavors
obviyus Mar 20, 2026
f09f985
feat(android): hide restricted capabilities in play builds
obviyus Mar 20, 2026
0c2e6fe
ci(android): use explicit flavor debug tasks
obviyus Mar 20, 2026
8ac4d13
style(docs): format plugin table
obviyus Mar 20, 2026
faa8e27
fix(ci): share compat matrix and restore skill python gating
vincentkoc Mar 20, 2026
9f8af36
fix(ci): split slow plugin loader regression test
vincentkoc Mar 20, 2026
f1e012e
fix(telegram): serialize thread binding persists
vincentkoc Mar 20, 2026
d25f6f1
fix(ci): restore full loader regression coverage
vincentkoc Mar 20, 2026
68a274c
fix(ci): isolate loader git-path regression env roots
vincentkoc Mar 20, 2026
f0a0a6a
test(plugins): isolate git path alias regression
vincentkoc Mar 20, 2026
95f890a
test(plugins): relax jiti error string assertions
vincentkoc Mar 20, 2026
0fae764
test(plugins): use sync jiti regression path
vincentkoc Mar 20, 2026
dc06e4f
ci: collapse extra workflow guards into check-additional
vincentkoc Mar 20, 2026
d774b3f
fix(ci): isolate jiti-mocked test files
vincentkoc Mar 20, 2026
df536c3
test(signal): harden tool-result infra-runtime mock
vincentkoc Mar 20, 2026
6cb2fc5
Community plugins - Add QQbot (#29898)
sliverp Mar 20, 2026
192f859
Add Community plugins - openclaw-dingtalk (#29913)
sliverp Mar 20, 2026
57f1cf6
fix(gateway): skip seq-gap broadcast for stale post-lifecycle events …
caesargattuso Mar 20, 2026
3bda64f
perf(android): reduce tab-switch CPU churn
obviyus Mar 20, 2026
4c60956
build(android): update Gradle tooling
obviyus Mar 20, 2026
c6968c3
feat(compaction): truncate session JSONL after compaction to prevent …
thirumaleshp Mar 20, 2026
99e5361
docs: add delegate architecture guide for organizational deployments …
fabianwilliams Mar 20, 2026
dc86b6d
docs(azure): replace ARM template deployment with pure az CLI command…
johnsonshi Mar 20, 2026
5607da9
feat: pass modelId to context engine assemble() (#47437)
jscianna Mar 20, 2026
897cda7
msteams: fix sender allowlist bypass when route allowlist is configur…
sudie-codes Mar 20, 2026
7c3af37
msteams: extend MSTeamsAdapter and MSTeamsActivityHandler types; impl…
sudie-codes Mar 20, 2026
06845a1
fix(msteams): resolve Graph API chat ID for DM file uploads (#49585)
sudie-codes Mar 20, 2026
ba1bb85
refactor: install optional channels for directory
steipete Mar 19, 2026
f6948ce
refactor: shrink sdk helper surfaces
steipete Mar 20, 2026
50ce9ac
refactor: privatize bundled sdk facades
steipete Mar 20, 2026
dbc9d3d
fix(plugin-sdk): restore root diagnostic compat
vincentkoc Mar 20, 2026
d3ffa1e
refactor(errors): share api error payload parsing
vincentkoc Mar 20, 2026
faa9faa
refactor(web-search): share provider clients and config helpers
vincentkoc Mar 20, 2026
9b6f286
refactor(channels): share route format and binding helpers
vincentkoc Mar 20, 2026
aa78a0c
refactor(plugin-sdk): formalize runtime contract barrels
vincentkoc Mar 20, 2026
4c614c2
fix: restore local gate
steipete Mar 20, 2026
cb89325
fix: restore latest main gate
steipete Mar 20, 2026
18fa299
fix: restore plugin sdk runtime barrels
steipete Mar 20, 2026
fcabecc
fix: remove duplicate plugin sdk exports
steipete Mar 20, 2026
87eeab7
docs: add plugin SDK migration guide, link deprecation warning to docs
vincentkoc Mar 20, 2026
93fbe26
fix(config): tighten json and json5 parsing paths (#51153)
vincentkoc Mar 20, 2026
85a5d64
test: speed up isolated test lanes
steipete Mar 20, 2026
4266e26
fix: emit message:sent hook on Telegram streaming preview finalizatio…
bugkill3r Mar 20, 2026
4838e39
Tests: default CI unit lanes to forks (#51145)
huntharo Mar 20, 2026
a39c440
fix(config): share json compatibility parsing
vincentkoc Mar 20, 2026
96e1c37
docs: improve Building Extensions with Mintlify Steps, Accordion, and…
vincentkoc Mar 20, 2026
fa275fd
docs: refresh config baseline
steipete Mar 20, 2026
06311f8
docs: escape angle brackets in sdk-migration to fix Mintlify MDX build
vincentkoc Mar 20, 2026
58889f9
docs: set sidebar title to SDK Migration
vincentkoc Mar 20, 2026
fb3550e
test(sessions): stabilize pruning integration setup
vincentkoc Mar 20, 2026
a2e1991
refactor(plugin-sdk): route bundled runtime barrels through public su…
vincentkoc Mar 20, 2026
5b7ae24
test(msteams): align adapter doubles with interfaces
vincentkoc Mar 20, 2026
42801f6
fix(plugin-sdk): dedupe rebased zalo export entries
vincentkoc Mar 20, 2026
23a119c
test(msteams): clear remaining rebase conflict hunk
vincentkoc Mar 20, 2026
1cabb05
test: lazy-load default setup registry
steipete Mar 20, 2026
ad4536f
docs: rename Extensions to Plugins, rewrite building guide as capabil…
vincentkoc Mar 20, 2026
c64893a
fix(config): use static channel metadata in docs baseline (#51161)
vincentkoc Mar 20, 2026
4e45a66
fix(telegram): prevent silent wrong-bot routing when accountId not in…
hclsys Mar 20, 2026
35ac1f6
fix: add changelog for telegram account routing fix (#50853) (thanks …
obviyus Mar 20, 2026
5f600e1
docs: restructure Tools & Plugins section, rename building-extensions…
vincentkoc Mar 20, 2026
e18ab85
docs(agents): clarify plugin nomenclature
vincentkoc Mar 20, 2026
3d097f1
docs: rewrite tools landing page with Tools/Skills/Plugins explainer …
vincentkoc Mar 20, 2026
4edab30
docs: reorder Tools & Plugins nav, move Media/devices to Gateway tab,…
vincentkoc Mar 20, 2026
4ce9df1
Merge branch 'main' into docs(plugin)/apify-plugin-docs
protoss70 Mar 20, 2026
a4a5ed8
docs: retitle plugin internals/agent-tools/cookbook, collapse Browser…
vincentkoc Mar 20, 2026
fb293fa
docs: rewrite plugins install/configure page with Steps, Accordions, …
vincentkoc Mar 20, 2026
e4d0fdc
docs: rewrite community plugins page with Cards, Steps, and quality b…
vincentkoc Mar 20, 2026
16e055c
restore extension-api backward compatibility with migration warning
Takhoffman Mar 20, 2026
2e0b445
docs: use expandable Accordions for community plugins, keep A-Z order
vincentkoc Mar 20, 2026
483926a
docs: rewrite sdk-migration and bundles, fold agent-tools into buildi…
vincentkoc Mar 20, 2026
740b345
docs: sort Tools nav group alphabetically
vincentkoc Mar 20, 2026
b26edfe
test: trim plugin-heavy unit test imports
steipete Mar 20, 2026
083f825
docs: expand community plugins (always visible), add Codex App Server…
vincentkoc Mar 20, 2026
a740136
test: trim more channel-heavy startup in unit tests
steipete Mar 20, 2026
39053bd
test: decouple zalo outbound payload contract from channel runtime
steipete Mar 20, 2026
5408a3d
docs(contributing): clarify accepted PR scope
vincentkoc Mar 20, 2026
a05da76
Matrix: dedupe replayed inbound events on restart (#50922)
gumadeiras Mar 20, 2026
7b00a06
test: stabilize gateway alias coverage
steipete Mar 20, 2026
46854a8
test(plugin-sdk): cover legacy root diagnostic listeners
vincentkoc Mar 20, 2026
62ddc9d
refactor: consolidate plugin sdk surface
steipete Mar 20, 2026
f6b3245
fix: pass full sdk gate
steipete Mar 20, 2026
916f496
Add Grok 4.20 reasoning and non-reasoning to xAI model catalog (#50772)
Jaaneek Mar 20, 2026
acf3228
test: trim more extension startup from unit tests
steipete Mar 20, 2026
3da6671
Web: derive search provider metadata from plugin contracts (#50935)
gumadeiras Mar 20, 2026
a20ba74
test: add SSRF guard coverage for URL credential bypass vectors (#50523)
teddytennant Mar 20, 2026
1b18742
test: peel more slow unit files out of unit-fast
steipete Mar 20, 2026
23fef04
test: fix setup finalize web search mocks (#51253)
jalehman Mar 20, 2026
fa71ad7
test: repair latest-main web search regressions
steipete Mar 20, 2026
5a5e84c
test: drop duplicate web search helper
steipete Mar 20, 2026
11d71ca
pairing: keep setup codes bootstrap-token only (#51259)
vincentkoc Mar 20, 2026
c7134e6
LINE: harden Express webhook parsing to verified raw body (#51202)
joshavant Mar 20, 2026
7abfff7
Exec: harden host env override handling across gateway and node (#51207)
joshavant Mar 20, 2026
09cf6d8
test: batch thread-only unit lanes
steipete Mar 20, 2026
aed1f6d
test: parallelize low-profile deferred lanes
steipete Mar 20, 2026
994b42a
test: parallelize safe audit case tables
steipete Mar 20, 2026
cadbaa3
test: widen low-profile scheduler peeling
steipete Mar 20, 2026
c397298
fix: sanitize malformed replay tool calls (#50005)
jalehman Mar 20, 2026
39a4fe5
test: normalize perf manifest paths
steipete Mar 20, 2026
fac64c2
test: widen unit timing snapshot coverage
steipete Mar 20, 2026
42ca447
test(openrouter): add live plugin coverage
vincentkoc Mar 20, 2026
6e20c4b
feat: add anthropic-vertex provider for Claude via GCP Vertex AI (#43…
sallyom Mar 20, 2026
f1802a5
test(openai): add live provider probe
vincentkoc Mar 20, 2026
d1d46c6
test(openai): broaden live model coverage
vincentkoc Mar 20, 2026
d54ebed
test(openai): add plugin entry live coverage
vincentkoc Mar 20, 2026
e635ced
test(openai): cover bundle media surfaces
vincentkoc Mar 20, 2026
2364e45
test: align extension runtime mocks with plugin-sdk (#51289)
jalehman Mar 20, 2026
0a842de
test: widen low-profile singleton batching
steipete Mar 20, 2026
6526074
test: trim singleton cold-start reloads
steipete Mar 20, 2026
751d5b7
feat: add context engine transcript maintenance (#51191)
jalehman Mar 20, 2026
6a6f1b5
changelog (#51322)
sallyom Mar 20, 2026
e78129a
feat(context-engine): pass incoming prompt to assemble (#50848)
danhdoan Mar 21, 2026
c3be293
fix(slack): unify slash conversation-runtime mock
vincentkoc Mar 21, 2026
b71686a
Enhance web search provider config validation and compatibility handling
tyler6204 Mar 19, 2026
5e417b4
Outbound: skip broadcast channel scan when channel is explicit
tyler6204 Mar 19, 2026
598f182
fix(subagent): include partial progress when subagent times out (#40700)
imwyvern Mar 21, 2026
6b4c24c
feat(telegram): support custom apiRoot for alternative API endpoints …
Cypherm Mar 21, 2026
d78e13f
fix(agent): clarify embedded transport errors (#51419)
scoootscooob Mar 21, 2026
9fb7845
fix(discord): clarify startup readiness log (#51425)
scoootscooob Mar 21, 2026
5bb5d7d
CLI: respect full timeout for loopback gateway probes (#47533)
MonkeyLeeT Mar 21, 2026
43513cd
test: refresh plugin import boundary baseline (#51434)
scoootscooob Mar 21, 2026
8a05c05
fix: defer plugin runtime globals until use
obviyus Mar 21, 2026
ce6a481
test: fix whatsapp config-runtime mock store path
obviyus Mar 21, 2026
2fd3728
iOS: improve QR pairing flow (#51359)
BunsDev Mar 21, 2026
e9f715f
UI: fix and optimize overview log panels (#51477)
BunsDev Mar 21, 2026
3f7f2c8
Voice Call: enforce spoken-output contract and fix stream TTS silence…
joshavant Mar 21, 2026
cdf49f0
zalo: use photo_url for inbound images (#51543)
darkamenosa Mar 21, 2026
466debb
feat(telegram): auto-rename DM topics on first message (#51502)
Lukavyi Mar 21, 2026
42e708d
fix(agents): register simple completion transports
obviyus Mar 21, 2026
5137a51
feat(github-copilot): resolve any model ID dynamically (#51325)
fuller-stack-dev Mar 21, 2026
8d73335
CI: run config docs drift check on PRs (#51618)
huntharo Mar 21, 2026
6db6e11
fix(ui): use current session context usage in chat notice
Takhoffman Mar 21, 2026
7bf4374
fix: trim config validation startup imports (#51574)
RichardCao Mar 21, 2026
c9449d7
feat(gateway): persist webchat inbound images to disk (#51324)
fuller-stack-dev Mar 21, 2026
35e6310
Docs: refresh generated config baseline (#51625)
huntharo Mar 21, 2026
4af79f2
fix ci main cancellation behavior
Takhoffman Mar 21, 2026
59c4059
Add Community plugins - Wecom (#29905)
sliverp Mar 21, 2026
11aff6e
fix(auth): support remote Codex OAuth manual input (#51631)
cash-echo-bot Mar 21, 2026
f10d054
refactor: route discord runtime through plugin sdk (#51444)
scoootscooob Mar 21, 2026
a3a5cad
fix(onboarding): hide image-only auth providers
vincentkoc Mar 21, 2026
1643d15
fix(matrix): pass agentId to buildMentionRegexes for agent-level ment…
dinakars777 Mar 21, 2026
5eb99a9
Infra: unify plugin split runtime state (#50725)
huntharo Mar 21, 2026
1698726
chore(deps): dedupe pnpm lockfile
vincentkoc Mar 21, 2026
d4c50fd
Merge branch 'main' into docs(plugin)/apify-plugin-docs
protoss70 Mar 21, 2026
1169d51
fix(onboarding): clarify web search key copy
vincentkoc Mar 21, 2026
2b68d20
feat: notify user when context compaction starts and completes (#38805)
zidongdesign Mar 21, 2026
265386c
feat(plugins): register claude bundle commands natively
vincentkoc Mar 21, 2026
17cdf3e
docs(plugin): add Apify and WeChat to community plugins
protoss70 Mar 21, 2026
4e7ca1d
docs(plugin): remove WeChat entry, keep only Apify addition
protoss70 Mar 21, 2026
c2feacd
Merge branch 'main' into docs(plugin)/apify-plugin-docs
protoss70 Mar 21, 2026
a27aeea
docs(changelog): note web search key copy
vincentkoc Mar 21, 2026
ffce904
fix(check): format onboard search test
vincentkoc Mar 21, 2026
4c4eea9
fix(configure): tighten fresh setup provider UX
vincentkoc Mar 21, 2026
931fc99
docs(changelog): note fresh setup provider guidance
vincentkoc Mar 21, 2026
2e8c8a7
refactor(openai): centralize provider defaults
vincentkoc Mar 21, 2026
06b4efb
fix(configure): drop duplicate wizard header
vincentkoc Mar 21, 2026
7918308
fix(doctor): suppress telegram fresh-install group warning
vincentkoc Mar 21, 2026
2ead75e
fix(doctor): add telegram first-run guidance
vincentkoc Mar 21, 2026
91b9be1
docs(changelog): note telegram doctor first-run guidance
vincentkoc Mar 21, 2026
a90c509
fix(telegram): default fresh setups to mention-gated groups
vincentkoc Mar 21, 2026
a267c5d
refactor(doctor): extract telegram provider warnings (#51704)
vincentkoc Mar 21, 2026
15fd110
fix(status): skip cold-start status probes
vincentkoc Mar 21, 2026
7c520cc
web UI: fix context notice using accumulated inputTokens instead of p…
BunsDev Mar 21, 2026
2fe0efc
fix: compaction safeguard summary budget (#27727)
Pandadadadazxf Mar 21, 2026
e61835e
fix(ci): restore embedding defaults and plugin boundaries
vincentkoc Mar 21, 2026
f4227e2
fix(ci): remove duplicate embedding default export
vincentkoc Mar 21, 2026
e24bf22
Fix Discord `/codex_resume` picker expiration (#51260)
huntharo Mar 21, 2026
4e979ea
refactor(doctor): extract provider and shared config helpers (#51753)
vincentkoc Mar 21, 2026
6516cfa
refactor: route Slack runtime through plugin sdk (#51766)
scoootscooob Mar 21, 2026
c0e482f
refactor: route iMessage runtime through plugin sdk (#51770)
scoootscooob Mar 21, 2026
d6367c2
refactor: route Telegram runtime through plugin sdk (#51772)
scoootscooob Mar 21, 2026
40f5305
fix: handle Linux nvm CA env before startup (#51146) (thanks @GodsBoy)
steipete Mar 21, 2026
ebfc5f8
fix: detect nvm services from installed command (#51146)
steipete Mar 21, 2026
fd2b3ed
feat(memory): pluggable system prompt section for memory plugins (#40…
jarimustonen Mar 21, 2026
fb50c98
fix(tts): add matrix to VOICE_BUBBLE_CHANNELS (#37080)
Matthew19990919 Mar 21, 2026
ef7a5c3
fix: use content hash for memory flush dedup instead of compactionCou…
lml2468 Mar 21, 2026
8f1043f
Merge branch 'main' into docs(plugin)/apify-plugin-docs
protoss70 Mar 21, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
14 changes: 7 additions & 7 deletions .agent/workflows/update_clawdbot.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
description: Update Clawdbot from upstream when branch has diverged (ahead/behind)
description: Update OpenClaw from upstream when branch has diverged (ahead/behind)
---

# Clawdbot Upstream Sync Workflow
# OpenClaw Upstream Sync Workflow

Use this workflow when your fork has diverged from upstream (e.g., "18 commits ahead, 29 commits behind").

Expand Down Expand Up @@ -132,16 +132,16 @@ pnpm mac:package

```bash
# Kill running app
pkill -x "Clawdbot" || true
pkill -x "OpenClaw" || true

# Move old version
mv /Applications/Clawdbot.app /tmp/Clawdbot-backup.app
mv /Applications/OpenClaw.app /tmp/OpenClaw-backup.app

# Install new build
cp -R dist/Clawdbot.app /Applications/
cp -R dist/OpenClaw.app /Applications/

# Launch
open /Applications/Clawdbot.app
open /Applications/OpenClaw.app
```

---
Expand Down Expand Up @@ -235,7 +235,7 @@ If upstream introduced new model configurations:
# Check for OpenRouter API key requirements
grep -r "openrouter\|OPENROUTER" src/ --include="*.ts" --include="*.js"

# Update clawdbot.json with fallback chains
# Update openclaw.json with fallback chains
# Add model fallback configurations as needed
```

Expand Down
87 changes: 87 additions & 0 deletions .agents/skills/openclaw-ghsa-maintainer/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
name: openclaw-ghsa-maintainer
description: Maintainer workflow for OpenClaw GitHub Security Advisories (GHSA). Use when Codex needs to inspect, patch, validate, or publish a repo advisory, verify private-fork state, prepare advisory Markdown or JSON payloads safely, handle GHSA API-specific publish constraints, or confirm advisory publish success.
---

# OpenClaw GHSA Maintainer

Use this skill for repo security advisory workflow only. Keep general release work in `openclaw-release-maintainer`.

## Respect advisory guardrails

- Before reviewing or publishing a repo advisory, read `SECURITY.md`.
- Ask permission before any publish action.
- Treat this skill as GHSA-only. Do not use it for stable or beta release work.

## Fetch and inspect advisory state

Fetch the current advisory and the latest published npm version:

```bash
gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
npm view openclaw version --userconfig "$(mktemp)"
```

Use the fetch output to confirm the advisory state, linked private fork, and vulnerability payload shape before patching.

## Verify private fork PRs are closed

Before publishing, verify that the advisory's private fork has no open PRs:

```bash
fork=$(gh api /repos/openclaw/openclaw/security-advisories/<GHSA> | jq -r .private_fork.full_name)
gh pr list -R "$fork" --state open
```

The PR list must be empty before publish.

## Prepare advisory Markdown and JSON safely

- Write advisory Markdown via heredoc to a temp file. Do not use escaped `\n` strings.
- Build PATCH payload JSON with `jq`, not hand-escaped shell JSON.

Example pattern:

```bash
cat > /tmp/ghsa.desc.md <<'EOF'
<markdown description>
EOF

jq -n --rawfile desc /tmp/ghsa.desc.md \
'{summary,severity,description:$desc,vulnerabilities:[...]}' \
> /tmp/ghsa.patch.json
```

## Apply PATCH calls in the correct sequence

- Do not set `severity` and `cvss_vector_string` in the same PATCH call.
- Use separate calls when the advisory requires both fields.
- Publish by PATCHing the advisory and setting `"state":"published"`. There is no separate `/publish` endpoint.

Example shape:

```bash
gh api -X PATCH /repos/openclaw/openclaw/security-advisories/<GHSA> \
--input /tmp/ghsa.patch.json
```

## Publish and verify success

After publish, re-fetch the advisory and confirm:

- `state=published`
- `published_at` is set
- the description does not contain literal escaped `\\n`

Verification pattern:

```bash
gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
jq -r .description < /tmp/ghsa.refetch.json | rg '\\\\n'
```

## Common GHSA footguns

- Publishing fails with HTTP 422 if required fields are missing or the private fork still has open PRs.
- A payload that looks correct in shell can still be wrong if Markdown was assembled with escaped newline strings.
- Advisory PATCH sequencing matters; separate field updates when GHSA API constraints require it.
58 changes: 58 additions & 0 deletions .agents/skills/openclaw-parallels-smoke/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
name: openclaw-parallels-smoke
description: End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.
---

# OpenClaw Parallels Smoke

Use this skill for Parallels guest workflows and smoke interpretation. Do not load it for normal repo work.

## Global rules

- Use the snapshot most closely matching the requested fresh baseline.
- Gateway verification in smoke runs should use `openclaw gateway status --deep --require-rpc` unless the stable version being checked does not support it yet.
- Stable `2026.3.12` pre-upgrade diagnostics may require a plain `gateway status --deep` fallback.
- Treat `precheck=latest-ref-fail` on that stable pre-upgrade lane as baseline, not automatically a regression.
- Pass `--json` for machine-readable summaries.
- Per-phase logs land under `/tmp/openclaw-parallels-*`.
- Do not run local and gateway agent turns in parallel on the same fresh workspace or session.

## macOS flow

- Preferred entrypoint: `pnpm test:parallels:macos`
- Target the snapshot closest to `macOS 26.3.1 fresh`.
- `prlctl exec` is fine for deterministic repo commands, but use the guest Terminal or `prlctl enter` when installer parity or shell-sensitive behavior matters.
- On the fresh Tahoe snapshot, `brew` exists but `node` may be missing from PATH in noninteractive exec. Use `/opt/homebrew/bin/node` when needed.
- Fresh host-served tgz installs should install as guest root with `HOME=/var/root`, then run onboarding as the desktop user via `prlctl exec --current-user`.
- Root-installed tgz smoke can log plugin blocks for world-writable `extensions/*`; do not treat that as an onboarding or gateway failure unless plugin loading is the task.

## Windows flow

- Preferred entrypoint: `pnpm test:parallels:windows`
- Use the snapshot closest to `pre-openclaw-native-e2e-2026-03-12`.
- Always use `prlctl exec --current-user`; plain `prlctl exec` lands in `NT AUTHORITY\\SYSTEM`.
- Prefer explicit `npm.cmd` and `openclaw.cmd`.
- Use PowerShell only as the transport with `-ExecutionPolicy Bypass`, then call the `.cmd` shims from inside it.
- Keep onboarding and status output ASCII-clean in logs; fancy punctuation becomes mojibake in current capture paths.

## Linux flow

- Preferred entrypoint: `pnpm test:parallels:linux`
- Use the snapshot closest to fresh `Ubuntu 24.04.3 ARM64`.
- Use plain `prlctl exec`; `--current-user` is not the right transport on this snapshot.
- Fresh snapshots may be missing `curl`, and `apt-get update` can fail on clock skew. Bootstrap with `apt-get -o Acquire::Check-Date=false update` and install `curl ca-certificates`.
- Fresh `main` tgz smoke still needs the latest-release installer first because the snapshot has no Node or npm before bootstrap.
- This snapshot does not have a usable `systemd --user` session; managed daemon install is unsupported.
- `prlctl exec` reaps detached Linux child processes on this snapshot, so detached background gateway runs are not trustworthy smoke signals.

## Discord roundtrip

- Discord roundtrip is optional and should be enabled with:
- `--discord-token-env`
- `--discord-guild-id`
- `--discord-channel-id`
- Keep the Discord token only in a host env var.
- Use installed `openclaw message send/read`, not `node openclaw.mjs message ...`.
- Set `channels.discord.guilds` as one JSON object, not dotted config paths with snowflakes.
- Avoid long `prlctl enter` or expect-driven Discord config scripts; prefer `prlctl exec --current-user /bin/sh -lc ...` with short commands.
- For a narrower macOS-only Discord proof run, the existing `parallels-discord-roundtrip` skill is the deep-dive companion.
75 changes: 75 additions & 0 deletions .agents/skills/openclaw-pr-maintainer/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
name: openclaw-pr-maintainer
description: Maintainer workflow for reviewing, triaging, preparing, closing, or landing OpenClaw pull requests and related issues. Use when Codex needs to validate bug-fix claims, search for related issues or PRs, apply or recommend close/reason labels, prepare GitHub comments safely, check review-thread follow-up, or perform maintainer-style PR decision making before merge or closure.
---

# OpenClaw PR Maintainer

Use this skill for maintainer-facing GitHub workflow, not for ordinary code changes.

## Apply close and triage labels correctly

- If an issue or PR matches an auto-close reason, apply the label and let `.github/workflows/auto-response.yml` handle the comment/close/lock flow.
- Do not manually close plus manually comment for these reasons.
- `r:*` labels can be used on both issues and PRs.
- Current reasons:
- `r: skill`
- `r: support`
- `r: no-ci-pr`
- `r: too-many-prs`
- `r: testflight`
- `r: third-party-extension`
- `r: moltbook`
- `r: spam`
- `invalid`
- `dirty` for PRs only

## Enforce the bug-fix evidence bar

- Never merge a bug-fix PR based only on issue text, PR text, or AI rationale.
- Before landing, require:
1. symptom evidence such as a repro, logs, or a failing test
2. a verified root cause in code with file/line
3. a fix that touches the implicated code path
4. a regression test when feasible, or explicit manual verification plus a reason no test was added
- If the claim is unsubstantiated or likely wrong, request evidence or changes instead of merging.
- If the linked issue appears outdated or incorrect, correct triage first. Do not merge a speculative fix.

## Handle GitHub text safely

- For issue comments and PR comments, use literal multiline strings or `-F - <<'EOF'` for real newlines. Never embed `\n`.
- Do not use `gh issue/pr comment -b "..."` when the body contains backticks or shell characters. Prefer a single-quoted heredoc.
- Do not wrap issue or PR refs like `#24643` in backticks when you want auto-linking.
- PR landing comments should include clickable full commit links for landed and source SHAs when present.

## Search broadly before deciding

- Prefer targeted keyword search before proposing new work or closing something as duplicate.
- Use `--repo openclaw/openclaw` with `--match title,body` first.
- Add `--match comments` when triaging follow-up discussion.
- Do not stop at the first 500 results when the task requires a full search.

Examples:

```bash
gh search prs --repo openclaw/openclaw --match title,body --limit 50 -- "auto-update"
gh search issues --repo openclaw/openclaw --match title,body --limit 50 -- "auto-update"
gh search issues --repo openclaw/openclaw --match title,body --limit 50 \
--json number,title,state,url,updatedAt -- "auto update" \
--jq '.[] | "\(.number) | \(.state) | \(.title) | \(.url)"'
```

## Follow PR review and landing hygiene

- If bot review conversations exist on your PR, address them and resolve them yourself once fixed.
- Leave a review conversation unresolved only when reviewer or maintainer judgment is still needed.
- When landing or merging any PR, follow the global `/landpr` process.
- Use `scripts/committer "<msg>" <file...>` for scoped commits instead of manual `git add` and `git commit`.
- Keep commit messages concise and action-oriented.
- Group related changes; avoid bundling unrelated refactors.
- Use `.github/pull_request_template.md` for PR submissions and `.github/ISSUE_TEMPLATE/` for issues.

## Extra safety

- If a close or reopen action would affect more than 5 PRs, ask for explicit confirmation with the exact count and target query first.
- `sync` means: if the tree is dirty, commit all changes with a sensible Conventional Commit message, then `git pull --rebase`, then `git push`. Stop if rebase conflicts cannot be resolved safely.
74 changes: 74 additions & 0 deletions .agents/skills/openclaw-release-maintainer/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
name: openclaw-release-maintainer
description: Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
---

# OpenClaw Release Maintainer

Use this skill for release and publish-time workflow. Keep ordinary development changes and GHSA-specific advisory work outside this skill.

## Respect release guardrails

- Do not change version numbers without explicit operator approval.
- Ask permission before any npm publish or release step.
- Use the private maintainer release docs for the actual runbook and `docs/reference/RELEASING.md` for public policy.

## Keep release channel naming aligned

- `stable`: tagged releases only, with npm dist-tag `latest`
- `beta`: prerelease tags like `vYYYY.M.D-beta.N`, with npm dist-tag `beta`
- Prefer `-beta.N`; do not mint new `-1` or `-2` beta suffixes
- `dev`: moving head on `main`
- When using a beta Git tag, publish npm with the matching beta version suffix so the plain version is not consumed or blocked

## Handle versions and release files consistently

- Version locations include:
- `package.json`
- `apps/android/app/build.gradle.kts`
- `apps/ios/Sources/Info.plist`
- `apps/ios/Tests/Info.plist`
- `apps/macos/Sources/OpenClaw/Resources/Info.plist`
- `docs/install/updating.md`
- Peekaboo Xcode project and plist version fields
- “Bump version everywhere” means all version locations above except `appcast.xml`.
- Release signing and notary credentials live outside the repo in the private maintainer docs.

## Build changelog-backed release notes

- Changelog entries should be user-facing, not internal release-process notes.
- When cutting a mac release with a beta GitHub prerelease:
- tag `vYYYY.M.D-beta.N` from the release commit
- create a prerelease titled `openclaw YYYY.M.D-beta.N`
- use release notes from the matching `CHANGELOG.md` version section
- attach at least the zip and dSYM zip, plus dmg if available
- Keep the top version entries in `CHANGELOG.md` sorted by impact:
- `### Changes` first
- `### Fixes` deduped with user-facing fixes first

## Run publish-time validation

Before tagging or publishing, run:

```bash
node --import tsx scripts/release-check.ts
pnpm release:check
pnpm test:install:smoke
```

For a non-root smoke path:

```bash
OPENCLAW_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke
```

## Use the right auth flow

- Core `openclaw` publish uses GitHub trusted publishing.
- Do not use `NPM_TOKEN` or the plugin OTP flow for core releases.
- `@openclaw/*` plugin publishes use a separate maintainer-only flow.
- Only publish plugins that already exist on npm; bundled disk-tree-only plugins stay unpublished.

## GHSA advisory work

- Use `openclaw-ghsa-maintainer` for GHSA advisory inspection, patch/publish flow, private-fork validation, and GHSA API-specific publish checks.
Loading
Loading