Skip to content

Design source-of-truth sync between SQLite and markdown files #37

@ran-codes

Description

@ran-codes

Context

Right now, markdown files are the source of truth for skip decisions during import/refresh. This was formalized in #35 — SQLite is no longer consulted for skip logic to avoid stale state (e.g., deleting a page folder then re-importing would silently skip everything).

Friction area

There's no sync mechanism between SQLite and the markdown files. They can drift:

  • Delete markdown → SQLite still thinks pages exist
  • Edit markdown frontmatter → SQLite is stale
  • SQLite-only output mode has no skip optimization now

Future considerations

  • Should SQLite mirror markdown state on startup (reconciliation pass)?
  • UX patterns for detecting and resolving drift between the two stores
  • Whether SQLite should eventually become the source of truth (with markdown as an export artifact)
  • Unit tests for FreezePage skip logic edge cases (currently only covered by system tests)

Low priority — current behavior is correct. This is about polishing the dual-store UX over time.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions