2026 02 12_persistence_ux_plan - mark-ik/graphshell GitHub Wiki

Persistence UX Plan (2026-02-12)

Persistence UX Plan

  • Scope: Add explicit user control to clear saved graph data and improve testability for recovery paths.
  • Feature target 1: Add app/store APIs to wipe persistence state safely.
  • Feature target 2: Expose a confirmed UI action for clearing graph + persisted data.
  • Feature target 3: Validate behavior with unit tests at persistence and app layers.

Findings

  • Current persistence behavior is automatic (startup recovery + periodic snapshots + shutdown snapshot), but there was no explicit in-app reset for users.
  • GraphBrowserApp::new_from_dir(...) now enables fixture-based startup testing from controlled storage paths.
  • Reset behavior should clear both redb snapshot state and fjall mutation log to avoid stale recovery.

Progress

  • Added GraphStore::clear_all() to wipe snapshot + log.
  • Added GraphBrowserApp::clear_graph_and_persistence() to reset runtime and persisted state.
  • Added toolbar action (Clr) with confirmation dialog in desktop/gui.rs.
  • Added/updated tests for store wipe and app-level persistence reset.
  • Wired keyboard delete/clear handling in gui.rs through input::collect_actions() + input::apply_actions() so webviews are closed before node/graph deletion.
  • close_webviews_for_nodes(...) is now actively used by the delete-selected path.
⚠️ **GitHub.com Fallback** ⚠️