KeiSeiKit-1.0/_primitives/_rust/kei-chat-store
Parfii-bot 519600d1bf feat(m1-dogfood): migrate kei-chat-store to kei-entity-store engine
Primary entity = chat_messages (integer-PK; sessions stay bespoke —
TEXT UUID PK incompatible with engine's IntegerPk).

Secondary tables (chat_sessions, indexes, FTS rename fts_chat →
fts_chat_messages) moved into custom_migrations. FTS shadow column
session_id dropped (never used as MATCH filter).

Archive verb NOT enabled: chat_sessions.status is TEXT enum not INTEGER
flag — engine archive verb incompatible. archive_session stays bespoke.

cost REAL column dropped — engine has no Real FieldKind. per-message
cost struct field kept (=0.0) for API compat; session total_cost
aggregate still maintained bespoke in save_message.

5/5 tests preserved + 1 new engine migration-parity smoke test.

DOGFOOD prompt feedback (M1 via kei-agent-runtime prepare):
6 engine limitations surfaced for follow-up — FieldKind::TextPk,
FieldKind::Real, archive-TEXT-enum variant, FTS UNINDEXED shadow cols,
atom dir assumption, rusqlite drop logic. See M1 task report.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 05:55:12 +08:00
..
src feat(m1-dogfood): migrate kei-chat-store to kei-entity-store engine 2026-04-23 05:55:12 +08:00
tests feat(m1-dogfood): migrate kei-chat-store to kei-entity-store engine 2026-04-23 05:55:12 +08:00
Cargo.toml feat(m1-dogfood): migrate kei-chat-store to kei-entity-store engine 2026-04-23 05:55:12 +08:00