Add configurable memory versions with isolated storage (#43797)

## What changed

- Add `memories.version` with `v1` as the default and `v2` as an opt-in selection.
- Route memory generation, summaries, and retrieval tools through the selected version. Store `v2` artifacts in `memories_v2` and lazily create a separate SQLite database, keeping jobs and outputs isolated while sharing the thread catalog.
- Preserve the initial memory version across extension config updates so summaries and retrieval tools use the same namespace.
- Clear both versions on memory reset and remove thread memory from both stores on thread deletion. Recognize both artifact roots in shell usage telemetry.

## Testing

Add regression coverage for version defaults and validation, independent job claims and outputs, deletion and reset across versions, and shell usage classification for both memory roots.

GitOrigin-RevId: aa799bf87ab6ec10c8f5668213931e57547d080b
This commit is contained in:
jif authored and copyberry committed 2026-09-08 10:55:48 +00:00
1 parent 35d9e4bc4d
commit 3f76e88a48
27 files changed
+422 -119

No files matched your search

+15
View File
@@ -2128,10 +2128,25 @@
"use_memories": {
"description": "When `false`, skip injecting memory usage instructions into developer prompts.",
"type": "boolean"
},
"version": {
"allOf": [
{
"$ref": "#/definitions/MemoryVersion"
}
],
"description": "Selects the memory pipeline; v1 remains the default."
}
},
"type": "object"
},
"MemoryVersion": {
"enum": [
"v1",
"v2"
],
"type": "string"
},
"ModelAvailabilityNuxConfig": {
"additionalProperties": {
"format": "uint32",