Ugrás a fő tartalomhoz

SQLite index — derivált, nem forrás

Amit tárol: entitások lapos táblái kereséshez, a traceability gráf éllistája, FTS5 teljes szöveges index, task-státuszok, utolsó ismert fájl-hash, entitás-revíziók.

Amit NEM tárol: semmi, ami nincs meg a JSON-okban.

CREATE TABLE entities (
id TEXT PRIMARY KEY, type TEXT, title TEXT, level INT,
status TEXT, path TEXT, content_hash TEXT, updated_at TEXT
);
CREATE TABLE edges (
from_id TEXT, to_id TEXT, kind TEXT, -- parent|screen|model|file|skill|component
PRIMARY KEY (from_id, to_id, kind)
);
CREATE VIRTUAL TABLE entities_fts USING fts5(id, title, body, content='');
CREATE TABLE tasks (id TEXT PRIMARY KEY, story_id TEXT, ac_id TEXT,
bundle_hash TEXT, status TEXT, updated_at TEXT);

Újraépítés​

craftingtable-engine reindex — teljes SQLite eldobás és újraépítés a fájlokból. Automatikusan fut, ha:

  1. hiányzik a db,
  2. a séma-verzió nem stimmel,
  3. a manifest.json hash-ei eltérnek a fájloktól (pl. valaki git pull-t csinált az app mögött).

Fájlfigyelés — a round-trip engineering alapja​

fsnotify a .craftingtable/ alatt → külső változás (git checkout, kézi szerkesztés, AI ágens írása) → inkrementális reindex + esemény a UI-nak. Ez adja a „round-trip engineering" alapját: a felület mindig azt mutatja, ami a lemezen van, akárki írta.

Backup szerep​

A napi/óránkénti snapshot ZIP a .index/snapshots/ alá kerül. A snapshot a JSON-okat tartalmazza, nem a db-t — a db bármikor újraépíthető.