# Engine changelog (legacy: "Epiphani Document Viewer" lineage)

> CANONICAL PRODUCT VERSION lives in the `VERSION` files (root + `src/app/VERSION`, always kept
> in sync with each other) — read those files directly rather than a number pinned here, since
> this note goes stale the moment either file is bumped (it happened: this said "0.8.1" as of the
> 2026-06-29 reconciliation; the repo has since moved on). The canonical product changelog is the
> repo-root `CHANGELOG.md`. The 1.x entries below are the ENGINE's pre-rename internal history
> (Epiphani Document Viewer to Gander to PageHawk) and are NOT the product build number: do not
> read `1.22.0` as a shipped build. `appdoctor.py` (skill `jp-app-version-control`) is the live
> cross-check for the currently-shipped version per brand (PageHawk / Winnow Photos / Gander
> Viewer all share this one VERSION via `brands/*.toml`).

Our own version scheme: `MAJOR.MINOR.PATCH`, tracked independently of dates so any
build is identifiable and comparable. Bump PATCH for fixes, MINOR for features,
MAJOR for reworks. Newest first.

## 1.22.0 — 2026-06-18
### Changed
- **Review chooser defaults to the main workspace only.** Opening a workspace with subfolders now
  checks only the workspace's own top-level files by default; subfolders are listed but off,
  opt-in. The choice is still remembered per workspace, and "Review everything" still includes
  every subfolder. (Jason: a folder should only check the main workspace by default; keep it efficient.)
### Removed
- The separate "Loose files (top level)" row in the chooser. Top-level files are assumed yes and
  toggled by the workspace parent row itself, removing the confusing duplicate.

## 1.21.0 — 2026-06-18
### Added
- **Auto-updater.** The app now checks a small JSON feed for new versions: a "Check for Updates…"
  item in the app menu, plus a silent once-a-day check on launch. When a newer version is published
  it offers to download the DMG, swap the app in place (preserving the code signature, so Full Disk
  Access stays granted), and relaunch. The feed URL defaults to the app's own domain and is
  overridable via an `update_feed` config key. The release pipeline stages `appcast.json` + a
  versioned DMG under `dist/updates/` ready to upload to the host.

## 1.20.0 — 2026-06-18
### Added
- **Column view (Finder Miller columns).** A fourth option in Views: Folders -> Files -> Preview.
  Click a folder to drill in, a file to preview; double-click or Enter opens it; arrow keys move
  through files. With a single folder it collapses to Files -> Preview. Completes the
  Grid / List / Filmstrip / Column set.

## 1.19.1 — 2026-06-18
### Fixed
- **Spreadsheets are fast now.** They no longer go through LibreOffice (soffice), which was very slow
  and turned a wide sheet into a huge, unreadable multi-page PDF. A spreadsheet now gets a fast
  Quick Look preview (first sheet) and opens in Excel via the Reader / Open action. A heavy
  4-sheet workbook that used to take many seconds now previews in ~1 second.

## 1.19.0 — 2026-06-18
### Added
- **Sortable List columns.** Click any header (Name, Folder, Type, Size, Modified) to sort; click
  again to reverse. The active column shows an arrow.
- **Resizable List divider.** Drag the bar between the file list and the preview to rebalance them;
  the split is remembered across sessions.
- **Folder grouping in List.** With "Group by folder" on (Views menu), the list breaks into
  collapsible folder headers, so you get folder navigation and can collapse sections.
- **Slideshow.** A small play button in the toolbar (and the `p` key) starts an auto-advancing
  slideshow in the viewer that loops; click again or press `p` to stop.

### Changed
- **List shows full filenames** (truncated to the column width), and the Filenames Full/Short/Off
  control is now hidden in List and Filmstrip views: it is a grid-caption setting and did nothing
  there.

## 1.18.2 — 2026-06-18
### Changed
- **File types are sorted by count, and only the largest is checked by default.** The chooser now
  lists file types in descending order of how many are in the folder (dominant type first), and
  pre-checks only that single largest type. Point at a mostly-PDF folder and you get PDFs; a
  mostly-photo folder and you get photos. Types 2 and 3 are right there to add with one click.
  (Supersedes the 1.18.1 four-type default.)

## 1.18.1 — 2026-06-18
### Changed
- **New default file-type selection.** Opening a folder now pre-checks only Photos, Documents, Decks
  and PDFs. Screenshots, Spreadsheets and Videos remain as options but start unchecked (supersedes
  the previous all-types-on default).
- **Type chips track the selected folders.** Each file-type chip's count now reflects how many of
  that type live in the currently-checked folders, and a type with none left in the selection greys
  out, so the file types shown stay relevant to the folders being reviewed.

## 1.18.0 — 2026-06-18
### Changed
- **The folder chooser now shows the real hierarchy.** The dropped folder (e.g. Downloads) sits at
  the top as the parent with a select-all master checkbox; its loose files and each subfolder are
  indented beneath it with a tree guide line, instead of a flat alphabetical list. The master
  checkbox is tristate (a dash when only some subfolders are picked) and toggles them all at once,
  like a selective-sync tree but tighter. "Loose files · top level" names the root's own files.
- **The "N items · Review" count is now accurate.** It reflects selected folders multiplied by
  selected file types (a cross-tab), so deselecting a subfolder changes the number. It previously
  counted by file type only and ignored folder selection.

## 1.17.0 — 2026-06-18
### Added
- **Folder breadcrumb at the bottom of the grid (and every view).** The same Finder-style path bar
  from the full viewer now sits at the absolute bottom of the grid, filmstrip, and list views. It
  tracks the focused file and any part is clickable to open that folder in Finder.
- **Photo zoom and pan in the viewer.** Scroll or pinch to zoom toward the cursor, drag to pan when
  zoomed, double-click to toggle, and +/-/0 keys. Still images only (documents use the Reader,
  videos play). The lightbox hint shows "scroll to zoom, drag to pan" on photos.
- **Filmstrip (Gallery) view.** A third option in Views: one large preview with a horizontal
  thumbnail strip below, like Finder's Gallery. Arrow keys move along the strip; click the big image
  or press Enter to open it.

## 1.16.0 — 2026-06-18
### Changed
- **Grid and List are now options inside the "Views ▾" dropdown** (renamed from "View"), under a
  "View as" heading above Filenames. The standalone Grid/List toggle in the toolbar is gone, so the
  top bar is cleaner. The active mode is checked in the menu and persists across sessions.

### Removed
- **Keep / Trash / Unsure triage is gone from the main viewer.** Tiles no longer show the ✓ ✕ ?
  hover buttons, the decision dot, the ★ best badge, or the "cull?" tag. The Bursts view keeps the
  near-duplicate grouping (for side-by-side compare) but drops the "Keep best, trash rest" action.
  The app is now a pure viewer + orchestration hub (open / reveal / compare), per the de-triage
  direction. (Note: the separate flip/doc *comparison* modes still carry the older Export-decisions
  flow; that can be removed in a follow-up if those modes are kept.)

## 1.15.1 — 2026-06-18
### Fixed
- **Reveal in Finder and Open are swapped** (Reveal first, then Open) in both the full view and the
  PDF reader, and the leftover "Open in…" ▾ dropdown was removed from the reader (it was only
  removed from the full view before).

## 1.15.0 — 2026-06-18
### Added
- **List view (with preview pane).** A Grid / List switch in the toolbar. List view shows a
  sortable row per file — Name, Folder, Type, Size, Modified — with a live preview pane on the
  right; click or arrow to select, double-click or Enter to open in the Reader. Far better than
  thumbnails for folders of named documents. (Filmstrip and Column views are next.)

## 1.14.1 — 2026-06-18
### Changed
- **Pages-per-view is now a compact dropdown** (with a two-page icon) instead of 1–5 buttons, and
  its options adapt to the document: hidden for a 1-page file, up to 2 for a 2-page file, up to 5
  otherwise. The choice persists across files and sessions.
### Fixed
- **Two-page (multi-page) view no longer collapses to a single page when you press ↓.** Paging now
  advances by the group and stops at the end instead of overrunning it.

## 1.14.0 — 2026-06-18
### Added
- **1–5 page Reader mode (two-page spread and more).** In the full view, show 1, 2, 3, 4, or 5
  pages of a document side by side, picked with a 1–5 control next to the page indicator (default
  1, remembered). ↑/↓ advances by the number shown (a 2-up spread pages two at a time), and ←/→
  still holds your place across documents. Built for comparing the same page across versions.

