Commit graph

122 commits

Author SHA1 Message Date
Peter Steinberger
89079a32ef
refactor(memory-host): narrow runtime adapters 2026-04-28 06:40:37 +01:00
Peter Steinberger
583b419827
test(plugins): lock package boundary bridges 2026-04-28 06:30:44 +01:00
Peter Steinberger
025081dbc5
refactor(memory-host): consolidate core adapter 2026-04-28 06:20:19 +01:00
Peter Steinberger
f7d139dfef
refactor(memory-host): localize host utilities 2026-04-28 06:02:17 +01:00
Vincent Koc
c627afe1df
fix(ci): restore plugin sdk browser config wrapper 2026-04-27 22:01:55 -07:00
Peter Steinberger
a68cc94c36
fix: resolve main ci shard failures 2026-04-28 05:52:19 +01:00
Peter Steinberger
dc3df62e67
refactor(memory-host): own package contract surface 2026-04-28 05:49:07 +01:00
Vincent Koc
6d7901f5c8
fix(acpx): lazy-load startup backend 2026-04-27 21:46:45 -07:00
Peter Steinberger
996818e6af
fix: follow up main ci failures 2026-04-28 05:41:49 +01:00
Peter Steinberger
af7f651db3
refactor(plugin-sdk): retire reserved helper exports 2026-04-28 05:21:57 +01:00
Peter Steinberger
b1a36226b1
test: stabilize faster unit lanes 2026-04-28 04:09:41 +01:00
Peter Steinberger
f0000ab72d
refactor(plugin-sdk): split infra runtime barrel 2026-04-27 20:50:35 +01:00
Peter Steinberger
ee140ae570
perf(test): route memory package tests through unit-fast 2026-04-27 16:43:55 +01:00
Peter Steinberger
4336a7f3a9
refactor(plugin-sdk): narrow config runtime imports 2026-04-27 14:58:32 +01:00
Peter Steinberger
df65a75f92
fix(memory): avoid live embedding probes in status 2026-04-27 13:55:51 +01:00
Peter Steinberger
cae492374c
test: reduce repeated test setup overhead 2026-04-27 13:33:05 +01:00
Peter Steinberger
5a81c4000c
chore: tighten plugin boundary export audit 2026-04-27 11:47:09 +01:00
Peter Steinberger
6df120fb39
fix: keep internal completion wakes out of chat memory 2026-04-26 04:01:45 +01:00
pash-openai
edb618c6c4
Manage the Codex app-server binary in OpenClaw (#71808)
* Manage Codex app-server binary

* Use plugin deps for Codex app-server binary

* Stabilize media model registry test

* Exclude checkpoint transcripts from memory ingestion
2026-04-25 16:51:14 -07:00
Peter Steinberger
e1495c3372
test: streamline memory and tts suites 2026-04-25 19:23:51 +01:00
Peter Steinberger
8c93745f0f
test(memory): speed up host fixture setup 2026-04-25 18:41:20 +01:00
Peter Steinberger
cd392b947c
test: dedupe memory and context suites 2026-04-25 14:06:26 +01:00
Peter Steinberger
3db60f7eab
perf: trim agent workspace imports 2026-04-25 14:06:26 +01:00
Peter Steinberger
4a76a66872
perf: slim memory host imports 2026-04-25 12:52:27 +01:00
Donetta Flatley
f408bba9de
fix(memory-host-sdk): use TRUSTED_ENV_PROXY mode for remote embeddings in proxy environments (#71506)
* fix(memory-host-sdk): use TRUSTED_ENV_PROXY mode in withRemoteHttpResponse

When a HTTP/HTTPS proxy is configured via environment variables
(HTTPS_PROXY, HTTP_PROXY, ALL_PROXY), the withRemoteHttpResponse
function now passes mode=TRUSTED_ENV_PROXY to fetchWithSsrFGuard.

This causes DNS resolution to skip the local resolver and route
through the configured proxy, fixing 'fetch failed' errors for
remote memory embeddings (including GitHub Copilot embeddings) in
proxy environments (e.g. Clash TUN, corporate proxies).

Previously, without an explicit mode, fetchWithSsrFGuard defaulted
to STRICT mode which performs local DNS pre-resolution via
resolvePinnedHostnameWithPolicy(), failing in proxy environments
where DNS must go through the proxy.

Fixes: openclaw/openclaw#52162

* fix: harden memory env proxy guard (#71506) (thanks @DhtIsCoding)

---------

Co-authored-by: Dht <dht@openclaw.ai>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-25 12:24:09 +01:00
Alex Fries
66e66f19c6
feat(memory-core): expose hybrid search component scores
Expose raw `vectorScore` and `textScore` alongside the combined hybrid memory search `score`.

- Preserve vector/text component scores from `mergeHybridResults` output.
- Add optional component-score fields to both memory host SDK type surfaces.
- Extend hybrid merge tests for vector-only, text-only, and overlapping result cases.
- Document that component scores remain raw retrieval diagnostics while temporal decay/MMR only adjust or reorder the combined ranking `score`.

Closes #68166.

Maintainer verification:
- `pnpm test extensions/memory-core/src/memory/hybrid.test.ts`
- `pnpm check:changed`
- Fresh GitHub checks passed.

Co-authored-by: Alex Fries <alex@engramlabs.io>
2026-04-25 01:46:03 -05:00
Michiel van den Donker
2c716f5677
fix: enforce memory search session visibility (#70761) (thanks @nefainl)
* [EV-001] memory-core: filter memory_search session hits by visibility

- Move session visibility + listSpawnedSessionKeys to plugin-sdk; sync test
  hook with sessions-resolution __testing.setDepsForTest
- Extract loadCombinedSessionStoreForGateway to config/sessions; re-export
  from gateway session-utils
- Add session-transcript-hit stem resolver for builtin + QMD paths
- Post-filter memory_search results before citations/recall; fail closed when
  requester session key missing; optional corpus=sessions
- Tests: stem extraction, visibility filter smoke, existing suites green

* chore: sync plugin-sdk exports for session-transcript-hit and session-visibility

Run pnpm plugin-sdk:sync-exports so package.json exports match
scripts/lib/plugin-sdk-entrypoints.json. Fixes contract tests and
lint:plugins:plugin-sdk-subpaths-exported for memory-core imports.

* fix(EV-001): cross-agent session memory hits + hoist combined store load

- resolveTranscriptStemToSessionKeys: stop filtering by requester agentId so
  keys from other agents reach createSessionVisibilityGuard (a2a + visibility=all).
- Re-export loadCombinedSessionStoreForGateway from session-transcript-hit;
  filterMemorySearchHitsBySessionVisibility loads the combined store once per pass.
- Drop unused agentId from filter params; extend tests (Greptile/Codex review).

* fix(memory_search): honor corpus=sessions before maxResults cap

Pass sources into MemoryIndexManager.search so FTS/vector queries add
source IN (...) before ranking and top-N slice (Codex: non-session hits
could fill the window).

QMD path: oversample fetch limit for single-source recall, filter by
source, then diversify/clamp to the requested maxResults.

Wire corpus=sessions from tools; extend MemorySearchManager opts and
wrappers.

* fix(memory_search): apply corpus=memory source filter like sessions

Pass sources: ["memory"] into manager.search so maxResults applies only
within the memory index; post-filter for defense in depth. Document
corpus=memory in the tool description.

* fix: scope qmd session memory search

* fix: enforce memory search session visibility (#70761) (thanks @nefainl)

---------

Co-authored-by: NefAI <info@nefai.nl>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-25 09:30:21 +05:30
Peter Steinberger
deb1364dfb
refactor: centralize root memory file policy 2026-04-23 16:40:41 +01:00
Mariano
10a9acbf29
fix: keep root memory uppercase (#70621)
Thanks @mbelinky.
2026-04-23 16:10:36 +01:00
Peter Steinberger
871aa9d0b9
test: use synthetic ui channel fixtures 2026-04-20 23:54:59 +01:00
Peter Steinberger
e0c01bf956
perf: trim hot path allocations 2026-04-20 23:13:20 +01:00
Peter Steinberger
d8b3de39b0
test: share memory backend config helpers 2026-04-20 21:13:11 +01:00
Peter Steinberger
805481c176
perf: narrow bonjour and sqlite runtime type surfaces 2026-04-19 02:03:19 +01:00
Peter Steinberger
a0919685be
perf: narrow local llama type surface 2026-04-18 23:38:04 +01:00
Peter Steinberger
2b7b5774b6
chore: remove dead code 2026-04-18 20:27:42 +01:00
Peter Steinberger
dadcfb574f
test: trim surrogate chunk fixtures 2026-04-17 19:38:53 +01:00
Peter Steinberger
77e6e4cf87
refactor: move memory embeddings into provider plugins 2026-04-17 02:57:18 +01:00
Peter Steinberger
3a59eddd07
test: reduce hotspot fixture overhead 2026-04-17 02:37:00 +01:00
Peter Steinberger
cd330f5f98
test: isolate gemini embedding request helpers 2026-04-17 01:46:47 +01:00
Peter Steinberger
2e08c77582
test: slim provider registry mocks 2026-04-17 01:29:12 +01:00
Peter Steinberger
272536015f
test: slim runtime hotspot mocks 2026-04-17 01:15:31 +01:00
Peter Steinberger
b2cae7f12a
test: trim duplicate memory hotspot coverage 2026-04-16 23:15:38 +01:00
Peter Steinberger
d59604b15e
test: speed up hotspot boundaries 2026-04-16 22:55:30 +01:00
Peter Steinberger
63e53fbf2e
test: trim duplicate hotspot coverage 2026-04-16 22:19:32 +01:00
Peter Steinberger
372c0051ba
test: speed up slow import-boundary tests 2026-04-16 21:14:17 +01:00
zqchris
82e349a48a
memory: strip inbound metadata envelopes from user messages in session corpus (#66548)
Merged via squash.

Prepared head SHA: 98562b2a84
Co-authored-by: zqchris <4436110+zqchris@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-16 11:15:44 -07:00
Tak Hoffman
4f00b76925
fix(context-window): Tighten context limits and bound memory excerpts (#67277)
* Tighten context limits and bound memory excerpts

* Align startup context defaults in config docs

* Align qmd memory_get bounds with shared limits

* Preserve qmd partial memory reads

* Fix shared memory read type import

* Add changelog entry for context bounds
2026-04-15 13:06:02 -05:00
Mariano
3d06d90e83
fix(memory): unify default root memory handling (#66141)
* fix(memory): unify default root memory handling

* test(memory): align legacy migration expectation

* docs(changelog): tag qmd root-memory fix

* docs(changelog): append qmd root-memory entry

* docs(changelog): dedupe qmd root-memory entry

* docs(changelog): attribute qmd root-memory fix

---------

Co-authored-by: mbelinky <mbelinky@users.noreply.github.com>
2026-04-13 23:59:57 +02:00
Rugved Somwanshi
0cfb83edfa
feat: LM Studio Integration (#53248)
* Feat: LM Studio Integration

* Format

* Support usage in streaming true

Fix token count

* Add custom window check

* Drop max tokens fallback

* tweak docs

Update generated

* Avoid error if stale header does not resolve

* Fix test

* Fix test

* Fix rebase issues

Trim code

* Fix tests

Drop keyless

Fixes

* Fix linter issues in tests

* Update generated artifacts

* Do not have fatal header resoltuion for discovery

* Do the same for API key as well

* fix: honor lmstudio preload runtime auth

* fix: clear stale lmstudio header auth

* fix: lazy-load lmstudio runtime facade

* fix: preserve lmstudio shared synthetic auth

* fix: clear stale lmstudio header auth in discovery

* fix: prefer lmstudio header auth for discovery

* fix: honor lmstudio header auth in warmup paths

* fix: clear stale lmstudio profile auth

* fix: ignore lmstudio env auth on header migration

* fix: use local lmstudio setup seam

* fix: resolve lmstudio rebase fallout

---------

Co-authored-by: Frank Yang <frank.ekn@gmail.com>
2026-04-13 15:22:44 +08:00
Tak Hoffman
847739d82c
Fix dreaming replay, repair polluted artifacts, and gate wiki tabs (#65138)
* fix(active-memory): preserve parent channel context for recall runs

* fix(active-memory): keep recall runs on the resolved channel

* fix(active-memory): prefer resolved recall channel over wrapper hints

* fix(active-memory): trust explicit recall channel hints

* fix(active-memory): rank recall channel fallbacks by trust

* Fix dreaming replay and recovery flows

* fix: prevent dreaming event loss and diary write races

* chore: add changelog entry for memory fixes

* fix: harden dreaming repair and diary writes

* fix: harden dreaming artifact archive naming
2026-04-12 00:25:11 -05:00