13553 Commits

Author SHA1 Message Date
kumarabhirup
6d220fb4f4
ci: skip Run tests step for bun lane on push events 2026-02-22 01:14:05 -08:00
kumarabhirup
20ace16d4c
fix(web): prevent subagent sessions from leaking into chat sidebar
- Skip updateIndex for session IDs containing :subagent: so they don't
  appear as top-level "New Chat" entries in the sidebar
- Filter subagent IDs in the sidebar component as a safety net
- Clean up existing leaked entries from index.json

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 01:11:26 -08:00
kumarabhirup
36553cf0c0
docs: enhance description of past web sessions in system prompt
Updated the documentation for past web sessions to clarify that each session is stored as a .jsonl file, and provided instructions on managing the index.json file for UI control and chat deletion.
2026-02-22 01:10:21 -08:00
Kumar Abhirup
8eb30c435d
Merge pull request #78 from DenchHQ/openclaw/2026.2.22
Upstream sync: Openclaw 2026.2.22
2026-02-22 00:39:20 -08:00
kumarabhirup
e4c01e7ca2
update: always install canonical ironclaw package name 2026-02-22 00:38:25 -08:00
kumarabhirup
6e2f34e193
agents: add self_update tool for non-owner gateway updates 2026-02-22 00:38:18 -08:00
kumarabhirup
e5a3b3685f
ci: add Docker base images to Dependabot schedule 2026-02-22 00:38:13 -08:00
kumarabhirup
7e894b5199
chore: bump version to 2026.2.22 2026-02-22 00:38:09 -08:00
kumarabhirup
a046cf2349
refactor(web): unify subagent tracking with parent session system
Subagents now use the same ActiveRun infrastructure as parent sessions:
- startSubscribeRun() creates a subscribe-only ActiveRun when sessions_spawn
  tool results are detected, using the same event buffering, persistence,
  and SSE reconnection as parent runs
- Stream/stop/chat routes no longer branch on subagent vs parent; both
  use getActiveRun/subscribeToRun with the session key as map key
- hasRunningSubagentsForParent moved into active-runs.ts to check the
  unified activeRuns map (+ disk registry fallback)
- Deferred finalization on lifecycle/end with 5s safety timeout
- ev.data.text fallback for assistant events without delta field
- 24h cleanup grace for subscribe-only runs (vs 30s for parent)

Reverts the broken childSessionKey registration from 32cfcf14f.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 00:35:07 -08:00
kumarabhirup
32cfcf14fa
fix(web): use correct field name childSessionKey in sessions_spawn registration
The spawn tool result uses `childSessionKey` (not `sessionKey`), and
task/label come from the tool input args, not the result details.
Without this fix registerSubagent was never called because the
extracted sessionKey was always undefined.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 00:15:33 -08:00
kumarabhirup
b29b2e39a3
fix(web): repair subagent streaming pipeline
- Handle ev.data.text fallback when delta is absent in assistant events
  (both active-runs and subagent-runs)
- Defer subagent finalizeRun until subscribe process closes so buffered
  events in readline are still delivered to SSE subscribers
- Register subagents from sessions_spawn tool results in active-runs so
  hasRunningSubagentsForParent works without opening SubagentPanel first
- Add disk registry fallback in hasRunningSubagentsForParent for cases
  where in-memory parentIndex has no entries
