admin
df7ffd2d61
fix(agents): make parallel_tool_calls fix persistent via pnpm patch
...
- Add pnpm patch for @mariozechner/pi-ai@0.53 .0 to disable parallel_tool_calls
- Update package.json and pnpm-lock.yaml to include the patched dependency
- Resolves HTTP 400 errors with models that don't support parallel tool calls (Kimi K2.5, Llama 3.3)
- Documentation updated in SRC-CUSTOMIZATION-LOG.md and OPENCLAW-GUIDE.md
Co-Authored-By: Gemini CLI <gemini-cli@google.com >
2026-02-20 01:47:00 -05:00
admin
49b66978b5
Add Telegram delivery verification with retries
...
- Add sendWithVerifyAndRetry helper for reliable message delivery
- Retry up to 3 times with delays if message_id is missing/empty
- Apply verification to all send methods (text, media, payload)
- Add .planning/README.md with repo context
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-20 01:46:26 -05:00
admin
4b93c88852
chore: record engine customizations (exec hallucination strip, pi-tools validation, system-prompt, gateway timeout)
...
- bash-tools.exec: replace script preflight with cleanHallucinatedCommand
- pi-tools.read: allowEmpty for newText, simpler param errors
- system-prompt: raw paths, inline date, NO_REPLY wording, tool ordering
- gateway-rpc: default timeout 10min for long agent/cron runs
See repo root docs/SRC-CUSTOMIZATION-LOG.md for full diff vs origin/main.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-20 01:46:26 -05:00
admin
02dfd5b863
docs: complete project research
...
Synthesized research outputs from 4 parallel researcher agents:
- STACK.md: Technology recommendations (LangChain, Kimi, Amadeus, TheMealDB)
- FEATURES.md: Table stakes vs differentiators for travel/meals/research
- ARCHITECTURE.md: Extension-only patterns, script-first automation
- PITFALLS.md: 10 critical pitfalls with prevention strategies
- SUMMARY.md: Executive summary with roadmap implications
Key findings:
- Free-first stack (Amadeus, TheMealDB, Tavily free tiers)
- Consolidation phase required before new features (18+ scattered scripts)
- Travel → Meals → Research ordering (ROI-driven)
- Extension-only architecture (never modify OpenClaw core)
- LLM hallucination validation required for actionable systems
Ready for roadmap creation.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-20 01:46:26 -05:00
admin
da393cbbd5
chore: add project config
2026-02-20 01:46:26 -05:00
admin
78ad980258
docs: initialize project
2026-02-20 01:46:26 -05:00
admin
543ee1a898
docs: map existing codebase
2026-02-20 01:46:25 -05:00
Logan Pritchett
8f80e2a467
fix(macos): set release bundle ID so Sparkle auto-update works ( #19750 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: d16e61e35a508dfcf0f29f0ee3e7495431df4c56
Co-authored-by: loganprit <72722788+loganprit@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-20 12:08:10 +05:30
Ayaan Zaidi
ab256b8ec7
fix: split telegram reasoning and answer draft streams ( #20774 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 7458444144b49c84a26030c1f3a886235c76e869
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-20 11:14:39 +05:30
mudrii
beb2b74b5b
fix(telegram): prevent silent message loss across all streamMode settings ( #19041 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 82898339f02ae08ab9eaa2eabb679326a8469ca1
Co-authored-by: mudrii <220262+mudrii@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-20 10:46:55 +05:30
Shakker
99db4c7903
Changelog: document pairing bootstrap recovery ( #21616 )
2026-02-20 05:12:05 +00:00
Shakker
aa3c8f732b
CLI: recover devices commands via local pairing fallback
2026-02-20 05:12:05 +00:00
Shakker
525d6e0671
Gateway: align pairing scope checks for read access
2026-02-20 05:12:05 +00:00
Sean McLellan
86f207adb0
fix: clean tool schemas and thinking blocks for google-antigravity (openclaw#19732) thanks @Oceanswave
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Oceanswave <760674+Oceanswave@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:49:57 -06:00
Hudson
7b81383d44
fix(signal): preserve case for Base64 group IDs in target normalization (openclaw#10623) thanks @heyhudson
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: heyhudson <258693705+heyhudson@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:41:55 -06:00
Kirill Shchetynin
ee519086f6
Feature/default messenger delivery target (openclaw#16985) thanks @KirillShchetinin
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: KirillShchetinin <13061871+KirillShchetinin@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:37:19 -06:00
Ephraim Moss
59e58bf81c
fix: strip unsupported JSON Schema keywords for Claude via Cloud Code Assist (openclaw#20124) thanks @ephraimm
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check (fails on existing unrelated type error: src/agents/subagent-announce.format.e2e.test.ts:71)
- pnpm test:e2e src/agents/pi-embedded-runner/google.e2e.test.ts
- pnpm test:macmini (fails on existing unrelated test: src/agents/subagent-registry.steer-restart.test.ts)
Co-authored-by: ephraimm <2803669+ephraimm@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:31:20 -06:00
Nabbil Khan
f91034aa6b
fix(auth): clear all usage stats fields in clearAuthProfileCooldown (openclaw#19211) thanks @nabbilkhan
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: nabbilkhan <203121263+nabbilkhan@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:21:37 -06:00
Mr. Guy
dece0fa146
fix: add customBindHost to gateway config validation (openclaw#20318) thanks @MisterGuy420
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: MisterGuy420 <255743668+MisterGuy420@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:06:22 -06:00
Tak Hoffman
14618af237
chore: bump Pi SDK packages to 0.54.0 (openclaw#21578) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:04:33 -06:00
Clawborn
cbcc75f6c7
Add Claude Sonnet 4.6 and 4.5 to GitHub Copilot model catalog (openclaw#20270) thanks @Clawborn
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Clawborn <261310391+Clawborn@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:54:52 -06:00
Tak Hoffman
c1ac37a641
Config: expose Pi compaction tuning values (openclaw#21568) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:41:09 -06:00
Dale Babiy
10dab4f2c7
fix(anthropic): preserve pi-ai default betas when injecting anthropic-beta header (openclaw#19789) thanks @minupla
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: minupla <42547246+minupla@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:23:00 -06:00
Glucksberg
38b4fb5d55
fix(auth/session): preserve override reset behavior and repair oauth profile-id drift (openclaw#18820) thanks @Glucksberg
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:16:26 -06:00
Vishal
f1e1cc4ee3
feat: surface cached token counts in /status output (openclaw#21248) thanks @vishaltandale00
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: vishaltandale00 <9222298+vishaltandale00@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:06:13 -06:00
George Pickett
db8ffb13f4
fix: prevent whatsapp fallback for webchat sessions ( #21534 ) (thanks @lbo728)
2026-02-19 18:41:57 -08:00
lbo728
d6fbed7904
fix: prevent whatsapp fallback for webchat sessions
...
Fixes #21444
When connecting via Hub Chat/webchat, the runtime channel was incorrectly
defaulting to 'whatsapp' instead of being omitted or set to 'webchat'.
Root cause: The channel resolution fallback chain (OriginatingChannel ->
Surface -> Provider) would use Provider even for webchat sessions, where
Provider may be unrelated (e.g., the user's default configured channel).
Changes:
- Add explicit webchat detection before falling back to Provider
- Skip Provider fallback when Surface is 'webchat' or Provider is 'webchat'
- Channel field is now undefined for webchat sessions (no incorrect label)
This ensures webchat sessions don't receive WhatsApp-specific formatting
hints (no markdown tables, no headers) and fixes the runtime label.
2026-02-19 18:41:57 -08:00
青雲
21448508a1
fix: Grok web_search extracts output_text blocks at top level (openclaw#20508) thanks @echoVic
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: echoVic <16428813+echoVic@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 20:37:15 -06:00
Tak Hoffman
d9e46028f5
fix(cron/whatsapp): route implicit delivery to allowlisted recipients (openclaw#21533) thanks @Takhoffman
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 20:33:37 -06:00
Rodrigo Uroz
a87b5fb009
(feat): MMR and temporal decay / bring back schema changes (openclaw#18786) thanks @rodrigouroz
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: rodrigouroz <384037+rodrigouroz@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 20:20:02 -06:00
adhitShet
164d478652
fix(cli): correct --verbose / -v option syntax in acp commands ( #21303 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 20d058dcf524765f53681b601f605b0d4b3129f3
Co-authored-by: adhitShet <131381638+adhitShet@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-19 21:04:22 -05:00
Gustavo Madeira Santana
9264a8e21a
chore: move skills to maintainers repository
2026-02-19 20:50:24 -05:00
ahdernasr
e321f21daa
fix: serialize tool result delivery to preserve message ordering ( #21231 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 68adbf58c8ec92d32e6183b0c6432963b2b4f9d8
Co-authored-by: ahdernasr <44983175+ahdernasr@users.noreply.github.com >
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
Reviewed-by: @joshavant
2026-02-19 17:23:23 -08:00
adhitShet
d871ee91d0
fix(config-cli): correct misleading --json flag description ( #21332 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: b6c8d1edfa82a44c9e7e398ac549c8a5e8029599
Co-authored-by: adhitShet <131381638+adhitShet@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-19 20:09:17 -05:00
adhitShet
ae4907ce6e
fix(heartbeat): return false for zero-width active-hours window ( #21408 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 993860bd0393fe9f48022f36c950c069863b4a61
Co-authored-by: adhitShet <131381638+adhitShet@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-19 20:03:57 -05:00
adhitShet
57f0ac21e9
fix(heartbeat): constrain 24-hour sentinel to 24:00 only in regex ( #21410 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 7b8fe757389d61d339f48772fc27244ff004d17f
Co-authored-by: adhitShet <131381638+adhitShet@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-19 19:52:38 -05:00
adhitShet
399781aaca
fix: remove duplicate comment in orderProfilesByMode ( #21409 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 04271651d4fc0eb40f654b2bcb9ac919fbd7b8ab
Co-authored-by: adhitShet <131381638+adhitShet@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-19 19:46:51 -05:00
Gustavo Madeira Santana
ffa7de0467
chore: add CHANGELOG entry
2026-02-19 19:34:30 -05:00
Gustavo Madeira Santana
cf4ffff3e1
fix(heartbeat): run when HEARTBEAT.md is missing
2026-02-19 19:32:18 -05:00
Val Alexander
6bc9824735
docs: update clawtributors for PR #21447
2026-02-19 17:47:50 -06:00
Josh Avant
29ad0736f4
fix(gateway): tolerate legacy paired metadata in ws upgrade checks ( #21447 )
...
Fixes the pairing required regression from #21236 for legacy paired devices
created without roles/scopes metadata. Detects legacy paired metadata shape
and skips upgrade enforcement while backfilling metadata in place on reconnect.
Co-authored-by: Josh Avant <830519+joshavant@users.noreply.github.com >
Co-authored-by: Val Alexander <68980965+BunsDev@users.noreply.github.com >
2026-02-19 17:45:56 -06:00
Vincent Koc
7ce357ff8b
docs: add Vincent Koc to contributor credits
2026-02-19 15:13:38 -08:00
Vincent Koc
ce2a39a271
Security: bump hono for timing-safe auth hardening
2026-02-19 15:13:38 -08:00
Vincent Koc
2c93f6656a
Docs: record PR #21336 anthropic onboarding fix
2026-02-19 15:13:38 -08:00
Jeremy Mumford
6ef365d062
resolved bug with doing a raw call to anthropic compatible apis ( #21336 )
2026-02-19 15:04:49 -08:00
Peter Steinberger
f66b23de75
chore(release): bump versions to 2026.2.20
2026-02-20 00:02:53 +01:00
Peter Steinberger
20004711df
fix(update): restart daemon after service refresh
2026-02-20 00:02:53 +01:00
Val Alexander
82a1741336
fix: update formula handling in SKILL.md and frontmatter.ts ( #11046 )
...
- Changed "cask" to "formula" in SKILL.md for consistency.
- Enhanced formula parsing in frontmatter.ts to trim whitespace and fallback to cask if formula is not provided.
2026-02-19 16:57:08 -06:00
Vincent Koc
4883aa5439
docs(changelog): credit prior Slack recipient-id groundwork for 20988 ( #21434 )
2026-02-19 14:48:29 -08:00
David Szarzynski
bbcb3ac6e0
fix(slack): pass recipient_team_id to streaming API calls ( #20988 )
...
* fix(slack): pass recipient_team_id and recipient_user_id to streaming API calls
The Slack Agents & AI Apps streaming API (chat.startStream / chat.stopStream)
requires recipient_team_id and recipient_user_id parameters. Without them,
stopStream fails with 'missing_recipient_team_id' (all contexts) or
'missing_recipient_user_id' (DM contexts), causing streamed messages to
disappear after generation completes.
This passes:
- team_id (from auth.test at provider startup, stored in monitor context)
- user_id (from the incoming message sender, for DM recipient identification)
through to the ChatStreamer via recipient_team_id and recipient_user_id options.
Fixes #19839 , #20847 , #20299 , #19791 , #20337
AI-assisted: Written with Claude (Opus 4.6) via OpenClaw. Lightly tested
(unit tests pass, live workspace verification in progress).
* fix(slack): disable block streaming when native streaming is active
When Slack native streaming (`chat.startStream`/`stopStream`) is enabled,
`disableBlockStreaming` was set to `false`, which activated the app-level
block streaming pipeline. This pipeline intercepted agent output, sent it
via block replies, then dropped the final payloads that would have flowed
through `deliverWithStreaming` to the Slack streaming API — resulting in
zero replies delivered.
Set `disableBlockStreaming: true` when native streaming is active so the
final reply flows through the Slack streaming API path as intended.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-02-19 14:44:34 -08:00