Skip to main content

Module sqlite

Module sqlite 

Source
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§

SqliteIssueStore
SQLite-backed persistent IssueStore.