v0.1.0-preview.4
What's Changed
- feat(di): meta AddNeo4jAgentMemory forwards configureStore + multi-store docs by @joslat in #16
- docs: reconcile drift with shipped code (counts, versions, statuses) by @joslat in #17
- docs: ROADMAP (overarching plan+status) + reorganize docs into folders by @joslat in #18
- feat(cli): add schema-check command (runtime schema conformance) by @joslat in #19
- refactor(core): extract ITruncationStrategy from MemoryContextAssembler (S9) by @joslat in #20
- feat(neo4j): implement ISchemaManager — versioned :Schema node persistence (G4) by @joslat in #21
- feat(benchmarks): BenchmarkDotNet harness for hot-path Neo4j operations by @joslat in #22
- chore(ci): Node-20→24 action bumps + xUnit1026 fixes + G4 E2E shakedown by @joslat in #23
- fix(benchmarks): assert result counts in the --smoke self-test by @joslat in #24
- fix(extraction): guard streaming chunker against Overlap >= ChunkSize (infinite loop / OOM) by @joslat in #26
- fix: five audit-confirmed correctness defects (Truncated flag, datetime, lat/lon, MCP status, base URL) by @joslat in #27
- fix(di): LLM extractors must Replace Core stubs (LLM extraction was silently dead) by @joslat in #25
- fix(neo4j): Fact upsert ON MATCH must not clobber stable id or supersession valid_until by @joslat in #28
- fix(core): embedding back-fill must make forward progress (infinite-loop guard) by @joslat in #29
- fix(core): wire D3 ranking context + guard as-of recall on empty embedding by @joslat in #30
- fix(extraction): propagate caller cancellation instead of swallowing it by @joslat in #31
- fix: CLI dash-value scope-widening + MCP relationship owner + Diffbot culture + Lucene test gap by @joslat in #32
- fix(neo4j): dedup-on-create must exclude soft-invalidated nodes (re-asserted knowledge was lost) by @joslat in #33
- fix(core): EmbeddingOrchestrator must propagate cancellation, not mask it as an empty vector by @joslat in #34
- fix(enrichment): background queue must retry transient Error/RateLimited results, not treat them as success by @joslat in #35
- fix(maf): context provider must not drop recalled memory when chat fills the budget by @joslat in #36
- fix(core): honor ExtractionOptions.EnableAutoMerge (dead toggle → silent destructive merge) by @joslat in #37
- fix(core): wire LongTermMemoryOptions.MinConfidenceThreshold into Add* persistence by @joslat in #38
- fix(extraction): wire LlmExtractionOptions.EntityTypes into the entity prompt by @joslat in #39
- fix(reasoning): enforce ReasoningMemoryOptions.MaxTracesPerSession retention cap by @joslat in #40
- fix(enrichment): wire EnrichmentOptions/GeocodingOptions.MaxRetries (retry policy) by @joslat in #41
- fix(enrichment): keep background worker alive on non-cancellation faults by @joslat in #42
- fix(core): propagate caller cancellation in ContextCompressor LLM calls by @joslat in #43
- fix(analytics): re-probe GDS after a transient failure; log the exception by @joslat in #44
- fix(core): correct as-of recall total, backfill update count, and recall docs by @joslat in #45
- fix(core): tolerate a vanished dedup target in MarkDeduplicated by @joslat in #46
- fix(core): honor ShortTermMemoryOptions.DefaultRecentMessageLimit by @joslat in #47
- fix(mcp): report McpServerOptions.ServerName/ServerVersion to MCP clients by @joslat in #48
- fix(maf): honor AgentFrameworkOptions.PersistReasoningTraces by @joslat in #49
- fix(reasoning): honor StoreToolCalls + GenerateTaskEmbeddings by @joslat in #50
- refactor(options): remove dead duplicate options (EnableEntityResolution, EnableAutoExtraction) by @joslat in #51
- refactor(options): remove dead MemoryDecayOptions.MaxMemoriesPerSession by @joslat in #52
- test(core): fix CS8620 nullable warnings in dedup mock setups by @joslat in #53
- fix(neo4j): re-asserting a Fact triple restores it to live recall + lands embedding/provenance by @joslat in #54
- fix(neo4j): make the empty-embedding guard a search-boundary invariant by @joslat in #55
- fix(reasoning): trace prune confines to one owner bucket — never cross-evict (regression from #40) by @joslat in #56
- fix(extraction): honor caller cancellation in the entity-resolution loop by @joslat in #57
- fix(core): clamp token→char budget so a huge MaxTokens can't overflow to empty context by @joslat in #58
- fix(enrichment): don't cache transient (Error/RateLimited) enrichment results by @joslat in #59
- fix(mcp): surface confidence-gate skip in add tools (R5 #1) by @joslat in #60
- test(mcp): pin graph_query read-only enforcement (R5 #11) by @joslat in #61
- fix(neo4j): align Fact UpsertBatch MERGE key with single-upsert triple (R5 #10) by @joslat in #62
- fix(agentframework): honor caller cancellation across MAF adapters (R6-A) by @joslat in #63
- fix(neo4j): exclude soft-invalidated entities from resolution/dedup (R6-B) by @joslat in #64
- fix(isolation): confine ClearSession/DeleteBySession to one owner bucket (R6-C) by @joslat in #65
- fix(context): keep newest messages, not oldest, on truncation (R6-D) by @joslat in #66
- fix(reasoning): handle concurrent trace deletion in update/add-step (R6-E) by @joslat in #67
- chore(src): enforce ConfigureAwait(false) in library code via CA2007 (R6 cleanup) by @joslat in #68
- chore: remaining R6 LOW cleanup — culture, telemetry status, dead option by @joslat in #69
Full Changelog: v0.1.0-preview.3...v0.1.0-preview.4