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>
1.1 KiB
1.1 KiB
store parity (tai.py -> taicpp)
Superseded detail lives in 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.