Commit Graph

74 Commits

Author SHA1 Message Date
Peter Steinberger 7c256bfdf4 test: trim memory manager test startup 2026-04-06 20:52:08 +01:00
Peter Steinberger 6e9382b5c8 perf: extract memory provider state helpers 2026-04-06 20:52:08 +01:00
Peter Steinberger f4d8393bf4 perf: extract memory manager state helpers 2026-04-06 20:21:46 +01:00
Peter Steinberger 8d2daf7ef2 perf: extract memory sync control helpers 2026-04-06 20:21:46 +01:00
Peter Steinberger 66405d5e8a perf: extract memory status state helpers 2026-04-06 19:45:31 +01:00
Peter Steinberger 58d7df7985 fix(ci): restore contracts and type gates 2026-04-06 19:10:31 +01:00
Peter Steinberger 10802e20d6 test: trim memory hotspot fixture setup 2026-04-06 18:55:54 +01:00
Peter Steinberger e6b95624d9 test: reuse qmd manager fixture cleanup 2026-04-06 18:55:54 +01:00
Peter Steinberger 3921bb2df6 perf: extract memory manager state helpers 2026-04-06 18:39:06 +01:00
Peter Steinberger b5c9a46633 test: pre-register memory embedding adapters 2026-04-06 18:39:06 +01:00
Peter Steinberger 30c686423f perf: avoid full config resolution in qmd sync 2026-04-06 17:46:48 +01:00
Vincent Koc c01b4981af test(memory-core): seed qmd manager provider registry 2026-04-06 17:10:18 +01:00
Peter Steinberger 723c0ea2b7 test: speed up memory manager hotspot tests 2026-04-06 17:04:13 +01:00
Peter Steinberger 6f841ff121 test: cache memory manager helper imports 2026-04-06 17:04:13 +01:00
Vincent Koc 38c520acc3 chore(memory-core): type embedding test mocks 2026-04-06 16:58:14 +01:00
Peter Steinberger 0337a0d7f8 fix(memory): warn cleanly on degraded vector recall 2026-04-06 15:23:30 +01:00
mainstay22 a224f59fe3 fix(memory): surface warning when sqlite-vec unavailable during index
When chunks_vec cannot be updated (sqlite-vec extension not loaded),
the memory index now emits an error-level warning instead of silently
reporting success.

Before this change: 'Memory index updated (hull).' was emitted even
when the vector index (chunks_vec) was not updated due to sqlite-vec
being unavailable. This masked silent vector recall degradation.

After this change:
- If vector.enabled=true and vector.available=false: emits
  'Memory index WARNING (agentId): chunks_vec not updated — sqlite-vec
  unavailable: <reason>. Vector recall degraded.'
- If vector is healthy: emits normal success message unchanged
- Per-file warning also emitted in writeChunks when chunks are written
  without vector embeddings

