Josh Lehman
d6b5891c2a
fix: ignore wrapped heartbeat boilerplate in compaction
2026-03-20 06:43:14 -07:00
samzong
5a6d94c051
fix(compaction): share real-conversation predicate and ignore tool-call-only assistant blocks
2026-03-20 06:42:27 -07:00
samzong
b1eaf639d5
fix(compaction): skip compaction only when session has no meaningful conversation
...
Fixes #40727
The compaction safeguard and the embedded-runner compaction path both
used a naive role check (user | assistant | toolResult) to decide
whether a session contains real conversation worth summarising. In
long-running heartbeat sessions nearly every message satisfies that
check, yet the *content* is boilerplate: heartbeat polls produce empty
or HEARTBEAT_OK user turns and NO_REPLY assistant turns. The guard
therefore never fires, the session grows past the 200K ceiling, and
the agent goes silent.
Fix: replace the role-only predicate with a content-aware one:
isRealConversationMessage / hasRealConversationContent (two separate
copies – safeguard.ts and compact.ts – each get the same treatment)
Rules:
• user / assistant messages are real only when their text content is
non-empty AND not a pure boilerplate sentinel (HEARTBEAT_OK or
NO_REPLY). Non-text blocks (images, attachments) are always real.
• toolResult messages are real only when a meaningful user message
appears in the previous 20 messages of the window, so tool output
that was triggered by a real human ask still counts.
Both predicates are exported via __testing / direct export so the
existing and new unit tests can cover them without mocks.
Tests added:
compaction-safeguard.test.ts – two new cases:
• tool result linked to HEARTBEAT_OK user turn → not real
• tool result linked to meaningful user ask → real
compact.hooks.test.ts – two new integration cases:
• boilerplate-only session → skips compaction (reason: no real
conversation messages)
• meaningful user ask + tool result → compaction runs
2026-03-20 06:38:22 -07:00
Ayaan Zaidi
4c60956d8e
build(android): update Gradle tooling
2026-03-20 17:12:10 +05:30
Ayaan Zaidi
3bda64f75c
perf(android): reduce tab-switch CPU churn
2026-03-20 17:10:18 +05:30
caesargattuso
57f1cf66ad
fix(gateway): skip seq-gap broadcast for stale post-lifecycle events ( #43751 )
...
* fix: stop stale gateway seq-gap errors (#43751 ) (thanks @caesargattuso)
* fix: keep agent.request run ids session-scoped
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-20 14:56:54 +05:30
Bijin
192f859325
Add Community plugins - openclaw-dingtalk ( #29913 )
...
Merged via squash.
Prepared head SHA: e8e99997cb83b8f88cc89abb7fc0b96570ef313f
Co-authored-by: sliverp <38134380+sliverp@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-03-20 16:58:51 +08:00
Bijin
6cb2fc501a
Community plugins - Add QQbot ( #29898 )
...
Merged via squash.
Prepared head SHA: c776a12d15d029e4a4858ba12653ba9bafcf6949
Co-authored-by: sliverp <38134380+sliverp@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-03-20 16:51:32 +08:00
Vincent Koc
df536c3248
test(signal): harden tool-result infra-runtime mock
2026-03-20 01:33:16 -07:00
Vincent Koc
d774b3f274
fix(ci): isolate jiti-mocked test files
2026-03-20 01:24:32 -07:00
Vincent Koc
dc06e4fd22
ci: collapse extra workflow guards into check-additional
2026-03-20 01:20:12 -07:00
Vincent Koc
0fae764f10
test(plugins): use sync jiti regression path
2026-03-20 01:12:05 -07:00
Vincent Koc
95f890a8b2
test(plugins): relax jiti error string assertions
2026-03-20 01:07:29 -07:00
Vincent Koc
f0a0a6a5b4
test(plugins): isolate git path alias regression
2026-03-20 00:57:25 -07:00
Vincent Koc
68a274c7b3
fix(ci): isolate loader git-path regression env roots
2026-03-20 00:43:03 -07:00
Vincent Koc
d25f6f1833
fix(ci): restore full loader regression coverage
2026-03-20 00:38:11 -07:00
Vincent Koc
f1e012e0fc
fix(telegram): serialize thread binding persists
2026-03-20 00:30:11 -07:00
Vincent Koc
9f8af3604d
fix(ci): split slow plugin loader regression test
2026-03-20 00:28:04 -07:00
Vincent Koc
faa8e27291
fix(ci): share compat matrix and restore skill python gating
2026-03-20 00:27:50 -07:00
Ayaan Zaidi
8ac4d13a6f
style(docs): format plugin table
2026-03-20 12:56:32 +05:30
Ayaan Zaidi
0c2e6fe97f
ci(android): use explicit flavor debug tasks
2026-03-20 12:55:52 +05:30
Ayaan Zaidi
f09f98532c
feat(android): hide restricted capabilities in play builds
2026-03-20 12:45:25 +05:30
Ayaan Zaidi
ecec0d5b2c
build(android): add play and third-party release flavors
2026-03-20 12:45:25 +05:30
Vincent Koc
dfc157e1a2
test(plugins): trim loader regression harness churn
2026-03-20 00:06:12 -07:00
Vincent Koc
3a72d2d6de
fix(config): split config doc baseline coverage
2026-03-20 00:06:12 -07:00
Vincent Koc
e56dde815e
fix(web-search): split runtime provider resolution
2026-03-20 00:06:12 -07:00
Vincent Koc
397b0d85f5
fix(tui): split assistant error formatting seam
2026-03-20 00:06:12 -07:00
Saurabh Mishra
709c730e2a
fix: standardize 'MS Teams' to 'Microsoft Teams' across docs ( #50863 )
...
* fix: standardize 'MS Teams' to 'Microsoft Teams' across docs
* Apply suggestion from @greptile-apps[bot]
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-19 23:54:47 -07:00
Vincent Koc
a562fb5550
refactor(web-search): share scoped provider config plumbing
2026-03-19 23:52:53 -07:00
Vincent Koc
96f21c37b4
fix(tools): persist remaining doctor compatibility aliases
2026-03-19 23:42:53 -07:00
Vincent Koc
6c7526f8a0
fix(web-search): share unsupported filter handling
2026-03-19 23:41:02 -07:00
Vincent Koc
ce878a9eb1
fix(test): batch unit-fast worker lifetimes
2026-03-19 23:30:48 -07:00
Vincent Koc
36a59d5c79
fix(discord): drop stale carbon deploy option
2026-03-19 23:30:48 -07:00
Vincent Koc
9af42c6590
fix(config): persist doctor compatibility migrations
2026-03-19 23:28:11 -07:00
Shakker
098a0d0d0d
chore(docs): refresh generated config baseline
2026-03-20 06:17:08 +00:00
Shakker
f2849c2417
fix(feishu): stabilize lifecycle replay tests
2026-03-20 06:13:27 +00:00
Shakker
8d805a02fd
fix(zalouser): decouple tests from zca-js runtime
2026-03-20 06:13:27 +00:00
Shakker
5036ed2699
fix(secrets): cover tavily in runtime coverage tests
2026-03-20 06:13:27 +00:00
Shakker
06fc498d54
chore(docs): refresh secretref credential matrix
2026-03-20 06:13:27 +00:00
Shakker
94ab044387
fix(ci): split unit-fast into bounded shared-worker lanes
2026-03-20 06:13:27 +00:00
Shakker
4d9ae5899d
chore(ci): refresh Linux unit memory hotspots from PR failures
2026-03-20 06:13:27 +00:00
Shakker
b90eef50ec
fix(ci): widen Linux memory-hotspot isolation cap
2026-03-20 06:13:27 +00:00
Shakker
829beced04
fix(ci): avoid Windows shell arg overflow in unit-fast
2026-03-20 06:13:27 +00:00
Shakker
3db2cfef07
chore(ci): refresh unit memory hotspot manifest
2026-03-20 06:13:27 +00:00
Shakker
d689b3fc89
fix(ci): prioritize memory-heavy unit scheduling
2026-03-20 06:13:27 +00:00
Shakker
254ea0c65e
fix(ci): parse GitHub Actions memory hotspot logs
2026-03-20 06:13:27 +00:00
Shakker
9c7da58770
fix(ci): auto-isolate memory-heavy unit tests
2026-03-20 06:13:27 +00:00
Shakker
fe863c5400
chore(ci): seed unit memory hotspot manifest
2026-03-20 06:13:27 +00:00
Ayaan Zaidi
a73e517ae3
build(protocol): regenerate swift talk models
2026-03-20 11:12:53 +05:30
Ayaan Zaidi
2afd65741c
fix: preserve talk provider and speaking state
2026-03-20 11:08:21 +05:30