@@ -5,6 +5,45 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ Unreleased]
9+
10+ ## [ 4.3.0] - 2026-07-04
11+
12+ ### Added
13+
14+ - Sessions now resolve a default memory store even when callers do not pass one,
15+ preferring an explicit store, then a file memory directory, then configured
16+ ` memory_dir ` , then ` <workspace>/.a3s/memory ` , with an in-memory fallback and
17+ init warning if the file store cannot be created.
18+ - LLM memory extraction is enabled by default and runs behind a completed-turn
19+ significance gate instead of mechanically extracting after every input or tool
20+ result. Extraction prompts include related existing memories, including
21+ existing ` supersedes ` / ` conflicts_with ` relation metadata when available, so
22+ the model can consolidate or preserve conflicts. Streaming runs schedule gated
23+ extraction in the background after the final response event so UI completion is
24+ not blocked by the maintenance LLM call; each memory instance now also runs at
25+ most one background extraction at a time to keep maintenance calls bounded.
26+
27+ ### Changed
28+
29+ - Successful tool outputs are no longer mechanically written when LLM memory
30+ extraction is enabled; failures are still stored immediately.
31+ - Recalled memory context now carries memory metadata plus concise relation
32+ annotations for ` supersedes ` and ` conflicts_with ` when present.
33+ - Memory recall now preserves query-specific search ranking when injecting
34+ memories into prompt context, so precise matches are not drowned out by generic
35+ high-importance memories. The LLM extraction parser also keeps valid extracted
36+ memories when a sibling item is malformed.
37+ - Session memory now consumes the store's canonical returned item, so store-level
38+ duplicate consolidation keeps short-term memory and emitted memory ids aligned
39+ with the durable item that actually represents the fact.
40+ - LLM memory extraction now merges near-duplicate extracted memories into the
41+ existing canonical item instead of silently discarding the improved wording,
42+ tags, importance, or provenance metadata.
43+ - Default memory stores now also perform conservative near-duplicate
44+ consolidation and conflict-safe pruning, so manually written memories and LLM
45+ extracted memories share the same canonical-item lifecycle.
46+
847## [ 4.2.1] - 2026-06-23
948
1049### Fixed
0 commit comments