- Fix pre-commit hook: tolerate oxfmt exit 2 when all files are ignored

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 00:06:31 -08:00
kumarabhirup
15063e85a2
Merge branch 'main' of https://github.com/openclaw/openclaw into openclaw/2026.2.22 2026-02-21 21:27:55 -08:00
Vignesh Natarajan
98b2b16ac3 Security/Exec: persist inner commands for shell-wrapper approvals 2026-02-21 21:26:20 -08:00
miz-cha
2f023a4775
fix(telegram): disable autoSelectFamily by default on WSL2 (#21916)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 431fd966706e300a378b177b25b00af952eddc8b
Co-authored-by: MizukiMachine <185313792+MizukiMachine@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-22 10:54:49 +05:30
Vignesh Natarajan
73b4330d4c CLI/Config: keep explicitly unset keys removed 2026-02-21 21:08:04 -08:00
Robin Waslander
daf036a4f6
fix(slash): persist channel metadata from slash command sessions (#23065)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 29fa20c7d773b2aac62dea912e00e438ce8ba9f6
Co-authored-by: hydro13 <6640526+hydro13@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-22 10:29:06 +05:30
Vignesh Natarajan
6d11b46994 Media: preserve PDF MIME classification in file extraction 2026-02-21 20:50:25 -08:00
Ayaan Zaidi
63b4c500d9
fix: prevent Telegram preview stream cross-edit race (#23202)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 529abf209d56d9f991a7d308f4ecce78ac992e94
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-22 10:04:33 +05:30
Vignesh Natarajan
413f81b856 Memory/QMD: migrate legacy unscoped collections 2026-02-21 20:31:12 -08:00
Vignesh Natarajan
961bde27fe Cron: guard missing expr in schedule parsing 2026-02-21 20:18:11 -08:00
Vignesh Natarajan
eea0a68199 chore: make tui callback invocation tsgo-safe 2026-02-21 20:05:25 -08:00
Vignesh Natarajan
2b5952f8c3 chore: fix tui test callback narrowing for CI 2026-02-21 20:03:32 -08:00
Vignesh Natarajan
c51c2a2dca Slack: preserve slash options receiver binding 2026-02-21 20:01:39 -08:00
Tak Hoffman
2e9ee22a9c UI: fix light-mode chat toggle active state 2026-02-21 21:55:21 -06:00
Vignesh Natarajan
8920e281cc Plugins: allowlist plugins when enabling from CLI 2026-02-21 19:37:26 -08:00
Vignesh Natarajan
483c464b62 Gateway: preserve token scopes on scope-less repair approvals 2026-02-21 19:37:15 -08:00
Vignesh Natarajan
55d492b4cd Gateway: allow operator admin scope for pairing and approvals 2026-02-21 19:37:04 -08:00
Vignesh Natarajan
68cb4fc8a1 TUI: render sending and waiting indicators immediately 2026-02-21 19:28:42 -08:00
Vignesh Natarajan
68b92e80f7 Agents: log lifecycle error text for embedded run failures 2026-02-21 19:24:45 -08:00
Vignesh Natarajan
35fe33aa90 Agents: classify Anthropic api_error internal server failures for fallback 2026-02-21 19:22:16 -08:00
Vignesh Natarajan
a10d689860 TUI: coalesce multiline paste submits on macOS terminals 2026-02-21 19:19:55 -08:00
Vignesh Natarajan
f2d664e24f Gateway: deep-compare array config paths for reload diff 2026-02-21 19:17:46 -08:00
Vignesh Natarajan
2830dafbe9 Cron: keep list/status responsive during startup catch-up 2026-02-21 19:13:04 -08:00
kumarabhirup
177ce3c3e2
fix: update upstream test assertions for Ironclaw branding
- Telegram pairing test: expect 'ironclaw' not 'openclaw' in CLI hint
- Status update test: expect 'ironclaw update' not 'openclaw update'

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 19:12:00 -08:00
Vignesh Natarajan
c45a5c551f Agents: preserve unsafe integer tool args in Ollama stream 2026-02-21 19:08:31 -08:00
Vignesh Natarajan
4550a52007 TUI: filter model picker to allowlisted models 2026-02-21 19:03:15 -08:00
Andrew Jeon
853ae626fa
feat: add Korean language support for memory search query expansion (#18899)
* feat: add Korean stop words and tokenization for memory search

* fix: address review comments on Korean query expansion

* fix: lint errors - curly brace and toSorted

* fix(memory): improve Korean stop words and deduplicate

* Memory: tighten Korean query expansion filtering

* Docs/Changelog: credit Korean memory query expansion

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-21 21:33:30 -05:00
kumarabhirup
45f86187ed
fix: resolve merge-induced type errors and lint issues
- Deduplicate SkillEntry/SkillSnapshot imports in workspace.ts
- Add missing skillFilter/applySkillsPromptLimits in workspace skills
- Add sessionEventLog/sessionSubscriptions to runtime state return type
- Add allowRealIpFallback to GatewayConfig type
- Fix agent.subscribe/unsubscribe validation to use AJV pattern
- Add missing imports (RuntimeEnv, inheritOptionFromParent, etc.)
- Fix spread type in run-main.exit.test.ts
- Type chat.ts appendMessage call correctly
- Rename synology-chat workspace ref from openclaw to ironclaw
- Regenerate pnpm-lock.yaml for merged dependencies

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 18:25:26 -08:00
Vignesh Natarajan
5b4409d5d0 fix: pairing admin satisfies write (#23125) (thanks @vignesh07) 2026-02-21 18:25:13 -08:00
vignesh07
426d97797d fix(pairing): treat operator.admin as satisfying operator.write 2026-02-21 18:25:13 -08:00
kumarabhirup
6594de6186
Merge Ironclaw changes onto upstream Openclaw 2026.2.22
Replays all Ironclaw-specific changes (176 commits) onto the latest
upstream Openclaw release (2026.2.22). Conflicts auto-resolved in
favor of Ironclaw to guarantee zero change loss.

Merge base: cbc3de6c9 (2026-02-16)
Upstream: a37e12eab (upstream/main, 2026.2.22)
Ironclaw: 3009566c9 (origin/main, 2026.2.15-1.9)
Backup: ironclaw-backup-pre-sync

Conflict resolutions:
- 6 GitHub workflow files: deleted (Ironclaw intentionally stripped)
- src/sessions/session-key-utils.test.ts: kept (Ironclaw modified)
- Duplicate imports from merge: deduplicated
- Unused imports from upstream code Ironclaw overrode: removed
- Broken test indentation from merge: fixed

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 18:06:01 -08:00
vignesh07
a37e12eabc docs(changelog): credit nicole-luxe for mcporter QMD work 2026-02-21 17:32:59 -08:00
Vincent Koc
7a6ff4c55a
docs(changelog): credit BlueBubbles DM history fix (#23095) 2026-02-21 20:03:17 -05:00
Ryan Haines
75a9ea004b
Fix BlueBubbles DM history backfill bug (#20302)
* feat: implement DM history backfill for BlueBubbles

- Add fetchBlueBubblesHistory function to fetch message history from API
- Modify processMessage to fetch history for both groups and DMs
- Use dmHistoryLimit for DMs and historyLimit for groups
- Add InboundHistory field to finalizeInboundContext call

Fixes #20296

* style: format with oxfmt

* address review: in-memory history cache, resolveAccount try/catch, include is_from_me

- Wrap resolveAccount in try/catch instead of unreachable guard (it throws)
- Include is_from_me messages with 'me' sender label for full conversation context
- Add in-memory rolling history map (chatHistories) matching other channel patterns
- API backfill only on first message per chat, not every incoming message
- Remove unused buildInboundHistoryFromEntries import

* chore: remove unused buildInboundHistoryFromEntries helper

Dead code flagged by Greptile — mapping is done inline in
monitor-processing.ts.

* BlueBubbles: harden DM history backfill state handling

* BlueBubbles: add bounded exponential backoff and history payload guards

* BlueBubbles: evict merged history keys

* Update extensions/bluebubbles/src/monitor-processing.ts

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

---------

Co-authored-by: Ryan Mac Mini <ryanmacmini@ryans-mac-mini.tailf78f8b.ts.net>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-21 20:00:09 -05:00
Kumar Abhirup
3009566c92
Merge pull request #77 from DenchHQ/kumareth/test-suite
test: add comprehensive workspace & subagent test suite with deploy pre-flight checks
2026-02-21 16:57:36 -08:00
Vignesh
3317b49d3b
feat(memory): allow QMD searches via mcporter keep-alive (openclaw#19617) thanks @vignesh07
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini

Co-authored-by: vignesh07 <1436853+vignesh07@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-21 18:54:33 -06:00
kumarabhirup
729a71b838
release: v2026.2.15-1.9 2026-02-21 16:21:48 -08:00
Peter Steinberger
2e8e357bf7 test(telegram): use mockClear in per-case bot setup loops 2026-02-21 23:59:08 +00:00
Peter Steinberger
057233953e test(retry): table-drive retryAfter timer cases 2026-02-21 23:58:33 +00:00
Peter Steinberger
1381c4c64a test(telegram): replace redundant bot setup mock resets with clears 2026-02-21 23:58:33 +00:00