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
+11
View File
@@ -0,0 +1,11 @@
# Do the chat-memory property keys bind?
spring.ai.chat.memory.repository.jdbc.initialize-schema=always -> initializeSchema = ALWAYS
redis.host / port / time-to-live / max-messages-per-conversation = cache.internal / 6390 / PT24H / 200
Three guesses, each of which looks right and binds nothing:
spring.ai.chat.memory.redis.port=6390 (no "repository" segment)
spring.ai.chat.memory.repository.redis.ttl=24h (the key is time-to-live)
spring.data.redis.port=6390 (Spring Data Redis's key; this repository builds its own Jedis client)
-> port = 6379, time-to-live = null