Files
tai/taicpp/docs/store.md
T
retoorandClaude Sonnet 5.5 4583265122 taicpp foundation: vault, settings, debug log, sessions keyed by shell/pane, REPL, plexer
Full port of the Store (17 tables, FTS5, per-profile slices, sessions, turn state,
bots, settings, MCP registry), DebugLog, SETTINGS_CATALOG and boot_settings,
ShellSession (as ShellContext), Conversation persistence, Repl/Boot, and the
PlexerController family with FlowValidator/PlexerFlow. Verified by replaying 643
operations through tai.py and the C++ code (results, tables, FTS, schema, files
identical) and by restarting the REPL under per-pane shells and checking the vault.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 02:02:31 +02:00

18 lines
1.1 KiB
Markdown

# store parity (tai.py -> taicpp)
Superseded detail lives in [foundation.md](foundation.md). Summary of the
current state, replacing the M3 stub notes:
| tai.py | taicpp | status |
|---|---|---|
| `Store` (sqlite + FTS5, WAL, busy timeout 30 s, per-profile slices) | `detz::store::Store(const Config&, const SealPort&)` | all methods ported, replayed against tai.py |
| 17 tables, 19 indexes, FTS triggers, `migrate_profiles` | `Schema` | schema DDL compared byte for byte |
| `records.id` is `mem:<16 hex>` text | `add_record` returns `std::string` | the pre-foundation stub used integers and a different schema; it is gone |
| `DebugLog`, `LOG` | `DebugLog`, `DebugLog::Global()` | sentence and json sinks and the `logs` table compared |
| `spill_output`, `spilled_view`, `spill_or_truncate` | `Spill` | python semantics (6000 char limit, head 1500, tail 500) |
| session, turn, bots, profile files | `Store::load_session` and friends | compared file by file |
Callers of the old stub (`Store st(path)`, `add_record` returning an integer,
`search`) must switch to `Store::Open(path)` and the python method names; see
`docs/wiring/foundation.md`.