| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-09-14 | 1.3 kB | |
| v6.1.3 source code.tar.gz | 2026-09-14 | 12.2 MB | |
| v6.1.3 source code.zip | 2026-09-14 | 15.1 MB | |
| Totals: 3 Items | 27.3 MB | 2 | |
B02: Persist chatbot sessions and completed turn records
Adds SqlCompanionMemoryRepository, the first concrete CompanionMemoryRepository implementation from the B01 companion-contracts design (#2118), backed by two new, additive SQLite tables (companion_sessions, companion_turns). Not yet wired into the GUI or any live pipeline — that begins with B10-B13 — so this is backend groundwork rather than a user-facing feature.
- Implements the characterized 4-hour inactivity-gap session-rotation rule, matched exactly to the pinned upstream behavior (including at the boundary).
append_turnis transactional and safely idempotent under genuinely concurrent delivery — a unique-constraint-plus-retry design, not just a sequential-retry check.- Turn indexes are assigned via a database-level uniqueness constraint plus the same retry loop, so concurrent writers can never commit a duplicate index for one session.
- Existing Conversation IDs/transcripts are untouched — no destructive migration.
This PR went through a second independent review after its initial merge, which found and led to fixing three further issues (the two concurrency races above, plus the boundary correction) before this release — see PR [#2169] for the full history.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com