## 1.13.8 — 2026-06-18
### Changed
- Labels use **Reader** (the full-screen view) and **Grid** (the thumbnails).
- **Thumbnail raggedness fixed:** late-loading thumbnails now trigger a full grid re-layout, so
  no tile is left collapsed or overlapping (1.13.7).

## 1.13.6 — 2026-06-18
### Fixed
- **Overlapping thumbnails after keyboard zoom.** Changing thumbnail size with ⌘= / ⌘- / ⌘0
  re-laid-out the grid without recomputing each tile's row height, so taller tiles overlapped the
  row below. It now forces a full re-layout (the size slider already did this).

## 1.13.5 — 2026-06-18
### Fixed
- **⌘K jump now works from the full viewer.** It opened the search but jumped the grid behind the
  still-open lightbox, so nothing appeared to happen. Now jumping from the full viewer opens the
  chosen file right in the full viewer.
### Changed
- Path breadcrumb is smaller and moved to the absolute bottom (below the nav hint), like Finder.

## 1.13.3 — 2026-06-18
### Fixed
- **Thumbnail size (slider + ⌘=/⌘-/⌘0) now works in grouped view.** When "Group by folder" was on
  (the default for a multi-subfolder drop like the conversion packages), the grouped sections used a
  fixed thumbnail width that ignored the size control, so resizing did nothing. The grouped layout
  now uses the same size variable as the flat grid.

## 1.13.2 — 2026-06-18
### Changed
- **Full file path moved to the bottom of the full view as a Finder-style breadcrumb.** It
  collapses the noisy home/CloudStorage prefix to a friendly root (e.g. "Dropbox"), and every
  segment is clickable: a folder opens that folder in Finder (a quick navigator), the last
  segment reveals the file. Space-efficient, single line, scrolls to the file.

## 1.13.1 — 2026-06-18
### Fixed
- **No more refresh storms.** Auto-refresh now waits ~90 seconds for a burst of file changes to
  settle and does ONE refresh that catches them all (instead of a dozen in a row), with a 5-minute
  cap so a continuously-changing folder still updates. This also fixes the size slider and the
  zoom shortcuts feeling dead — they were being wiped by the constant reloads.
### Added
- **Page prefetch.** When viewing a document, nearby files are pre-rendered gently (one at a time,
  fanning out from the one in view), so flipping to the same page across many files is instant after
  the first pass.
- **Quiet loading spinner** in the full view while a page renders, so holding a page across files
  shows a small accent spinner instead of a blank flash.

## 1.13.0 — 2026-06-18
Repositioned from a triage tool to a best-in-class viewer + orchestration hub.
### Changed
- **Removed Keep / Trash / Unsure** (the triage decisions, buttons, keys, counter, and filters).
  The focus is now viewing and connecting to other apps.
- **Full-screen view is clearer:** "File 16 of 55" and "Page 1 of 2" (labeled), a cleaner page
  icon, the folder name, and the full file path (click the path to reveal in Finder). Pixel
  dimensions are no longer shown for PDFs/page renders.
- **Full-screen toolbar simplified** to Open and Reveal in Finder (the confusing Read button and
  the dropdown caret were removed).
- **Holding a page across documents no longer flashes page 1.** On page 2 of one document, ← / →
  goes straight to page 2 of the next (no page-1 flicker).
- **Down / Up in the grid** now move to the tile directly below / above (by position), instead of
  jumping a fixed number of items — correct regardless of column count or folder grouping.
### Fixed
- **Zoom shortcuts** ⌘= (in), ⌘- (out), ⌘0 (actual size) now work. In the PDF reader they zoom
  the document; in a grid they resize thumbnails. (⌘= was being swallowed by the web view.)
### Added
- PowerPoint / Keynote / Word open in the PDF reader (converted to PDF on the fly).

## 1.12.2 — 2026-06-18
### Added
- **Reveal in Finder from the full-screen view.** The large/lightbox view now has a "Reveal in
  Finder" button next to Open (it was only on the thumbnail right-click before). The PDF reader
  also gained Open in Default App and Reveal in Finder.

## 1.12.1 — 2026-06-18
### Changed
- **⌘R now Refreshes** (Reload & Recache), the standard meaning. **Rotate Image keeps its
  menu item but no default shortcut** (set your own in Settings if you want one).
