Ugrás a fő tartalomhoz

Git és Snapshot

Az app nem akar Git-kliens lenni. Nincs benne rebase, cherry-pick, remote-menedzsment — a repó teljesen normális Git repó, aki azt akarja, használja a saját eszközét.

Git réteg​

MűveletMikorHogyan
initProjekt létrehozásakor, ha még nem repoos/exec git
commitManuálisan a UI-ból (Beállítások → Git), üzenet-sablonnalspec(DEV-001): acceptance criteria frissítés
status / diffA „Változások" panelben, entitásonként csoportosítvaKanonikus JSON miatt olvasható

API: GET /api/v1/vcs/status, POST /api/v1/vcs/commit (stage-all). capabilities.git = a git bináris megléte.

Képernyőkép — Beállítások → Git fül

(A képernyőkép pótlása folyamatban.)

Snapshot / Restore​

History-szennyezés nélkül:

  • CreateSnapshot — git stash create → dangling commit → annotált tag craftingtable-snapshot/<ts> (tiszta fánál a HEAD). Nem szennyezi a history-t.
  • ListSnapshots — for-each-ref a snapshot-tageken.
  • RestoreSnapshot(dir, id, subpath) — git checkout <tag> -- .craftingtable (staged).
  • DeleteSnapshot.

API: GET/POST /api/v1/vcs/snapshots, POST .../{id}/restore, DELETE .../{id}. UI: Beállítások → Git → „Snapshotok" szekció (címke + létrehozás + lista visszaállítás/törlés gombokkal).

Snapshot ZIP (Export/Import projekt)​

A .index/snapshots/*.zip a JSON+MD teljes állapotát egy fájlban tartja — ez az „Export projekt" / „Import projekt" mechanizmusa (Git nélkül dolgozó félnek, gépváltáshoz). A ZIP a JSON-okat tartalmazza, nem a SQLite db-t (az újraépíthető).