Expand description
SqliteIssueStore — SQLite-backed IssueStore using [rusqlite-isle].
The Connection is confined to a dedicated OS thread by AsyncIsle; every
call is a typed closure dispatched over a bounded channel. pop_pending
runs the “pick oldest pending row + flip to InFlight” as a single
transaction inside one closure, so the FIFO invariant is preserved across
concurrent callers.
§Schema
CREATE TABLE IF NOT EXISTS issues (
issue_id TEXT PRIMARY KEY,
blueprint_id TEXT NOT NULL,
intent TEXT NOT NULL,
status_kind TEXT NOT NULL, -- 'pending' | 'inflight' | 'applied' | 'rejected'
status_detail TEXT, -- new_version (applied) | reason (rejected) | NULL
created_seq INTEGER NOT NULL, -- insertion order for `list()`
pending_seq INTEGER -- FIFO for `pop_pending`, NULL when not pending
);
CREATE INDEX IF NOT EXISTS ix_issues_pending_seq ON issues(pending_seq);Structs§
- Sqlite
Issue Store - SQLite-backed persistent
IssueStore.