- **Simplified the default keyboard shortcuts.** Only the standard actions carry a default
  now — Refresh (⌘R), Open (⌘O), New Tab (⌘T), New Window (⌘N), Open in Default App (⌘E).
  Rotate, Slideshow, and Toggle Light/Dark have no default but stay in the menus and are
  customizable in Settings ▸ Shortcuts. Changing a shortcut updates everywhere it's shown
  (menus and Settings) immediately.

## 1.12.0 — 2026-06-18
### Added
- **Auto-refresh on external changes.** The app now watches the folder(s) you're viewing and
  refreshes on its own when files are added, edited, or removed outside the app (debounced, with
  a brief "Refreshing changed files" note). Edit a document in another app and the view updates
  by itself. Toggle it in **View ▸ Auto-Refresh on File Changes** (on by default).
- **Refresh in the menu-bar icon menu** ("Refresh / Reload All"), alongside the in-review ↻
  button and Reload & Recache (⌘⇧R).
### Fixed
- **Reopening a folder now re-scans its structure**, so a subfolder added since you last saved a
  selection shows up instead of being filtered out.
- **The detailed view keeps your page number across documents** (←/→): on page 2 of one document,
  moving to the next lands on page 2, clamped to shorter documents and restored on longer ones.

## 1.11.2 — 2026-06-18
### Changed
- **⌘T now opens a New Tab** (matching Finder/Safari), not the light/dark toggle. The theme
  toggle keeps no default shortcut; it stays on View ▸ Appearance, Settings, and the ◐ button.
  New Tab also has a File-menu item, and the Settings → Shortcuts list reflects the change.

## 1.11.1 — 2026-06-18
### Fixed
- **Reader: ↑/↓ (and Space, Page Up/Down, Home/End) now scroll the document** — including a
  single-page PDF, where they scroll within the page. The arrow keys weren't bound before, so
  keyboard navigation did nothing in the reader.

## 1.11.0 — 2026-06-18
### Added
- **Advanced PDF reader (PDF.js).** PDFs now open in a true reading view: continuous scroll
  through all pages, razor-sharp zoom (vector, not pixelated), real text selection and copy,
  find-in-document (⌘F searches the text), and clickable links/outline. Open it by double-
  clicking or dropping a single PDF, or with the **Read ▤** button (or **R**) on any PDF in a
  review. Built on a bundled PDF.js engine (works offline) served through an in-app byte
  channel, so it opens documents anywhere on disk — including Dropbox/CloudStorage paths with
  spaces and parentheses that a plain file load chokes on. PowerPoint, Word, and a dedicated
  photo zoom view are the next waves.

## 1.10.1 — 2026-06-18
### Fixed
- **Multi-page documents now show every page in the detailed view.** Opening a PDF (or deck/
  Word doc) in the large view was stuck on page 1 because the page-rendering helper was being
  invoked at the wrong path (it pointed one folder too deep and silently never ran), so the
  extra pages never came back. Fixed the path; the detailed view now loads all pages and ↑/↓
  flips through them, with ←/→ moving between files.
- **New windows and tabs now open in the correct light/dark.** On a dark system (or with Dark
  / Follow System set) a freshly opened window or tab could open light and never correct. The
  app now sets each page's light/dark from the app's resolved appearance the moment it loads,
  gives every window a matching background (no light flash), and follows live system day/night
  switches when set to Follow System.

## 1.10.0 — 2026-06-17
### Fixed
- **Always up to date — no more stale renders.** The viewer could show an OLD version of a
  file you had just edited, because every thumbnail and page render was cached by the file's
  PATH alone. Now every render (grid thumbnail, page image, full-size view, fingerprint) is
  cached by the file's CONTENT (size + modification time), so editing a file in place always
  re-renders it on the next open, while unchanged files still load instantly from cache. The
  full-size image/video view also carries a content tag so the web view can't serve a cached
  copy of an edited original. This makes it a real-time viewer like Preview or Finder.
### Added
- **↻ Refresh button (and Reload & Recache, ⌘⇧R).** A one-click full re-read of every file
  from disk, in case you ever want a guaranteed rebuild (the content-addressed cache already
  refreshes edited files automatically, so you rarely need it). The button sits next to the
  ◐ theme toggle in every review.

## 1.9.0 — 2026-06-17
### Added
- **Dark mode, app-wide, with Light / Dark / Follow System.** Every surface — reviews, the welcome
  screen, the chooser, loading/progress, and the Settings/About/Help panels — now has a polished dark
  appearance. Control it three ways: a **⌘T toggle** (and the ◐ button in a review) that flips light↔dark
  app-wide; **Settings → Appearance → Theme** (Light / Dark / Follow System); and the **View ▸ Appearance**
  menu. **Default = Follow System**, which tracks the device — including macOS's time-of-day auto switch —
  so the app darkens at night and lightens by day on its own. Built on one master lever (`NSApp.appearance`)
  so all native chrome and every web surface (`prefers-color-scheme`) move together.

## 1.8.3 — 2026-06-17
### Changed
- **Group-by-folder now defaults ON when a drop spans multiple subfolders** (e.g. a parent folder of
  packages), so the subfolder groupings show out of the box. Still toggleable in View ▾ → "Group by
  folder", and your choice is remembered; single-folder drops stay flat.
### Fixed
- **Toolbar layering.** A hovered tile's ✓ ✕ ? action buttons could paint over the toolbar (the View ▾
  button); the toolbar (`#top`) now establishes its own stacking context and sits in front.

## 1.8.2 — 2026-06-17
### Fixed
- **"Nothing selected to review" failure when reopening a remembered folder.** A saved per-folder
  selection with an empty include list — e.g. `types: []`, which got saved when a folder has a single
  file kind (the chooser hides the types section, so no type was "picked") — filtered out every file
  and failed. An empty include list now means "no constraint / all", not "none". So a parent folder
  whose top level is only subfolders (all one file type, like a folder of PDF packages) opens correctly.
  The chooser also now records "all" instead of an empty list when a section isn't shown, so no new
  bad prefs get saved. Existing bad prefs are auto-healed by the same change (no need to clear them).

## 1.8.1 — 2026-06-17
### Added
- **Preference for tab vs window** (Settings → Behavior → "Additional reviews open as"): **New tab**
  (the shipping default) or **New window**. Either way, the empty welcome window still fills in place;
  this only controls whether an *additional* review joins the current window as a tab or opens separately.

## 1.8.0 — 2026-06-17
### Added
- **Tabs, native, with tear-away.** A second review now opens as a TAB in the current window instead
  of a separate window: standard macOS tab bar, a "+" button (new tab), and full drag-out tear-away
  (rip a tab into its own window for side-by-side, like Finder/Safari). Window ▸ Show All Tabs and
  Merge All Windows work too.
- **Selecting content fills the current window in place.** From the welcome screen, clicking a Recent
  (or Open Folder, or dropping a file) loads into THAT window instead of opening a new one. A new tab
  opens only once the front window already holds a review.
### Changed
- Each review window/tab is titled by its task (folder / document name), so tabs are easy to tell apart.
- Menu-bar fallback label no longer reads "HVN".

## 1.7.1 — 2026-06-17
### Changed
- **Reverted the logo to the document marks (Stack / Compare / Lens).** The abstract Epiphani marks
  (aperture/spark/dawn/recall/voice) added in 1.7.0 did not suit a document viewer; the app's own
  Stack/Compare/Lens marks do. The masthead mark now FOLLOWS the icon chosen in Settings → App icon, so
  there is one logo control and no separate masthead-logo picker. Restored the original app icon. The
  Epiphani name, wordmark, Cambria type, and warm surface are unchanged.
### Fixed
- The masthead/welcome marks set the gold via `var(--accent-dark)` as an SVG presentation attribute,
  which WebKit does not resolve (the gold would not render). Switched the accent to a fixed `#C8A872`
  and kept the structure on `currentColor`, so it still adapts ink-on-light / ivory-on-dark per scheme.
  The favicon and the render loader are now document-themed (no aperture).

## 1.7.0 — 2026-06-17
### Added
- **Single-document mode.** Drop ONE multi-page file (PDF, deck, Word/Pages, Excel/Numbers) and
  the grid now shows every PAGE as its own thumbnail, so it is a full document viewer, not just a
  multi-document one. Pages render via the existing page renderer (pdftoppm for PDF, LibreOffice for
  Office formats) and flow through the normal image grid, so the lightbox, keyboard nav, and the
  jump-search all work per page. Dropping multiple files/folders behaves as before.
