Skip to content

v0.10.0 — content-based drift detection (hash mode)

Choose a tag to compare

@biznuts biznuts released this 19 Jun 14:56
1e6bf5e

Phase 2's first increment: mode: "hash". A syncPairs entry can now do a true content comparison instead of the mtime heuristic.

  • The snapshot embeds a synced-to marker naming the source content it last reconciled to:
    <!-- never-stale:synced-to 8c2b42f56e6fd699 -->
  • On compact, the gate hashes the source's normalized content (CRLF, trailing whitespace, and leading/trailing blank lines normalized away → cosmetic churn is not drift) and flags a mismatch, reporting the new hash so you can paste it back.
  • A snapshot with no marker, or a source missing / larger than the 512 KB cap, is treated as unknown (never drift) and surfaced in /never-stale:status.

The synced-to marker is matched with a static, gate-owned pattern — no user-supplied regex, no ReDoS surface — and the source read is size-capped and happens only on the low-frequency compact path. /never-stale:status previews hash-mode pairs. With no syncPairs configured, the reminder stays byte-identical.

Full notes: CHANGELOG.md.