Skip to content

yafm v0.9.0 — 1.0 candidate

Choose a tag to compare

@akurach akurach released this 05 Jun 18:19
· 53 commits to main since this release

Stability + the last extension points. Mostly about making yafm actually live up to its one promise — it never freezes — after real use turned up big folders and drag-and-drop that did exactly that.

Fixed — the never-freeze pillar, for real

  • Big folders no longer freeze on open. Listing re-sorted the entire growing partial on every stream batch (O(n²) sort on the main thread). Now it sorts once when complete: measured 1767 ms → 68 ms (26×) for 8 000 files.
  • Tag dots no longer cost a syscall per row — they come from the in-memory index in one batch (Downloads opened by reading getxattr for every file before).
  • No more beachball on large folders / re-sort — the tag editor was a .popover on every row; now one sheet for the table.
  • Drag between panes is smooth — the drop highlight no longer re-renders the whole list on every hover.
  • Delete confirmation keeps focus — Return now confirms instead of opening the file behind the dialog.

Added

  • Transformers (bulk-rename rules: lowercase, numbering, space-replace) and custom previewers — the last VISION extension points.
  • Plugin API frozen at 1.0 — a 1.x compatibility promise.
  • OPS-1 atomic replace — a .replace copy now swaps via a temp + replaceItemAt (the original survives a failed copy) and opens output O_EXCL|O_NOFOLLOW.

Docs

  • User Guide now in English and Russian.

Deferred

  • Photo Ingest (needs device detection) and a notarized DMG (Developer ID).

DMG is unnotarized — first launch: right-click ▸ Open ▸ Open Anyway. Tests: 80 Core.