Fixes: HELM-0251 (local dist patch — this makes it update-safe)
Related: HELM-0252 (this PR)
2026-04-06 15:23:30 +01:00
Vincent Koc 620537914b fix(plugins): clean bundled extension lint tail 2026-04-06 15:21:46 +01:00
Peter Steinberger af62a2c2e4 style: fix extension lint violations 2026-04-06 14:53:55 +01:00
Vincent Koc a896d5df0c test(memory-core): reuse workspace helper in temp dir tests 2026-04-06 05:28:18 +01:00
Vincent Koc 7c9108aaf7 fix(memory-qmd): streamline compatibility coverage 2026-04-06 01:52:01 +01:00
Vincent Koc 098f4eeebb fix(memory-qmd): restore qmd compatibility defaults 2026-04-06 01:31:51 +01:00
Nimrod Gutman 0047048179 fix(memory): avoid recursive provider discovery during register (#61402)
* fix(memory): avoid recursive provider discovery during register

* test(memory): remove resetModules from provider adapter regression

* fix: avoid recursive provider discovery during register (#61402) (thanks @ngutman)
2026-04-05 18:55:58 +03:00
Peter Steinberger 629baf5fa7 refactor: move plugin setup and memory capabilities to registries 2026-04-05 14:53:53 +01:00
Ayaan Zaidi e4206007cc fix(memory): stabilize manager runtime lazy import 2026-04-05 18:11:37 +05:30
Vincent Koc 19b7fbaa73 fix(memory): honor mocked batch fetch clients 2026-04-05 07:48:03 +01:00
Peter Steinberger 8e8f8d0745 test: trim more extension importOriginal usage 2026-04-03 19:49:43 +01:00
Peter Steinberger 6eca4e0136 test: trim extension partial mocks 2026-04-03 19:28:19 +01:00
Vincent Koc 7e3b48c254 test(ci): align memory fallback reindex assertion 2026-04-04 02:37:38 +09:00
Peter Steinberger d0d5b34b44 fix(ci): repair extension test regressions 2026-04-03 18:36:35 +01:00
Peter Steinberger 1a75fc9e05 fix: align latest-main gate drift on #60221 2026-04-03 21:52:35 +09:00
upupc d766bfc6b2 fix(memory): preserve session indexing during full reindex (#39732)
Merged via squash.

Prepared head SHA: 0dbaf5fffbf9bd79d164e60a1b0dc02ddd93e69c
Co-authored-by: upupc <12829489+upupc@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-04-01 13:12:30 +03:00
chi cad3da52c9 fix(memory): prefer --mask over --glob for qmd collection pattern flag (#58736)
* fix(memory): prefer --mask over --glob for qmd collection pattern flag

qmd 2.0.1 silently ignores the --glob flag when creating collections,
causing all patterns (e.g. MEMORY.md, memory.md) to fall back to the
default **/*.md glob. This leads to collection conflicts when multiple
collections target the same workspace directory with different patterns.

The existing flag negotiation logic in addCollection() tries --glob
first (when collectionPatternFlag is null), and since qmd accepts the
flag without error, OpenClaw never falls back to --mask. The result is
that memory-root-{agent} gets created with **/*.md instead of MEMORY.md,
and memory-alt-{agent} fails with a duplicate path+pattern conflict.

Fix: default collectionPatternFlag to '--mask' so the working flag is
tried first. The fallback to --glob is preserved for older qmd versions
that may not support --mask.

* docs(changelog): note qmd collection flag fix

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-01 16:11:56 +09:00
Peter Steinberger 59866dd253 fix(memory): restore readonly recovery helper seams 2026-03-31 23:14:24 +09:00
Peter Steinberger 4fb373466e refactor: simplify memory recovery and test setup 2026-03-31 15:02:11 +01:00
Vincent Koc 3a5042b6cc fix(memory): surface qmd degraded vector status 2026-03-31 17:35:36 +09:00
Vincent Koc d2dcd6fca6 fix(memory): stagger qmd embed maintenance across agents (#58180)
* fix(memory): stagger qmd embed maintenance across agents

* fix(memory): keep qmd embed serialization in-process

* fix(memory): extend qmd embed lock wait budget
2026-03-31 17:17:20 +09:00
Vincent Koc 5707038e6c fix(memory): preserve qmd query semantics and collection recovery (#58183)
* fix(memory): preserve qmd search queries and repair collection rebuilds

* fix(qmd): cover null-byte rebuild cycle
2026-03-31 17:07:35 +09:00
Vincent Koc 075645f5cb fix(memory): use explicit qmd snippet line metadata (#58181)
* fix(memory): preserve qmd snippet line metadata

* Memory/QMD: preserve snippet span with partial line metadata
2026-03-31 17:05:53 +09:00
Shakker 020858647d test: fix qmd and discord ci regressions 2026-03-31 01:40:55 +01:00
Altay 910134b702 fix(memory): stabilize qmd collection scoping 2026-03-30 22:41:21 +03:00
Altay 9c25544e6c test(ci): fix stale regression expectations (#57899) 2026-03-30 22:31:13 +03:00
Vincent Koc b7de04f23f fix(memory): preserve shared qmd collection names (#57628)
* fix(memory): preserve shared qmd collection names

* fix(memory): canonicalize qmd path containment
2026-03-30 19:29:35 +09:00
Vincent Koc 118a497496 fix(memory): keep qmd session paths roundtrip-safe (#57560) 2026-03-30 18:57:03 +09:00
Gustavo Madeira Santana fca8880968 Tests: reuse QMD availability mock type 2026-03-30 00:59:26 -04:00
Gustavo Madeira Santana 16b452040b Memory: fix QMD doctor contract typing 2026-03-30 00:54:41 -04:00
Vincent Koc 8623c28f1d fix(memory): warn when qmd binary is missing (#57467)
* fix(memory): warn when qmd binary is missing

* fix(memory): avoid probing cached qmd managers

* docs(memory): clarify qmd doctor probe behavior

* fix(memory): probe qmd from agent workspace
2026-03-30 13:44:41 +09:00
Vincent Koc c142a396f4 fix(memory): rebind qmd collections on pattern drift (#57438) 2026-03-30 12:43:44 +09:00
Vincent Koc da35718cb2 fix(memory): add qmd mcporter search tool override (#57363)
* fix(memory): add qmd mcporter search tool override

* fix(memory): tighten qmd search tool override guards

* chore(config): drop generated docs baselines from qmd pr

* fix(memory): keep explicit qmd query override on v2 args

* docs(changelog): normalize qmd search tool attribution

* fix(memory): reuse v1 qmd tool after query fallback
2026-03-30 12:07:32 +09:00
Vincent Koc 9b33380fb6 fix(test): harden qmd release callback typing 2026-03-30 09:37:21 +09:00