Skip to content

fix: core reliability — atomic link writes, conservative metadata, cache synchronization - #179

Merged
rogerdigital merged 3 commits into
mainfrom
fix/v1-core-reliability
Sep 17, 2026
Merged

rogerdigital merged 3 commits into
mainfrom
fix/v1-core-reliability

Conversation

@rogerdigital

Copy link
Copy Markdown
Owner

Summary

Implements part A (A1–A3) of the 1.0.0 release readiness plan (docs/superpowers/plans/2026-09-13-v1-core-reliability.md), three commits in dependency order:

  • A1 fix: preserve concurrent edits during link fixes — link fixes now transform content inside vault.process instead of read-then-modify, so an edit committed between read and write is preserved. Deterministic concurrency regression included; failure matrix covers rejected writes and vanished targets.
  • A2 fix: withhold link fixes when target metadata is unavailable — a null target cache (not yet indexed) no longer produces a confirmed broken-link finding with an executable fix; it reports unverified/info with evidence.reason: target-metadata-unavailable and no fix action. An empty-but-present cache is still treated as real evidence. COMPARISON_VERSION 3 → 4 isolates older baselines (comment covers both the fix: stop flagging unverifiable and hashless block links as broken #174 block semantics and this change, per the increment-once rule). Adapted to the post-fix: stop flagging unverifiable and hashless block links as broken #174/fix: match Obsidian heading anchors by substituting non-alphanumerics with spaces #176 code structure as recorded in the plan's execution note.
  • A3 fix: defer verification until mutation metadata is ready — new MetadataWriteFence correlates each mutation with the exact changed + resolved cache events (and deleted/absence for trash) before verification proceeds; timeouts poison the batch so later preflights are skipped instead of reading stale metadata, with the recovery message the runner surfaces. No CLI schema changes.

Validation

  • TDD per item: RED observed before each implementation, GREEN after.
  • Full local pipeline per commit: npm run lint && npm run lint:obsidian-warnings && npm run build && npm test && npm pack --dry-run — 949 tests pass.
  • Fingerprint inputs for confirmed findings are unchanged; only classification/evidence of the affected findings changed.

@rogerdigital
rogerdigital merged commit 84b969e into main Sep 17, 2026
1 check passed
@rogerdigital
rogerdigital deleted the fix/v1-core-reliability branch September 17, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant