beatenevo opened a new pull request, #1540: URL: https://github.com/apache/dubbo-admin/pull/1540
**Please provide a description of this PR:** This PR adds pluggable persistence for AI conversation data. Related to #1502. ## Changes - Define `SessionStore`, `MessageStore`, and the combined `Store` interfaces. - Migrate the existing in-memory session, turn, and message logic to `MemoryStore`. - Inject one shared Store instance into the Session Manager, Agent, and Memory Tool. - Add GORM models for sessions, turns, and messages. - Implement `GormStore` for persistent session history. - Add Memory/GORM backend configuration and database connection initialization. - Add schema migration support. - Add transactional writes and deletions. - Enforce message ordering with a unique `(turn_id, sequence)` constraint. - Delete session-related messages and turns transactionally without database foreign keys. - Prevent expired-session cleanup from deleting sessions refreshed by another instance. - Add contract, rollback, restart recovery, multi-instance sharing, JSON codec, and component regression tests. ## Testing The following checks pass: - `go test ./...` - `go test -race ./store/... ./component/agent/react ./component/tools/test ./component/server/engine ./component/server/engine/sse` - `go vet ./...` SQLite is used for local persistence and behavioral tests. MySQL and PostgreSQL drivers are included and compile successfully. Service-backed MySQL/PostgreSQL integration tests are outside the current PR because CI database services are not configured. **To help us figure out who should review this PR, please put an X in all the areas that this PR affects.** - [ ] Docs - [ ] Installation - [ ] User Experience - [ ] Dubboctl - [X] Console - [X] Core Component **Please check any characteristics that apply to this pull request.** -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
