Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2793 commits
Select commit Hold shift + click to select a range
174eeea
Feishu: normalize group slash command probing
liuxiaopai-ai Mar 5, 2026
09c68f8
add prependSystemContext and appendSystemContext to before_prompt_bui…
maweibin Mar 5, 2026
bc66a8f
fix(feishu): avoid media regressions from global HTTP timeout (#36500)
Takhoffman Mar 5, 2026
72cf925
Gateway: add SecretRef support for gateway.auth.token with auth-mode …
joshavant Mar 5, 2026
60a6d11
fix(embedded): classify model_context_window_exceeded as context over…
RealKai42 Mar 5, 2026
6c03761
fix(agents): skip compaction API call when session has no real messag…
Sid-Qin Mar 5, 2026
edc386e
fix(ui): catch marked.js parse errors to prevent Control UI crash (#3…
BinHPdev Mar 5, 2026
709dc67
fix(session): archive old transcript on daily/scheduled reset to prev…
byungsker Mar 5, 2026
591264e
fix(agents): set preserveSignatures to isAnthropic in resolveTranscri…
Sid-Qin Mar 5, 2026
8ac7ce7
fix: avoid false global rate-limit classification from generic cooldo…
stakeswky Mar 5, 2026
f014e25
refactor(agents): share failover HTTP status classification (#36615)
altaywtf Mar 5, 2026
029c473
fix(failover): narrow service-unavailable to require overload indicat…
jnMetaCode Mar 5, 2026
036c329
Compaction/Safeguard: add summary quality audit retries (#25556)
rodrigouroz Mar 5, 2026
6859619
test(agents): add provider-backed failover regressions (#36735)
altaywtf Mar 5, 2026
837b7b4
Docs: add Slack typing reaction fallback
vincentkoc Mar 5, 2026
1d3962a
Docs: update gateway config reference for Slack and TTS
vincentkoc Mar 5, 2026
6b2c115
Docs: clarify OpenAI-compatible TTS endpoints
vincentkoc Mar 5, 2026
2b45eb0
Docs: document Control UI locale support
vincentkoc Mar 5, 2026
98aecab
Docs: cover heartbeat, cron, and plugin route updates
vincentkoc Mar 5, 2026
999b7e4
fix(ui): bump dompurify to 3.3.2 (#36781)
vincentkoc Mar 5, 2026
0c08e3f
UI: hoist lifecycle connect test mocks (#36788)
vincentkoc Mar 5, 2026
49acb07
fix(agents): classify insufficient_quota 400s as billing (#36783)
altaywtf Mar 5, 2026
aad372e
feat: append UTC time alongside local time in shared Current time lin…
jriff Mar 5, 2026
60d3363
fix(auth): grant senderIsOwner for internal channels with operator.ad…
Sid-Qin Mar 5, 2026
a0b731e
fix(config): prevent RangeError in merged schema cache key generation
powermaster888 Mar 5, 2026
7830366
fix(slack): propagate mediaLocalRoots through Slack send path
2233admin Mar 5, 2026
b9a20dc
fix(slack): preserve dedupe while recovering dropped app_mention (#34…
littleben Mar 5, 2026
97ea9df
README: add algal to contributors list (#2046)
joshavant Mar 5, 2026
063e493
fix: decouple Discord inbound worker timeout from listener timeout (#…
dutifulbob Mar 5, 2026
688b72e
plugins: enforce prompt hook policy with runtime validation (#36567)
gumadeiras Mar 5, 2026
f771ba8
fix(memory): avoid destructive qmd collection rebinds
vignesh07 Mar 6, 2026
6dfd39c
Harden Telegram poll gating and schema consistency (#36547)
gumadeiras Mar 6, 2026
06a229f
fix(browser): close tracked tabs on session cleanup (#36666)
vignesh07 Mar 6, 2026
1a67cf5
Diffs: restore system prompt guidance (#36904)
gumadeiras Mar 6, 2026
c260e20
fix(routing): avoid full binding rescans in resolveAgentRoute (#36915)
vignesh07 Mar 6, 2026
d86a12e
fix(gateway): honor insecure ws override for remote hostnames
vignesh07 Mar 6, 2026
3cd4978
fix(llm-task): load runEmbeddedPiAgent from dist/extensionAPI in inst…
vignesh07 Mar 6, 2026
92b4892
fix(auth): harden openai-codex oauth login path
vignesh07 Mar 6, 2026
d58dafa
feat(telegram/acp): Topic Binding, Pin Binding Message, Fix Spawn Par…
huntharo Mar 6, 2026
d326861
fix(gateway): preserve streamed prefixes across tool boundaries
vignesh07 Mar 6, 2026
cec5535
fix(tui): prevent stale model indicator after /model
vignesh07 Mar 6, 2026
fb289b7
Memory: handle SecretRef keys in doctor embeddings (#36835)
joshavant Mar 6, 2026
8088218
fix(openai-codex): request required oauth api scopes (#24720)
vignesh07 Mar 6, 2026
94fdee2
fix(memory-flush): ban timestamped variant files in default flush pro…
zerone0x Mar 6, 2026
6084c26
fix(tui): render final event error when assistant output is empty (#1…
vignesh07 Mar 6, 2026
7a22b3f
feat(agents): flush reply pipeline before compaction wait (#35489)
Sid-Qin Mar 6, 2026
1ab9393
fix(secrets): harden api key normalization for ByteString headers
vignesh07 Mar 6, 2026
b39ca7e
fix(slack): remove double mrkdwn conversion in native streaming path
littleben Mar 6, 2026
909f26a
fix(kimi-coding): normalize anthropic tool payload format
vignesh07 Mar 6, 2026
1efa7a8
fix(slack): thread channel ID through inbound context for reactions (…
dunamismax Mar 6, 2026
604f22c
fix(heartbeat): pin HEARTBEAT.md reads to workspace path
vignesh07 Mar 6, 2026
2f86ae7
fix(subagents): recover announce cleanup after kill/complete race
vignesh07 Mar 6, 2026
71ec421
feat(hooks): emit compaction lifecycle hooks (#16788)
vincentkoc Mar 6, 2026
fa3fafd
fix(auth): harden openai-codex oauth refresh fallback
vignesh07 Mar 6, 2026
81b93b9
fix(subagents): announce delivery with descendant gating, frozen resu…
tyler6204 Mar 6, 2026
4daaea1
fix(agents): avoid synthetic tool-result writes on idle-timeout cleanup
vignesh07 Mar 6, 2026
05fb16d
fix(agent): harden undici stream timeouts for long openai-completions…
vignesh07 Mar 6, 2026
ce71fac
fix(slack): record app_mention retry key before dedupe check (#37033)
Takhoffman Mar 6, 2026
d45353f
fix(agents): honor explicit rate-limit cooldown probes in fallback runs
vignesh07 Mar 6, 2026
36afd1b
fix(agents): allow configured ollama endpoints without dummy api keys
vignesh07 Mar 6, 2026
87e38da
fix(memory): recover qmd updates from duplicate document constraints
vignesh07 Mar 6, 2026
e5481ac
Doctor: warn on implicit heartbeat directPolicy (#36789)
vincentkoc Mar 6, 2026
d4021f4
Plugins: clarify registerHttpHandler migration errors (#36794)
vincentkoc Mar 6, 2026
16f9f4d
fix(memory): repair qmd collection name conflicts during ensure
vignesh07 Mar 6, 2026
91aed29
fix(memory): handle qmd search results without docid
vignesh07 Mar 6, 2026
428d176
Plugins: avoid false integrity drift prompts on unpinned updates (#37…
vincentkoc Mar 6, 2026
9881a74
Changelog: add #37179 release note
vincentkoc Mar 6, 2026
8f69e07
Delete changelog/fragments directory
vincentkoc Mar 6, 2026
10fe82f
Update CHANGELOG.md
vincentkoc Mar 6, 2026
4d9134f
fix(whatsapp): remove implicit [openclaw] self-chat prefix
vignesh07 Mar 6, 2026
8c85ad5
fix: remove config.schema from agent gateway tool (#7382)
kakuteki Mar 6, 2026
5d4b040
feat(openai): add gpt-5.4 support for API and Codex OAuth (#36590)
dorukardahan Mar 6, 2026
8d4a2f2
fix(tui): preserve credential-like tokens in render sanitization
vignesh07 Mar 6, 2026
0e42450
CLI: make read-only SecretRef status flows degrade safely (#37023)
joshavant Mar 6, 2026
ca80914
chore(changelog): update for #37023
joshavant Mar 6, 2026
2671f04
fix(agents): disable usage streaming chunks on non-native openai-comp…
vignesh07 Mar 6, 2026
36e2e04
feat(nano-banana-pro): add --aspect-ratio flag to generate_image.py (…
BrennerSpear Mar 6, 2026
9c86a9f
fix(gateway): support image_url in OpenAI chat completions (#34068)
vincentkoc Mar 6, 2026
e11a077
fix(agents): avoid xAI web_search tool-name collisions
vignesh07 Mar 6, 2026
8c2633a
fix: clear Telegram DM draft after materialize (#36746) (thanks @joel…
obviyus Mar 6, 2026
6c39616
Fix Control UI duplicate iMessage replies for internal webchat turns …
vincentkoc Mar 6, 2026
0e2bc58
fix: enforce 600 perms for cron store and run logs (#36078)
aerelune Mar 6, 2026
726ef48
fix(tui): accept canonical session-key aliases in chat event routing
vignesh07 Mar 6, 2026
9dab154
Gateway: normalize OpenAI stream chunk text
vincentkoc Mar 6, 2026
a939a15
Gateway: coerce chat deliverable route boolean
vincentkoc Mar 6, 2026
dfe23b9
fix(web_search): align brave language codes with API
vignesh07 Mar 6, 2026
777af47
Respect source channel for agent event surfacing (#36030)
Octane0411 Mar 6, 2026
5fdcef7
fix(session): prefer webchat routes for direct ui turns (#37135)
frankekn Mar 6, 2026
ff33460
Gateway: discriminate input sources
vincentkoc Mar 6, 2026
a622aee
Cron: migrate legacy provider delivery hints
vincentkoc Mar 6, 2026
44ec3e4
Cron: stabilize runs-one-shot migration tests
vincentkoc Mar 6, 2026
30c0f7e
fix(memory): retry mcporter after Windows EINVAL spawn
vignesh07 Mar 6, 2026
c5828cb
fix(onboarding): guard daemon status probe on headless linux
vignesh07 Mar 6, 2026
ff97195
Gateway: add path-scoped config schema lookup (#37266)
gumadeiras Mar 6, 2026
5b03ce7
docs(changelog): add pr entry
gumadeiras Mar 6, 2026
ee6f7b1
fix(ci): restore protocol and schema checks (#37470)
altaywtf Mar 6, 2026
a65d70f
Fix failover for zhipuai 1310 Weekly/Monthly Limit Exhausted (#33813)
zhouhe-xydt Mar 6, 2026
a4a490b
fix(openai-codex-oauth): stop mutating authorize url scopes
vignesh07 Mar 6, 2026
cbb96d9
Update CHANGELOG.md
vignesh07 Mar 6, 2026
bdd3685
fix(auth): remove bogus codex oauth responses probe
obviyus Mar 6, 2026
f051c14
docs(changelog): fold codex oauth fix notes
obviyus Mar 6, 2026
ae56597
docs(changelog): add codex oauth pr reference (#37558)
obviyus Mar 6, 2026
01b2017
fix(failover): classify HTTP 402 as rate_limit when payload indicates…
xinhuagu Mar 6, 2026
4a80d48
fix(mattermost): allow reachable interaction callback URLs (#37543)
mukhtharcm Mar 6, 2026
fa6c0e1
Gateway: allow slash-delimited schema lookup paths
gumadeiras Mar 6, 2026
fee91fe
feature(context): extend plugin system to support custom context mana…
jalehman Mar 6, 2026
9fed9f1
fix(session): tighten direct-session webchat routing matching (#37867)
vincentkoc Mar 6, 2026
e88f660
docs(tools): document slash-delimited config schema lookup paths
vincentkoc Mar 6, 2026
f788ba1
docs(protocol): document slash-delimited schema lookup plugin ids
vincentkoc Mar 6, 2026
eb2eeba
docs(plugins): document context engine slots and registration
vincentkoc Mar 6, 2026
7cc3376
docs(plugins): add context-engine manifest kind example
vincentkoc Mar 6, 2026
5470337
docs(config): list the context engine plugin slot
vincentkoc Mar 6, 2026
151f260
docs: context engine
vincentkoc Mar 6, 2026
86a89d9
fix(nano-banana-pro): remove space after MEDIA: token in generate_ima…
QuantDeveloperUSA Mar 6, 2026
a820c63
CI: drop unused install-smoke bootstrap
vincentkoc Mar 6, 2026
37a3fb0
nano-banana-pro: respect explicit --resolution when editing images (#…
shuofengzhang Mar 6, 2026
05c2cbf
Skills/nano-banana-pro: clarify MEDIA token comment (#38063)
vincentkoc Mar 6, 2026
9917a3f
CI: run changed-scope on main pushes
vincentkoc Mar 6, 2026
9c1786b
Telegram/Discord: honor outbound mediaMaxMb uploads (#38065)
vincentkoc Mar 6, 2026
7c45d91
Docs: align BlueBubbles media cap wording
vincentkoc Mar 6, 2026
20038fb
openai-image-gen: validate --background and --style options (#36762)
shuofengzhang Mar 6, 2026
222d635
WhatsApp: honor outbound mediaMaxMb (#38097)
vincentkoc Mar 6, 2026
a274ef9
Mattermost: harden interaction callback binding (#38057)
vincentkoc Mar 6, 2026
f392b81
Infra: require explicit opt-in for prerelease npm installs (#38117)
vincentkoc Mar 6, 2026
81f22ae
openai-image-gen: validate and normalize --output-format (#36648)
shuofengzhang Mar 6, 2026
9aceb51
Gateway: normalize HEIC input_image sources (#38122)
vincentkoc Mar 6, 2026
6a9deb2
CI: cover skill and extension tests
vincentkoc Mar 6, 2026
d000316
fix: Windows: openclaw plugins install fails with spawn EINVAL
Mar 6, 2026
e6bf69b
fix: Telegram API requests fail with Network request failed after
Mar 6, 2026
59895f9
fix: narrow Telegram failed-after retry match
obviyus Mar 6, 2026
f9d86b9
chore: prep #38056 for landing (thanks @0xlin2023)
obviyus Mar 6, 2026
9521e61
Gateway: follow up HEIC input image handling (#38146)
vincentkoc Mar 6, 2026
b127333
fix(feishu): restore explicit media request timeouts
obviyus Mar 6, 2026
4ed5feb
chore(extensions): sync plugin versions
obviyus Mar 6, 2026
d070c44
fix(gateway): keep probe routes reachable with root-mounted control u…
vincentkoc Mar 6, 2026
57f19f0
container builds: opt-in extension deps via OPENCLAW_EXTENSIONS build…
sallyom Mar 6, 2026
e3390bf
CI: add Barnacle r: too-many-prs guard
vincentkoc Mar 6, 2026
b782538
fix: tune stale workflow limits
thewilloftheshadow Mar 6, 2026
3e967cb
fix: add stale workflow fallback run
thewilloftheshadow Mar 6, 2026
8f834ff
chore: update X handle
thewilloftheshadow Mar 6, 2026
9a1a63a
chore: disable contributor labels
thewilloftheshadow Mar 6, 2026
3d7bc59
feat(onboarding): add web search to onboarding flow (#34009)
kesku Mar 6, 2026
067ec4f
CI: shallow scope checkouts
vincentkoc Mar 6, 2026
afdbc47
Install Smoke: shallow docs-scope checkout
vincentkoc Mar 6, 2026
60d20f9
Install Smoke: allow reusing prebuilt test images
vincentkoc Mar 6, 2026
5e05a9c
Install Smoke: cache docker smoke builds
vincentkoc Mar 6, 2026
38f46e8
chore: code/dead tests cleanup (#38286)
vincentkoc Mar 6, 2026
084dfd2
Media: reject spoofed input_image MIME payloads (#38289)
vincentkoc Mar 6, 2026
ec3df0d
CI: scope secret scans to changed files
vincentkoc Mar 6, 2026
b529b7c
Docs: update secret scan reproduction steps
vincentkoc Mar 6, 2026
6611298
CI: keep full secret scans on main
vincentkoc Mar 6, 2026
042b2c8
Docs: clarify main secret scan behavior
vincentkoc Mar 6, 2026
e9919ea
CI: add base-commit fetch helper
vincentkoc Mar 6, 2026
9c464c2
CI: fetch base history on demand
vincentkoc Mar 6, 2026
82eebc9
Install Smoke: fetch docs base on demand
vincentkoc Mar 6, 2026
9c55299
CI: skip detect-secrets on main temporarily
vincentkoc Mar 6, 2026
768736d
Tooling: add Knip workspace config
vincentkoc Mar 6, 2026
b70d3c4
Tooling: wire deadcode scripts to Knip
vincentkoc Mar 6, 2026
b17baca
CI: enable report-only Knip deadcode job
vincentkoc Mar 6, 2026
ab5fcfc
feat(gateway): add channel-backed readiness probes (#38285)
vincentkoc Mar 6, 2026
7ce79c8
docs: fix broken dashboard image on i18n pages (#38031)
angrybirddd Mar 6, 2026
20db7af
fix(feishu): remove invalid timeout properties from SDK method calls …
ant1eicher Mar 6, 2026
864a1ec
docs: add changelog entry for Feishu timeouts (#38356)
thewilloftheshadow Mar 6, 2026
c301c5d
fix: add no-ci-pr auto-response label
thewilloftheshadow Mar 6, 2026
91494b2
fix: repair auto-response workflow YAML
thewilloftheshadow Mar 6, 2026
e601bf2
fix(pi-embedded-runner): propagate sender identity to fix Feishu doc …
cszhouwei Mar 6, 2026
110ca23
Feishu: update media timeout tests
vincentkoc Mar 6, 2026
6e962d8
fix(agents): handle overloaded failover separately (#38301)
altaywtf Mar 6, 2026
a190220
Tests: serialize low-memory test runner lanes
vincentkoc Mar 6, 2026
455430a
Dead code: remove unused helper modules (#38318)
vincentkoc Mar 6, 2026
03b9aba
feat(compaction): make post-compaction context sections configurable …
efe-arv Mar 6, 2026
ae96a81
fix: strip skill-injected env vars from ACP harness spawn env (#36280…
taw0002 Mar 6, 2026
48b3c4a
fix(auth): treat unconfigured-owner sessions as owner for ownerOnly t…
widingmarcus-cyber Mar 6, 2026
942c53e
fix(agents): prevent totalTokens crash when assistant usage is missin…
sp-hk2ldn Mar 6, 2026
5320ee7
fix(venice): harden discovery limits and tool support (#38306)
vincentkoc Mar 7, 2026
adb9234
fix(imessage): prevent echo loop from leaking internal metadata and a…
joelnishanth Mar 7, 2026
3070faf
fix(venice): switch default model to kimi-k2-5 (#38423)
vincentkoc Mar 7, 2026
42e3d8d
Secrets: add inline allowlist review set (#38314)
vincentkoc Mar 7, 2026
063b9aa
fix: xxxxx
vincentkoc Mar 7, 2026
74959fc
Dependencies: remove unused core and UI packages (#38316)
vincentkoc Mar 7, 2026
2d52c88
fix(podman): stop assuming /tmp is disk-backed (#38296)
vincentkoc Mar 7, 2026
75981b0
Dependencies: remove unused extension packages (#38317)
vincentkoc Mar 7, 2026
3ba845d
docs: SoulClaw README with features, roadmap, and ecosystem
TomLeeLive Mar 7, 2026
d05a64e
feat(memory): add SoulClaw memory search engine
TomLeeLive Mar 7, 2026
3602370
feat: semantic memory search engine (bge-m3, sqlite-vec)
TomLeeLive Mar 7, 2026
a18ac11
chore: bump version to 2026.3.4 (memory search)
TomLeeLive Mar 7, 2026
91f7f4d
docs: add Ollama setup guide and bge-m3 hardware compatibility
TomLeeLive Mar 7, 2026
75d7b76
feat(persona): add Persona Engine — parser, drift detector, enforcer,…
TomLeeLive Mar 7, 2026
c4f516d
feat(swarm): add native swarm memory module
TomLeeLive Mar 7, 2026
19cdb6f
feat(soulscan): add inline SoulScan engine with 4-stage pipeline
TomLeeLive Mar 7, 2026
f0ea625
chore: bump to v2026.3.5 (persona + soulscan + swarm)
TomLeeLive Mar 7, 2026
bf623a5
Agents: add skill API rate-limit guardrail (#38452)
vincentkoc Mar 7, 2026
563a125
fix(gateway): stop shared-main chat.send from inheriting stale extern…
vincentkoc Mar 7, 2026
ba9eaf2
fix(media): retain inbound media with recursive cleanup TTL (#38292)
vincentkoc Mar 7, 2026
a01978b
fix(googlechat): inherit shared defaults for multi-account webhook au…
Takhoffman Mar 7, 2026
fa69f83
fix: increase maxTokens for tool probe to support reasoning models
jakobdylanc Mar 7, 2026
1a022a3
fix(gateway): classify wrapped "fetch failed" messages as transient n…
xinhuagu Mar 7, 2026
6017b73
Web: add HEIC media regression and doc fix (#38294)
vincentkoc Mar 7, 2026
e309a15
fix: suppress ACP NO_REPLY fragments in console output (#38436)
ql-wade Mar 7, 2026
024af2b
fix(feishu): disable block streaming to prevent silent reply drops (o…
xinhuagu Mar 7, 2026
15a5e39
Fix owner-only auth and overlapping skill env regressions (#38548)
vincentkoc Mar 7, 2026
d4f38e0
feat: respect OPENCLAW_STATE_DIR for workspace path resolution
TomLeeLive Mar 7, 2026
54c2556
Initial commit
TomLeeLive Mar 7, 2026
3bf77fe
Merge develop into main
TomLeeLive Mar 7, 2026
67f3be4
feat: tiered bootstrap loading for context window optimization
TomLeeLive Mar 7, 2026
def7e35
chore: bump version to 2026.3.6
TomLeeLive Mar 7, 2026
550b9fd
docs: highlight tiered bootstrap as killer feature in README
TomLeeLive Mar 7, 2026
05aa08e
Merge branch 'develop'
TomLeeLive Mar 7, 2026
596b6bf
docs: update roadmap — P1-P6 all released, fix embedding model name
TomLeeLive Mar 7, 2026
378c729
fix: add soulclaw to CORE_PACKAGE_NAMES for template resolution
TomLeeLive Mar 10, 2026
75c0e56
fix: soulclaw branding throughout codebase
TomLeeLive Mar 10, 2026
d167393
feat: include default ollama provider in setup config
TomLeeLive Mar 10, 2026
5b26556
feat: create memory/ directory on workspace setup
TomLeeLive Mar 10, 2026
52fafef
feat: change default Ollama embedding model to bge-m3
TomLeeLive Mar 10, 2026
0c7eb13
fix: include memory_search and memory_get in messaging tool profile
TomLeeLive Mar 10, 2026
afb0b9b
feat: add soul selection from ClawSouls during onboarding
TomLeeLive Mar 10, 2026
9bc04bb
docs: add upstream fork version info to README
TomLeeLive Mar 10, 2026
da6ddc7
chore: bump to v2026.3.12
TomLeeLive Mar 10, 2026
ed2baf4
chore: bump to v2026.3.17
TomLeeLive Mar 10, 2026
eb3ed1f
fix: onboard soul selection — use bundle API, delete existing files b…
TomLeeLive Mar 10, 2026
6e3123f
feat: bundle clawsouls skill with SoulClaw
TomLeeLive Mar 10, 2026
d28cf3c
docs: update clawsouls skill — add sync, swarm, checkpoint, platform …
TomLeeLive Mar 10, 2026
829602b
docs: add /new session step after soul switch in clawsouls skill
TomLeeLive Mar 10, 2026
cacee9c
feat: auto-reset sessions on soul change detection
TomLeeLive Mar 10, 2026
ba616f2
chore: rename user-facing openclaw references to soulclaw
TomLeeLive Mar 10, 2026
0098601
feat(memory): add passive memory auto-extraction
TomLeeLive Mar 16, 2026
1c5a326
fix: strict type check for text content extraction
TomLeeLive Mar 17, 2026
17a1ea2
feat(dag): gate DAG store behind memorySearch provider config
TomLeeLive Mar 17, 2026
98fb6b0
chore: bump to v2026.3.18 (DAG lossless memory)
TomLeeLive Mar 17, 2026
c9b6c5d
docs: add DAG lossless store & 3-tier memory guide to memory.md
TomLeeLive Mar 17, 2026
50b2c26
feat(memory): integrate DAG FTS5 search into memory_search pipeline
TomLeeLive Mar 17, 2026
7b0c963
fix: remove unused defaultAgentId variable
TomLeeLive Mar 17, 2026
adc72dd
feat(memory): inline DAG FTS5 search in memory_search tool
TomLeeLive Mar 17, 2026
5a48e24
chore: bump to v2026.3.19 (DAG FTS5 pipeline complete)
TomLeeLive Mar 17, 2026
76399ee
fix(net): enable autoSelectFamily for pinned dispatcher (fixes Telegr…
TomLeeLive Mar 17, 2026
618aa8b
chore: bump to v2026.3.20 (DAG FTS5 pipeline + IPv6 media fix)
TomLeeLive Mar 17, 2026
2eb59ad
feat: add swarm CLI commands + config schema
TomLeeLive Mar 18, 2026
9973f22
feat: add soulscan + persona CLI commands
TomLeeLive Mar 18, 2026
f2b93c0
feat: swarm LLM merge/resolve + persona drift notifications & config
TomLeeLive Mar 18, 2026
daffcaa
docs: add CLI guide link to README
TomLeeLive Mar 18, 2026
6e2de3f
docs: remove Android app link from README (private repo)
TomLeeLive Mar 18, 2026
ff4637c
refactor: delegate SoulScan to clawsouls package
TomLeeLive Mar 18, 2026
fb94569
docs: add OpenClaw → SoulClaw migration guide
TomLeeLive Mar 18, 2026
26fc60a
bump: v2026.3.21
TomLeeLive Mar 18, 2026
dc41940
fix: persona/soulscan/swarm CLI colorize + theme key bugs
TomLeeLive Mar 18, 2026
78ff75b
docs: migration guide — require gateway install before start
TomLeeLive Mar 18, 2026
2ee5445
feat: wire SoulScan, Persona Engine, Swarm Memory into agent pipeline
TomLeeLive Mar 18, 2026
8288ba2
docs: note fork origin (OpenClaw v2026.3.1 main branch)
TomLeeLive Mar 18, 2026
dec315b
docs: comprehensive README update — 3-Tier Memory, DAG FTS5, updated …
TomLeeLive Mar 18, 2026
530a582
chore(deps): bump actions/checkout from 4 to 6
dependabot[bot] Mar 18, 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.
6 changes: 2 additions & 4 deletions .detect-secrets.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@
[exclude-files]
# pnpm lockfiles contain lots of high-entropy package integrity blobs.
pattern = (^|/)pnpm-lock\.yaml$
# Generated output and vendored assets.
pattern = (^|/)(dist|vendor)/
# Local config file with allowlist patterns.
pattern = (^|/)\.detect-secrets\.cfg$

[exclude-lines]
# Fastlane checks for private key marker; not a real key.
Expand All @@ -28,3 +24,5 @@ pattern = "talk\.apiKey"
pattern = === "string"
# specific optional-chaining password check that didn't match the line above.
pattern = typeof remote\?\.password === "string"
# Docker apt signing key fingerprint constant; not a secret.
pattern = OPENCLAW_DOCKER_GPG_FINGERPRINT=
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ vendor/
# Keep the rest of apps/ and vendor/ excluded to avoid a large build context.
!apps/shared/
!apps/shared/OpenClawKit/
!apps/shared/OpenClawKit/Sources/
!apps/shared/OpenClawKit/Sources/OpenClawKit/
!apps/shared/OpenClawKit/Sources/OpenClawKit/Resources/
!apps/shared/OpenClawKit/Sources/OpenClawKit/Resources/tool-display.json
!apps/shared/OpenClawKit/Tools/
!apps/shared/OpenClawKit/Tools/CanvasA2UI/
!apps/shared/OpenClawKit/Tools/CanvasA2UI/**
Expand Down
17 changes: 14 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Bug report
description: Report a defect or unexpected behavior in OpenClaw.
description: Report defects, including regressions, crashes, and behavior bugs.
title: "[Bug]: "
labels:
- bug
Expand All @@ -8,6 +8,17 @@ body:
attributes:
value: |
Thanks for filing this report. Keep it concise, reproducible, and evidence-based.
- type: dropdown
id: bug_type
attributes:
label: Bug type
description: Choose the category that best matches this report.
options:
- Regression (worked before, now fails)
- Crash (process/app exits or hangs)
- Behavior bug (incorrect output/state without crash)
validations:
required: true
- type: textarea
id: summary
attributes:
Expand Down Expand Up @@ -91,5 +102,5 @@ body:
id: additional_information
attributes:
label: Additional information
description: Add any context that helps triage but does not fit above.
placeholder: Regression started after upgrade from <previous-version>; temporary workaround is ...
description: Add any context that helps triage but does not fit above. If this is a regression, include the last known good and first known bad versions.
placeholder: Last known good version <...>, first known bad version <...>, temporary workaround is ...
1 change: 1 addition & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ self-hosted-runner:
- blacksmith-8vcpu-windows-2025
- blacksmith-16vcpu-ubuntu-2404
- blacksmith-16vcpu-windows-2025
- blacksmith-32vcpu-windows-2025
- blacksmith-16vcpu-ubuntu-2404-arm

# Ignore patterns for known issues
Expand Down
47 changes: 47 additions & 0 deletions .github/actions/ensure-base-commit/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Ensure base commit
description: Ensure a shallow checkout has enough history to diff against a base SHA.
inputs:
base-sha:
description: Base commit SHA to diff against.
required: true
fetch-ref:
description: Branch or ref to deepen/fetch from origin when base-sha is missing.
required: true
runs:
using: composite
steps:
- name: Ensure base commit is available
shell: bash
env:
BASE_SHA: ${{ inputs.base-sha }}
FETCH_REF: ${{ inputs.fetch-ref }}
run: |
set -euo pipefail

if [ -z "$BASE_SHA" ] || [[ "$BASE_SHA" =~ ^0+$ ]]; then
echo "No concrete base SHA available; skipping targeted fetch."
exit 0
fi

if git rev-parse --verify "$BASE_SHA^{commit}" >/dev/null 2>&1; then
echo "Base commit already present: $BASE_SHA"
exit 0
fi

for deepen_by in 25 100 300; do
echo "Base commit missing; deepening $FETCH_REF by $deepen_by."
git fetch --no-tags --deepen="$deepen_by" origin "$FETCH_REF" || true
if git rev-parse --verify "$BASE_SHA^{commit}" >/dev/null 2>&1; then
echo "Resolved base commit after deepening: $BASE_SHA"
exit 0
fi
done

echo "Base commit still missing; fetching full history for $FETCH_REF."
git fetch --no-tags origin "$FETCH_REF" || true
if git rev-parse --verify "$BASE_SHA^{commit}" >/dev/null 2>&1; then
echo "Resolved base commit after full ref fetch: $BASE_SHA"
exit 0
fi

echo "Base commit still unavailable after fetch attempts: $BASE_SHA"
17 changes: 14 additions & 3 deletions .github/actions/setup-node-env/action.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Setup Node environment
description: >
Initialize submodules with retry, install Node 22, pnpm, optionally Bun,
and run pnpm install. Requires actions/checkout to run first.
and optionally run pnpm install. Requires actions/checkout to run first.
inputs:
node-version:
description: Node.js version to install.
Expand All @@ -15,6 +15,14 @@ inputs:
description: Whether to install Bun alongside Node.
required: false
default: "true"
use-sticky-disk:
description: Use Blacksmith sticky disks for pnpm store caching.
required: false
default: "false"
install-deps:
description: Whether to run pnpm install after environment setup.
required: false
default: "true"
frozen-lockfile:
description: Whether to use --frozen-lockfile for install.
required: false
Expand All @@ -40,19 +48,20 @@ runs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ inputs.node-version }}
check-latest: true
check-latest: false

- name: Setup pnpm + cache store
uses: ./.github/actions/setup-pnpm-store-cache
with:
pnpm-version: ${{ inputs.pnpm-version }}
cache-key-suffix: "node22"
use-sticky-disk: ${{ inputs.use-sticky-disk }}

- name: Setup Bun
if: inputs.install-bun == 'true'
uses: oven-sh/setup-bun@v2
with:
bun-version: "1.3.9+cf6cdbbba"
bun-version: "1.3.9"

- name: Runtime versions
shell: bash
Expand All @@ -63,10 +72,12 @@ runs:
if command -v bun &>/dev/null; then bun -v; fi

- name: Capture node path
if: inputs.install-deps == 'true'
shell: bash
run: echo "NODE_BIN=$(dirname "$(node -p "process.execPath")")" >> "$GITHUB_ENV"

- name: Install dependencies
if: inputs.install-deps == 'true'
shell: bash
env:
CI: "true"
Expand Down
29 changes: 28 additions & 1 deletion .github/actions/setup-pnpm-store-cache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,18 @@ inputs:
description: Suffix appended to the cache key.
required: false
default: "node22"
use-sticky-disk:
description: Use Blacksmith sticky disks instead of actions/cache for pnpm store.
required: false
default: "false"
use-restore-keys:
description: Whether to use restore-keys fallback for actions/cache.
required: false
default: "true"
use-actions-cache:
description: Whether to restore/save pnpm store with actions/cache.
required: false
default: "true"
runs:
using: composite
steps:
Expand Down Expand Up @@ -38,7 +50,22 @@ runs:
shell: bash
run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"

- name: Restore pnpm store cache
- name: Mount pnpm store sticky disk
if: inputs.use-sticky-disk == 'true'
uses: useblacksmith/stickydisk@v1
with:
key: ${{ github.repository }}-pnpm-store-${{ runner.os }}-${{ inputs.cache-key-suffix }}
path: ${{ steps.pnpm-store.outputs.path }}

- name: Restore pnpm store cache (exact key only)
if: inputs.use-actions-cache == 'true' && inputs.use-sticky-disk != 'true' && inputs.use-restore-keys != 'true'
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-store.outputs.path }}
key: ${{ runner.os }}-pnpm-store-${{ inputs.cache-key-suffix }}-${{ hashFiles('pnpm-lock.yaml') }}

- name: Restore pnpm store cache (with fallback keys)
if: inputs.use-actions-cache == 'true' && inputs.use-sticky-disk != 'true' && inputs.use-restore-keys == 'true'
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-store.outputs.path }}
Expand Down
27 changes: 14 additions & 13 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,17 @@ registries:
npm-npmjs:
type: npm-registry
url: https://registry.npmjs.org
token: ${{secrets.NPM_NPMJS_TOKEN}}
replaces-base: true

updates:
# npm dependencies (root)
- package-ecosystem: npm
directory: /
schedule:
interval: weekly
interval: daily
cooldown:
default-days: 7
default-days: 2
groups:
production:
dependency-type: production
Expand All @@ -36,9 +37,9 @@ updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
interval: daily
cooldown:
default-days: 7
default-days: 2
groups:
actions:
patterns:
Expand All @@ -52,9 +53,9 @@ updates:
- package-ecosystem: swift
directory: /apps/macos
schedule:
interval: weekly
interval: daily
cooldown:
default-days: 7
default-days: 2
groups:
swift-deps:
patterns:
Expand All @@ -68,9 +69,9 @@ updates:
- package-ecosystem: swift
directory: /apps/shared/MoltbotKit
schedule:
interval: weekly
interval: daily
cooldown:
default-days: 7
default-days: 2
groups:
swift-deps:
patterns:
Expand All @@ -84,9 +85,9 @@ updates:
- package-ecosystem: swift
directory: /Swabble
schedule:
interval: weekly
interval: daily
cooldown:
default-days: 7
default-days: 2
groups:
swift-deps:
patterns:
Expand All @@ -100,9 +101,9 @@ updates:
- package-ecosystem: gradle
directory: /apps/android
schedule:
interval: weekly
interval: daily
cooldown:
default-days: 7
default-days: 2
groups:
android-deps:
patterns:
Expand All @@ -118,7 +119,7 @@ updates:
schedule:
interval: weekly
cooldown:
default-days: 7
default-days: 2
groups:
docker-images:
patterns:
Expand Down
4 changes: 4 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,10 @@
- changed-files:
- any-glob-to-any-file:
- "extensions/device-pair/**"
"extensions: acpx":
- changed-files:
- any-glob-to-any-file:
- "extensions/acpx/**"
"extensions: minimax-portal-auth":
- changed-files:
- any-glob-to-any-file:
Expand Down
Loading
Loading