- **Jump-to-file-or-folder restored in grid (single) mode.** ⌘K / ⌘J / ⌘F open a search box; type any
  part of a file or folder name, ↑/↓ to choose, Enter to jump. It existed only in the compare viewer
  before; the grid (the default for a dropped folder) never had it. ⌘J was also added to the compare
  viewer (it was ⌘F / ⌘K only).
- **Masthead logo picker (Settings → Appearance).** Choose among the official Epiphani logo concepts
  from the Brand Lab logo studio — Aperture (default), Spark-i, Dawn, Recall, Voice. The mark is
  scheme-adaptive (foreground rings on light schemes, ivory on dark; gold accent throughout) and
  applies to your next review.
### Changed
- The masthead no longer says ": Review & Compare" — just the Aperture mark + "Epiphani Document Viewer".

## 1.6.0 — 2026-06-17
### Changed
- **Rebranded to Epiphani Document Viewer** (was "HVN Visualize"), joining the Epiphani family. New
  "Epiphan·i·" wordmark with the gold "i", the Epiphani "Aperture" mark (concentric rings drawing into a
  gold core) replacing the H-diamond on every surface (welcome, loader, masthead, favicon, app icon), and
  the Cambria display serif (was Cormorant Garamond / Georgia). The warm cream reading surface is
  unchanged: Epiphani's paper color matches and the gold accent was already shared. The masthead aperture
  is scheme-adaptive (ink rings on light schemes, ivory on dark; gold inner ring + core throughout).
  Internal bundle id (`com.hvn.visualize.app`) and binary name are kept so Full Disk Access grants persist
  and the `open -b` "open in app" flow is unaffected.
- Saved settings (config, per-folder selections, recent folders) migrate automatically from the old
  `~/Library/Application Support/HVN Visualize` folder to `…/Epiphani Document Viewer` on first launch.
### Added
- **Cancel screen: "Change what's included…"** reopens the folder chooser (ignoring any saved per-folder
  selection) so you can remove files you'd included before re-running, instead of only retrying as-is.

## 1.5.1 — 2026-06-16
### Changed
- **Welcome screen redesigned** to match the v1.5.0 brand system. The first screen now leads with the
  H-diamond mark (a one-time draw-on reveal), is scheme-aware (opens Light, carries all six schemes),
  uses the Cormorant display serif, and does a single short fade-up on load. The drop zone became a calm
  hairline with a faint mark and a slow breathing glow (was a heavy dashed box); recent folders are quiet
  chips; and the Full Disk Access tip dropped to a low-key footer caption instead of a gold pill
  competing with Open Folder.

