Commit Graph

31234 Commits

Author SHA1 Message Date
Josh Lehman
0d815fc190 fix: compact engine-owned tool loops sooner 2026-04-14 01:40:53 -07:00
Josh Lehman
5a940dc523 fix: restore precheck stub shape 2026-04-14 01:40:53 -07:00
Josh Lehman
1484d96a42 test: stabilize context-engine loop hook coverage 2026-04-14 01:40:53 -07:00
Josh Lehman
e2758fee9b fix: tighten context-engine loop compaction 2026-04-14 01:40:53 -07:00
Bikkies
e0b82c3ff8 fix: revert skipAfterTurn, let finalize ingest the final message
- Remove loopHookActive flag, skipAfterTurn param, and the conditional skip in finalizeAttemptContextEngineTurn
- The finalize afterTurn must run to ingest the final assistant message which is appended after the last transformContext call
- lossless-claw deduplicates internally so the overlap with the loop hook's earlier ingestion is benign
2026-04-14 01:40:53 -07:00
Bikkies
954a1d7005 fix: use reference identity instead of length check for assembled view
- Compare assembled.messages !== sourceMessages instead of length, so engines that rewrite content without changing array count are respected
- Add test for same-count-different-reference assembly
2026-04-14 01:40:53 -07:00
Bikkies
88fa65957a fix: cache assembled view for retries, skip duplicate finalize afterTurn
- Return the last assembled view on unchanged iterations instead of falling back to raw source messages, so API retries use the compacted context
- Add skipAfterTurn param to finalizeAttemptContextEngineTurn so the end-of-attempt path skips ingestion when the loop hook already handled it during the tool loop
- Set loopHookActive flag at install site and pass it through to finalize
- Add test verifying cached view is returned on retry
2026-04-14 01:40:53 -07:00
Bikkies
ff9d68bdd9 fix: re-assemble when afterTurn is unavailable
- Decouple lastSeenLength advancement from afterTurn existence so engines without afterTurn still advance the fence and trigger assemble on new messages
- Use hasNewMessages flag instead of didCallAfterTurn for the assemble gate
- Add test verifying assemble fires on every iteration with new messages when engine lacks afterTurn
2026-04-14 01:40:53 -07:00
Bikkies
6a8b59c37d fix: address review feedback on installContextEngineLoopHook
- Initialise lastSeenLength lazily from a caller-supplied getPrePromptMessageCount so the first afterTurn call uses the same fence as finalizeAttemptContextEngineTurn
- Skip engine.assemble on iterations where no new messages arrived and a previous assemble already happened
- Hoist prePromptMessageCount in runEmbeddedAttempt so the install site can pass a getter that resolves the correct value after heartbeat filtering
- Add 6 unit tests covering fence initialisation, lazy getter evaluation, fallback to 0, and assemble throttling
2026-04-14 01:40:52 -07:00
Bikkies
d4f6f036b9 style: trim installContextEngineLoopHook doc comment 2026-04-14 01:40:52 -07:00
Bikkies
846edb45bd test: cover installContextEngineLoopHook
- Add unit coverage for the new per-iteration ingest and assemble hook
- Verify afterTurn is called once per delta with the correct prePromptMessageCount, and skipped when no new messages have been appended
- Verify the assembled view is returned only when its length differs from the source, and the source array is never mutated
- Verify the hook tolerates engines that do not implement afterTurn, and falls through to source messages when afterTurn or assemble throws
- Verify dispose restores the previous transformContext
2026-04-14 01:40:52 -07:00
Bikkies
91868da1e6 context-engine: per-iteration ingest and assemble for engine-owned sessions
- Add `installContextEngineLoopHook` to call `afterTurn` and return `assemble()` from `transformContext` on every LLM iteration
- Skip the built-in tool-result guard and preemptive overflow precheck when `info.ownsCompaction === true`
- Lets long-running subagents compact mid tool loop instead of only at end of attempt
- Sessions without a context engine, or where the engine does not own compaction, behave exactly as before
2026-04-14 01:40:52 -07:00
Vincent Koc
33a698fe10 fix(qa-lab): correct scenario catalog type 2026-04-14 09:39:20 +01:00
Mason Huang
7eecfa411d fix(browser): unblock loopback CDP readiness under strict SSRF defaults (#66354)
Merged via squash.

Prepared head SHA: d9030ff2f0
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Reviewed-by: @hxy91819
2026-04-14 16:30:43 +08:00
Vincent Koc
e59f5ecac3 fix(tools): normalize media model lookups (#66422)
* fix(tools): normalize media model lookups

* Update CHANGELOG.md
2026-04-14 09:23:52 +01:00
Ayaan Zaidi
aa0dc118f1 fix: preserve subagent registry runtime import path across source and dist (#66420)
* fix(build): correct subagent registry runtime import path

* fix: correct subagent registry runtime import path (#66420)

* fix: preserve subagent registry runtime import path across source and dist (#66420)
2026-04-14 13:52:24 +05:30
Vincent Koc
38de896419 fix(agents): honor embedded ollama timeouts (#66418) 2026-04-14 09:21:22 +01:00
Vincent Koc
900681751d test(qa-lab): seed broken-turn recovery scenarios (#66416) 2026-04-14 09:03:49 +01:00
Vincent Koc
37f449d7e1 fix(memory): restore ollama embedding adapter (#66269)
* fix(memory): restore ollama embedding adapter

* Update CHANGELOG.md
2026-04-14 09:02:31 +01:00
yongqiang li
6a5ff83b24 fix(build): include subagent-registry.runtime.js in dist output (#66205)
* fix: ensure subagent-registry.runtime.js is included in dist output

* fix(build): ship subagent registry runtime

* Update CHANGELOG.md

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-14 09:00:40 +01:00
VACInc
26e80cc6cc [codex] Telegram: unblock status commands behind busy turns (#66226)
* Telegram: unblock status commands behind busy turns

* fix(telegram): keep export-session on topic lane

* Update CHANGELOG.md

---------

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-14 08:57:07 +01:00
Ayaan Zaidi
213c36cf51 fix(browser): preserve legacy strict SSRF alias 2026-04-14 12:50:02 +05:30
Ayaan Zaidi
024f4614a1 fix: add browser SSRF follow-up changelog entry (#66386) 2026-04-14 12:42:59 +05:30
Ayaan Zaidi
1dabfef28d fix(browser): preserve explicit strict SSRF config 2026-04-14 12:42:59 +05:30
Ayaan Zaidi
1b76966f05 fix(browser): use loopback policy for json-new fallback 2026-04-14 12:42:59 +05:30
Ayaan Zaidi
bf1d49093a fix(browser): relax default hostname SSRF guard 2026-04-14 12:42:59 +05:30
Neerav Makwana
a743b30b8b fix: honor configured store limits (#66240) (thanks @neeravmakwana)
* fix(media): honor configured store limits

* fix(media): report effective source limits

* refactor(media): distill configured limit wiring

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 11:53:20 +05:30
Neerav Makwana
0381852c26 fix: harden approvals get timeout handling (#66239) (thanks @neeravmakwana)
* fix(cli): harden approvals get timeout handling

* fix(cli): sanitize approvals timeout notes

* fix(cli): distill approvals timeout note

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 11:29:59 +05:30
Luke
0abe64a4ff Agents: clarify local model context preflight (#66236)
Merged via squash.

Prepared head SHA: 11bfaf15f6
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
Reviewed-by: @ImLukeF
2026-04-14 15:38:10 +10:00
拐爷&&老拐瘦
852484965f fix: cache external plugin catalog lookups in auto-enable (#66246) (thanks @yfge)
* fix: cache external plugin catalog lookups in auto-enable

Fixes openclaw/openclaw#66159

* test: restore readFileSync spy in plugin auto-enable test

* refactor: distill plugin auto-enable cache path

* fix: cache external plugin catalog lookups in auto-enable (#66246) (thanks @yfge)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 09:41:02 +05:30
Peter Steinberger
55604a9a91 test: keep telegram cache boundary compatible 2026-04-13 20:50:11 -07:00
Peter Steinberger
73d3cf9920 test: bound docker fs bridge probes 2026-04-13 20:49:39 -07:00
Peter Steinberger
3deea5a426 fix: mirror baileys root dependency 2026-04-13 20:49:39 -07:00
Peter Steinberger
df84225504 test: align post-rebase full-suite drift 2026-04-13 20:49:39 -07:00
Peter Steinberger
67ffb6f6c2 fix: keep baileys plugin-local 2026-04-13 20:49:39 -07:00
Peter Steinberger
1277294293 test: drop removed agent scope suppression 2026-04-13 20:49:39 -07:00
Peter Steinberger
296471b692 test: align cron model error expectations 2026-04-13 20:49:39 -07:00
Peter Steinberger
4b127adc9d test: align agent session resolver mocks 2026-04-13 20:49:39 -07:00
Peter Steinberger
0d6643e244 test: align cron runtime seams 2026-04-13 20:49:39 -07:00
Peter Steinberger
311bc842b8 fix: remove agent config lint suppression 2026-04-13 20:49:39 -07:00
Peter Steinberger
d4f556a052 fix: align latest main type drift 2026-04-13 20:49:39 -07:00
Peter Steinberger
5b24009271 test: mock model fallback source check 2026-04-13 20:49:39 -07:00
Peter Steinberger
cf3d27ab94 test: use cron embedded runtime mock 2026-04-13 20:49:39 -07:00
Peter Steinberger
00415e2010 test: refresh cron and mcp typed fixtures 2026-04-13 20:49:39 -07:00
Peter Steinberger
ff8605f3c2 test: update model fallback auth store mock 2026-04-13 20:49:39 -07:00
Peter Steinberger
1e11b36d80 test: align feishu replay helper typing 2026-04-13 20:49:39 -07:00
Peter Steinberger
c09031f15a fix: tighten inbound replay typing 2026-04-13 20:49:39 -07:00
Peter Steinberger
63965dc70b test: stabilize gateway wake gating regression 2026-04-13 20:49:39 -07:00
Peter Steinberger
ca9f969831 test: cover gateway wake startup gating 2026-04-13 20:49:39 -07:00
tmimmanuel
a2ab9e6a8e fix: avoid inline dotenv secrets in systemd unit during service repair (#66249) (thanks @tmimmanuel)
* fix(daemon): avoid inline dotenv secrets in systemd unit during service repair

* fix(daemon): sanitize systemd envfile and dedupe state-dir resolution

* fix(daemon): fail on multiline dotenv values for systemd envfile

* test(daemon): cover systemd envfile staging

* fix: keep systemd envfile overrides intact (#66249) (thanks @tmimmanuel)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 09:06:10 +05:30