Add chat-memory module: MessageWindowChatMemory, JDBC and Redis repositories, per-user conversation IDs

Real PostgreSQL 16 and Redis Stack 7.4; 24 tests write output/01-24. Covers the 20-message
default window with no property, the 36-character conversation_id, tool messages dropped by
JdbcChatMemoryRepository, concurrent add() on one conversation, a 1.x table under the 2.0
repository, the Redis repository silently backing off for a custom ChatMemory, and the
removal of PromptChatMemoryAdvisor.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Ja4jkzrbQ4LQZBNrb5mkZE
This commit is contained in:
Claude
2026-09-24 15:56:47 +00:00
parent c1e36c6c09
commit 823f6fac5b
65 changed files with 2548 additions and 0 deletions
@@ -0,0 +1,7 @@
# Two saveAll() calls released at the same instant
seeded with u0, a0; two writers add from-A and from-B; both saveAll() calls start together
The outcome differs from run to run, so the exact count is not printed here. Across repeated runs on
PostgreSQL 16 (READ COMMITTED) it is one of two things, and never the 4 messages that were sent:
3 messages -> one writer's message is gone
6 messages -> both transactions inserted, history is duplicated, sequence_id values collide