## 1.5.0 — 2026-06-16
### Added
- **Brand + motion upgrade** (brand/motion only; triage logic, decisions, export, and keys unchanged):
  - **H-diamond loader.** The loading screen's generic spinner ring is replaced by the H-diamond
    "Trace" loader (a gold light travels the diamond and the H) + the Epiphani Document Viewer wordmark. The
    heart of the HVN mark now carries the loading state. Reduced-motion safe.
  - **Six-scheme color system.** The two-theme (light/dark) palette becomes the canonical HVN six:
    Light (default), Ivory Gold (signature), White, Slate, Charcoal, Dark — the same set the Digital
    vCard, Voice Capture, and the JP Dev toolbar use. The `t` key cycles all six; `?scheme=<id>` and a
    `postMessage{type:'jpdev-scheme'}` listener let the JP Dev toolbar recolor the app live.
  - **H-diamond in the masthead** (inherits the active scheme's accent) and as the favicon.
  - **Short "Rise" entrance.** The masthead and content fade-up ~0.4s on load; calm, never a gate,
    and off entirely under prefers-reduced-motion.
- Applies across all four builders (single/pair, grid, doc-compare, flip) via shared injection, so
  every mode wears the same chrome.

## 1.4.3 — 2026-06-15
### Fixed
- "Grant Full Disk Access" now opens the correct System Settings pane. It was using an old
  anchor (Privacy_FullDiskAccess) that lands on the wrong page on macOS 26 and short-circuited
  the fallback, so the button appeared to do nothing useful. The correct anchor is
  Privacy_AllFiles (verified: the window opens on Full Disk Access with Epiphani Document Viewer already
  listed). Click grant, flip the switch, and choose Quit & Reopen when macOS asks.

## 1.4.2 — 2026-06-15
### Fixed
- The app is now signed with a stable code identity instead of ad-hoc, so a granted Full Disk
  Access survives app updates rather than needing to be re-granted after every rebuild. Grant
  it once and it sticks. (Builds on a machine without a code-signing cert fall back to ad-hoc.)

## 1.4.1 — 2026-06-15
### Fixed
- Full Disk Access now detects (and registers) by actually opening the protected system file
  instead of calling access(). access() never trips macOS privacy (TCC), so the app was never
  enrolled and never appeared in the Full Disk Access list to be switched on (the reported bug).
  Relaunch once and Epiphani Document Viewer shows up in the list, ready to enable.
### Known / tracked
- Persisting the grant across app updates needs a stable code signature (the app is ad-hoc
  signed today); tracked alongside HVN Voice Capture, which is solving the same signing problem.
- Old builds left stale "droplet" entries in the Full Disk Access list (their binaries are gone);
  remove them with the minus button in that pane.

## 1.4.0 — 2026-06-15
### Changed
- Settings reorganized into TABS (General, Shortcuts, Permissions, Appearance) for a calmer,
  easier panel. The app icon picker now lives in its own Appearance tab (last), not up top.
  Settings remembers the last tab you were on.
- App icon picker selection is now unmistakable: the icon in use gets a gold surround and a
  check badge; every other icon is dimmed until you hover or pick it.
- Fixed: picking an icon now correctly clears the previous selection across all three groups.

## 1.3.0 — 2026-06-15
### Changed
- App icon picker expanded to a full, organized set: three marks (Stack, Compare, Lens),
  each in three treatments (Slate Gold, Charcoal Gold, Monochrome Gold) on a light gold or
  dark field. 18 choices, grouped by mark in Settings. The default is now the light gold
  Slate Gold stack.
- Dropped the Goldenrod and Gold Field treatments (too intense).

## 1.2.0 — 2026-06-15
### Added
- App icon picker in Settings: choose from six on-brand "Stack" treatments (Slate + Gold,
  Charcoal + Gold, Ivory + Gold for a light icon, Gold Field, Goldenrod, Monochrome). The
  choice instantly re-skins the Dock and menu-bar icon and is remembered across launches.
  The installed app's Finder icon stays the build default.

## 1.1.0 — 2026-06-15
### Added
- Rotate the focused image with ⌘R (view-only, remembered per file; never alters the original).
- Open the focused image or PDF in its default app with ⌘E (Preview, PDF Expert, …).
- A customizable Keyboard Shortcuts section in Settings: click a shortcut, press the new
  keys, or reset to default. Rotate, Open in default app, Open folder, New window,
  Slideshow, Light/Dark, and Reload are all rebindable.

### Changed
- Reload Review moved from ⌘R to ⌘⇧R (⌘R now rotates the image).
- ⌘, now TOGGLES Settings open and closed (same keystroke dismisses it).
- The installer is published to Downloads date + time stamped
  ("Epiphani Document Viewer YYYY-MM-DD HH.MM.dmg"), and the prior build is auto-archived to the
  Claude Trash so only the current version remains.

## 1.0.0 — 2026-06-15
First fully-featured release: the app graduates from "viewer" to a complete,
self-serve Mac tool with the standard baseline (Settings, About, Help, menu bar,
Finder integration, branded installer).

### Added
- Settings / Preferences window (⌘,), a beautiful About window, and a Help center
  (rendered instructions + a click-through FAQ).
- First-launch Full Disk Access suggestion, plus a small in-app banner with a
  one-click "grant access" while running without it.
- Optional menu bar icon (toggle in Settings) with app-specific quick actions.
- Finder right-click "Open in Epiphani Document Viewer" (Services Quick Action).
- Gorgeous branded DMG installer ("Gold Horizon") with a custom volume + file icon.
- Multi-page paging (↑/↓) through PDFs and decks in the lightbox.
- Progressive grid rendering so folders of thousands paint instantly.

### Changed
- "Trash N suggested" renamed to "Smart Select" (non-destructive naming).

### Notes
- Pre-1.0 development is folded into this release: burst / near-duplicate grouping,
  EXIF date and location, the true-aspect masonry grid, video support, robust
  drag-and-drop of files and folders, batched Quick Look thumbnails, and the
  empty-state welcome screen.
