Commit Graph

31743 Commits

Author SHA1 Message Date
Peter Steinberger
92859357bb test: isolate agent auth and spawn hotspots 2026-04-17 07:15:27 +01:00
Peter Steinberger
dd9d2ebd01 test: stabilize MCP startup disposal race 2026-04-17 07:15:27 +01:00
Peter Steinberger
5817a76236 test: merge browser contract server suites 2026-04-17 07:15:27 +01:00
Peter Steinberger
a0d9598425 test: narrow ollama provider discovery setup 2026-04-17 07:15:27 +01:00
Peter Steinberger
daaebb8558 test: split browser snapshot target helper 2026-04-17 07:15:27 +01:00
Peter Steinberger
f57ce21d73 test: trim process-backed agent assertions 2026-04-17 07:15:27 +01:00
Peter Steinberger
b71c91022b test: collapse exec preflight parser cases 2026-04-17 07:15:27 +01:00
Peter Steinberger
d07c921ae3 test: trim provider extra-param imports 2026-04-17 07:15:27 +01:00
Peter Steinberger
132d3c76a0 test: reuse browser server harness imports 2026-04-17 07:15:27 +01:00
Peter Steinberger
35dcd06764 test: trim agent test hotspots 2026-04-17 07:15:27 +01:00
Gustavo Madeira Santana
7ae670e501 Tests: fast-path Slack message tool discovery 2026-04-17 02:00:26 -04:00
Gustavo Madeira Santana
878f2122e5 Tests: fast-path Matrix ACP thread binding 2026-04-17 02:00:26 -04:00
Gustavo Madeira Santana
807c6648f9 Tests: fast-path gateway auth bypass discovery 2026-04-17 02:00:26 -04:00
Gustavo Madeira Santana
178c36532d Tests: isolate perf-sensitive env state 2026-04-17 02:00:26 -04:00
Ayaan Zaidi
26f7198eda fix(memory-core): preserve vector dims on readonly recovery 2026-04-17 11:22:56 +05:30
Ayaan Zaidi
bec52e5f7e fix: clear compaction replay after visible boundaries (#67993) 2026-04-17 11:18:22 +05:30
Ayaan Zaidi
5aad79571e fix(telegram): clear compaction replay after visible boundaries 2026-04-17 11:18:22 +05:30
Ayaan Zaidi
671579663b fix: preserve post-stream error payloads (#67991)
* fix(reply): preserve post-stream error payloads

* fix: preserve post-stream error payloads (#67991)
2026-04-17 11:11:37 +05:30
Rubén Cuevas
7b0e950e09 fix: dedupe degraded sqlite-vec warnings (#67898) (thanks @rubencu)
* Agents: dedupe bootstrap truncation warnings

* Memory: dedupe sqlite-vec degradation warnings

* Memory: align degraded vector warning

* test(memory-core): remove stale vector warning arg

* fix(memory-core): reset degraded warning on vector reset

* fix(memory-core): preserve warning latch across reindex rollback

* fix: dedupe degraded sqlite-vec warnings (#67898) (thanks @rubencu)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-17 11:09:14 +05:30
Chinar Amrutkar
8205de84a9 fix: clear stale telegram ACP bindings on startup (#67822) (thanks @chinar-amrutkar)
* fix(telegram): clean up thread bindings to stale/failed ACP sessions on startup

When loading persisted thread bindings on manager creation, validate each
ACP session against the session store. Remove bindings where:
- Session entry doesn't exist (deleted externally)
- Session status is failed/killed/timeout
- ACP runtime state is 'error'

This addresses issue #60102 where Telegram DMs remained routed to stale
ACP sessions even after restart, because the binding file persisted
across restarts without validating the target session was still valid.

* fix(telegram): guard against null session entry and transient store read failures

Address review comments on PR #67822:

1. Skip bindings when readAcpSessionEntry returns null or when
   session store is temporarily unreadable (storeReadFailed: true).
   Without this, a transient I/O error would mark all ACP bindings
   as stale and delete them on every startup.

2. Only set needsPersist when bindings were actually removed.
   Previously, stale session keys from OTHER accounts could set
   needsPersist=true even when zero bindings were removed for
   the current account — causing spurious disk writes.

Also clean up redundant optional chaining on entry.status now
that we guard against undefined/nullable sessionEntry.

* perf(telegram): dedupe ACP session reads in startup cleanup

Cache readAcpSessionEntry calls by targetSessionKey. Multiple bindings
to the same ACP session now result in a single session store read instead
of one read per binding.

Addresses chatgpt-codex-connector P2 review comment on PR #67822.

* fix(telegram): skip non-ACP session keys in stale binding cleanup

Address chatgpt-codex-connector P1 review comment on PR #67822:

Plugin-bound Telegram conversations use "plugin-binding:*" keys
with targetKind === "acp", but these are NOT ACP runtime sessions.
readAcpSessionEntry() returns no entry for them, so !sessionEntry.entry
would classify them as stale and delete them on every startup.

Now checks isAcpSessionKey(binding.targetSessionKey) to skip plugin-bound
sessions from the stale session cleanup scan.

Also clarifies the comment to explain why we use targetKind === "acp"
// together with isAcpSessionKey() check.

* fix(telegram): import isAcpSessionKey from sessions/session-key-utils

isAcpSessionKey is not re-exported from openclaw/plugin-sdk/routing.
Fix import to use the correct subpath: openclaw/sessions/session-key-utils.

Addresses chatgpt-codex-connector P1 review comment on PR #67822.

* fix(telegram): import from relative path, remove unused variable

- Import isAcpSessionKey from relative path ../../sessions/session-key-utils.js
  (not openclaw/sessions/session-key-utils which doesn't exist)
- Remove unused 'bindings' variable in for-of loop

Addresses CI failures on PR #67822.

* fix(telegram): export isAcpSessionKey from plugin-sdk/routing

isAcpSessionKey lives in src/routing/session-key.ts, which is already
exported via openclaw/plugin-sdk/routing. Re-export it from routing.ts
so extensions can import via the public plugin-sdk path.

Fixes chatgpt-codex-connector P1: relative path ../../sessions/session-key-utils.js
doesn't exist in the build output, making the Telegram extension fail
module resolution before startup cleanup can run.

* test(telegram): cover startup ACP binding cleanup

* fix: clear stale telegram ACP bindings on startup (#67822) (thanks @chinar-amrutkar)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-17 11:03:36 +05:30
Rubén Cuevas
c65f356ddc fix: keep telegram transient preview across compaction retry (#66939) (thanks @rubencu)
* fix(telegram): keep transient previews across compaction

* test(telegram): cover suppressed approval previews after compaction

* fix(telegram): preserve delayed message-start boundaries

* fix: keep telegram transient preview across compaction retry (#66939) (thanks @rubencu)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-17 10:57:46 +05:30
Rubén Cuevas
7e18c07e41 fix: dedupe repeated bootstrap truncation warnings (#67906) (thanks @rubencu)
* Agents: dedupe bootstrap truncation warnings

* Agents: normalize bootstrap warning cache bookkeeping

* fix(agents): scope bootstrap warning dedupe by workspace

* refactor(agents): simplify bootstrap warning wrapper

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-17 10:54:15 +05:30
Ayaan Zaidi
3fe8b24c4e fix: note plugin registration rollback in changelog (#67941) 2026-04-17 10:14:00 +05:30
Ayaan Zaidi
c95507978f fix(plugins): tighten register rollback 2026-04-17 10:14:00 +05:30
Ayaan Zaidi
59d07f0ab4 fix(plugins): roll back failed register globals 2026-04-17 10:14:00 +05:30
Ayaan Zaidi
5c1d6feb33 test(plugins): fix sync register call sites 2026-04-17 10:14:00 +05:30
Ayaan Zaidi
e8fd148437 fix(plugins): roll back failed register side effects 2026-04-17 10:14:00 +05:30
Ayaan Zaidi
2a283e87a7 fix(plugins): enforce synchronous registration 2026-04-17 10:14:00 +05:30
Ayaan Zaidi
15b2827fc1 test(gateway): stabilize canvas auth fetch retries 2026-04-17 09:59:12 +05:30
Ayaan Zaidi
65645ec54f fix(agents): refresh bundle command discovery 2026-04-17 09:59:03 +05:30
Gustavo Madeira Santana
e8ae3901b6 Tests: scope grouped benchmark artifacts 2026-04-16 23:45:57 -04:00
Gustavo Madeira Santana
8e444ac5a6 Tests: add grouped performance report benchmark 2026-04-16 23:43:06 -04:00
Ayaan Zaidi
6b45ba88a1 fix: reuse shared plugin discovery cache across workspaces (#67940) 2026-04-17 08:54:58 +05:30
Ayaan Zaidi
353950894a test(plugins): address discovery review feedback 2026-04-17 08:54:58 +05:30
Ayaan Zaidi
9da4d5f5df fix(plugins): reuse shared discovery cache 2026-04-17 08:54:58 +05:30
Peter Steinberger
c6af0437c9 test: avoid postinstall fixture installs 2026-04-17 04:10:55 +01:00
Peter Steinberger
a2f2e5738e test: trim messaging test hotspots 2026-04-17 04:10:55 +01:00
chaoliang yan
35fb3f7e1c fix: preserve models.json baseUrls on regen (#67893) (thanks @lawrence3699)
* models-config: preserve existing models.json baseUrls

* test: distill models-config baseUrl regression test

* fix: preserve models.json baseUrls on regen (#67893) (thanks @lawrence3699)

---------

Co-authored-by: lawrence3699 <lawrence3699@users.noreply.github.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-17 08:32:35 +05:30
chaoliang yan
a189394590 fix: guard WhatsApp setup prompt values (#67895) (thanks @lawrence3699)
* fix(whatsapp): guard setup prompt values

* fix(whatsapp): preserve allowFrom invalid input details

* fix: guard WhatsApp setup prompt values (#67895) (thanks @lawrence3699)

---------

Co-authored-by: lawrence3699 <lawrence3699@users.noreply.github.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-17 08:12:55 +05:30
Ayaan Zaidi
685f9903ec fix: unify responses api capability detection (#67918)
* fix: unify responses api capability detection

* fix: unify responses api capability detection (#67918)
2026-04-17 08:03:19 +05:30
Peter Steinberger
24431e5114 build: declare qa-lab aimock runtime dependency 2026-04-17 02:57:18 +01:00
Peter Steinberger
ee856ab31f test: speed up safe-bins exec harness 2026-04-17 02:57:18 +01:00
Peter Steinberger
acd86a06cd test: preserve tool helpers in embedded runner mocks 2026-04-17 02:57:18 +01:00
Peter Steinberger
77e6e4cf87 refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
Peter Steinberger
7e9ff0f86e test: reuse system-run temp fixtures 2026-04-17 02:49:37 +01:00
Peter Steinberger
12a59b0a18 test: trim hotspot wait overhead 2026-04-17 02:47:09 +01:00
Gustavo Madeira Santana
baf11b83d7 Check: avoid duplicate boundary prep
Rely on the lint wrapper to prepare extension package-boundary artifacts during pnpm check instead of invoking the same prep script again at the end.

Add a script regression so the duplicate check path does not return.
2026-04-16 21:37:08 -04:00
Peter Steinberger
3a59eddd07 test: reduce hotspot fixture overhead 2026-04-17 02:37:00 +01:00
Val Alexander
2cfb660a9b feat(ui): overhaul settings and slash command UX (#67819) thanks @BunsDev
Co-authored-by: Val Alexander <68980965+BunsDev@users.noreply.github.com>
2026-04-16 20:29:11 -05:00
Gustavo Madeira Santana
42805d26cf QA Matrix: exit cleanly on failure
Make the Matrix QA CLI single-shot exit contract symmetric: artifact-backed failures now print the preserved error, flush stdio, and exit with code 1 instead of waiting on Matrix native handles.

Keep an opt-out for direct test harnesses with OPENCLAW_QA_MATRIX_DISABLE_FORCE_EXIT.
2026-04-16 21:24:59 -04:00