All notable user-facing changes to IngestFlow ship as a tagged release here. The format follows Keep a Changelog and IngestFlow uses Semantic Versioning:
- MAJOR — breaking changes (file format, settings, config schema)
- MINOR — new features, backwards-compatible
- PATCH — bug fixes only
Every release is signed and notarized for macOS.
[1.18.0] — 2026-08-12
Added
- Applying a template now means ONLY your template. Ingesting with Apply Metadata on wipes every descriptive field the file arrived with — captions, keywords, bylines, credits, rights, locations, third-party tags — then writes your template in, so nothing from upstream rides along underneath. Camera EXIF is untouchable: capture times, serials, lenses, exposure, and GPS always survive, on every path.
- Wipe Existing Metadata — blank-slate ingest. With Apply Metadata off, a new orange toggle (FTP configs and Card Ingest) strips all descriptive metadata from arrivals with no template at all: files come in clean. Re-running the same files is byte-identical and logs "already clean" instead of pretending to wipe twice.
- Clear Template — start over in one click. A confirmation-guarded button in the metadata editor resets every template field, custom variable, and detected photographer to the same blank slate a brand-new configuration gets. Your hot-codes sheet stays attached.
- Your hot-codes sheet travels with the configuration. Choosing a sheet embeds its content into the config, so exports, imports, and backups carry the photographer lookups with them — a teammate importing your config gets working
{photog}names without ever having the sheet file, and if the file is later moved or deleted, IngestFlow falls back to the embedded copy with a warning instead of silently losing lookups.
Fixed
- A scrubbed file is the only file that leaves. If the metadata wipe can't be honored — unreadable file, or a format whose embedded metadata can't be stripped (TIFF/PNG/HEIC) — the file stays on this Mac with an error in the log instead of being forwarded to relay destinations with its original metadata intact. Sidecar
.xmpcompanions arriving alongside images are rewritten to match the scrub too, so they can't re-introduce what the wipe removed. - Metadata edits can't re-trigger downloads in keep mode. Rewriting a file locally changed its size, which could make keep-mode re-fetch files the server re-listed; delivery bookkeeping now keys on the server's own listing in every mode.
- Repaired a metadata-segment alignment quirk that could leave rewritten JPEGs failing strict validation in downstream tools.
[1.17.0] — 2026-08-11
Added
- Card Ingest audit log — who dumped cards, when, and how many. Every ingest run logs one line per photographer: time, card, mode, and copied/skipped/failed counts. Build a roster under ARCHIVE SETUP — type names, or Pull from Sheet to import every photographer from your hot-codes sheet in one click — and the AUDIT button beside Rescan badges whoever hasn't dumped cards yet today. The audit window shows the roster verdict (last ingest time, files, distinct cards and total dumps per shooter — two identical cards both named the same still count as two) over the full timeline, exports a two-sheet spreadsheet, copies the roster block as an image for pasting into a chat, and a confirmation-guarded Reset starts a new day clean while keeping the roster.
- Card Ingest has its own metadata template. End-of-day archival metadata usually isn't live-ingest metadata — Card Ingest no longer borrows an FTP configuration's template. Edit Template… opens its own editor (fields, custom variables,
.xmp/.snapimport, live preview), your previously-borrowed template is carried over automatically on first launch, and the whole setup now rides in Backup & Restore. - The photographer is named by the sheet, by default. New Card Ingest templates start with the Creator filled from your hot-codes sheet's camera-serial lookup — and importing an event
.xmpkeeps it that way instead of silently overwriting it with the file's fixed name. Every archived frame credits its shooter without anyone typing a name.
Changed
- Nothing starts on its own at launch. A relay left running at quit no longer resumes when the app opens, and hot folders and media pulls come up switched off — the one exception stays the per-configuration Start on launch opt-in. What moves is what you started.
- The hot-codes sheet is front and centre in Archive Setup — its own row with the sheet name and a live code count, since it drives the
{photog}folders and the audit roster whether or not metadata applying is on.
[1.16.0] — 2026-08-10
Added
- The ejected-card tile names the photographer and stays up longer. SAFE TO PULL now shows for 45 seconds (was 12) and carries the photographer name(s) resolved during that card's ingest — from the hot-codes sheet or the card's PHOTOG field — on the tile and in the log line. Five readers running, and you can still read whose card is done from across the room.
- A clear warning when
{photog}resolves empty. If the subfolder template names{photog}bare and neither the card's PHOTOG field nor the hot-codes sheet has a name for this camera, the log says so at the start of the ingest — before thousands of frames file without a photographer folder — with the fix spelled out (set PHOTOG, fix the sheet, or use{photog|Unsorted}).
Fixed
- No more spinning cursor on big cards. The live folder preview under the subfolder template was re-reading camera EXIF from the card on every screen refresh — and mid-ingest, with the card busy copying, that stalled the whole app. The preview now reads from information captured once when the card is scanned, ejecting no longer freezes the app while the card flushes, and archive bookkeeping was moved off the interface entirely — cards with thousands of images ingest with the app fully responsive.
- The next card is detected while the previous SAFE TO PULL tile is still up. Every Canon card mounts under the same name, and a lingering done-tile could block the next card in that reader from scanning until the tile timed out. The new card now takes over immediately.
- Hot-codes sheets saved with Windows punctuation load correctly. A sheet carrying curly quotes from an older editor could be refused by the strict reader and silently treated as empty — the photographer lookup then never fired. All common encodings now load.
Changed
- The Codes tooltip now says it plainly:
{serial}is the raw camera body number;{photog}is the photographer's name — filled from the card's PHOTOG field, or looked up from your sheet's serial→photographer table. - Archive Setup shows an explicit Show/Hide settings control, so the collapsed panel reads as something you can open.
[1.15.1] — 2026-08-10
Fixed
- Creator's Identity now saves as its own field. It was sharing a field with Creator's Job Title, so a photographer's Creator's Identity was overwritten. It now writes to Photo Mechanic's own Creator's Identity field, distinct from the job title, and both round-trip correctly.
[1.15.0] — 2026-08-10
Added
- All metadata for a configuration now lives in one place. Each FTP configuration has a Metadata slider and a Metadata Editor button that opens a roomy editor: the IPTC fields on the left, a Photographers pane on the right.
- Per-photographer metadata by server subfolder. When the server splits shooters into folders (Portland Timbers/Andrew Wevers, Portland Timbers/Craig Mitchelldyer), each row keys one subfolder to that shooter's own byline. Blank fields inherit the template.
- Automatic photographer naming. One switch makes each file's Creator its server folder name - no hot code to type. A Detect button lists the server and adds every photographer folder it finds, even empty ones.
- Caption credit. Optionally append a "(Photo by …)" credit to the caption, filled from each file's photographer. Select a photographer on the right to preview their exact credit, standard or a custom byline format.
- Live Log. The activity feed is now a proper log you can filter by photographer and by lane - Ingest, Relay, Metadata, System - with a failures-only view. The relay has its own log line for every file it forwards.
Changed
- The whole app was restyled for a cleaner, more consistent look - underlined fields, monospaced section labels, capsule buttons, and better click targets throughout.
- A menu in the top right now holds FTP Cleanup, Settings, About, Help, and your license. Per-configuration actions (Export, Clear History, Delete, Open Folder) moved to a right-click on the configuration.
- The hot-codes token reference opens in its own window instead of filling the editor.
- Media Upload is off by default; turn the tab on in Settings if you use ScorePlay.
Fixed
- A sealed diagnostics file is written alongside the log, so a log you send for support carries the full detail without exposing anything on screen.
- Shorter, plainer descriptions across the app.
[1.14.2] — 2026-08-10
Added
- A sealed diagnostics file beside the log. The app now keeps a second log that only support can read, and it survives even when the main log is trimmed. Reveal Log Files in the About panel shows both. Send both when reporting an issue.
Changed
- Shorter, plainer descriptions across the app's settings and setup screens.
[1.14.1] — 2026-08-07
Fixed
- Files can no longer land on the destination under a temporary name. Deliveries to services that ingest uploads the moment they finish (PhotoShelter and similar) could end up processed under an internal temporary name instead of the real filename — visible as odd extensions on the destination and "missing" images that were actually there under the wrong name. Uploads now transfer directly under the final filename. If you turned off "delete after download" during this, it's safe to turn back on once you've updated.
[1.14.0] — 2026-08-05
Added
- Auto-stop when idle — the overnight guard. A running sync that finds no new images for 6 hours now stops itself, with a clear line in the log ("auto-stopped: no new images in 6 hours — press ▶ to start again"). A laptop left on after an event no longer polls the server every few seconds all night. The window is adjustable per configuration in the editor's new AUTO-STOP WHEN IDLE section (Never / 2 / 6 / 12 / 24 hours); existing configurations pick up the 6-hour default automatically. Only genuinely new images count as activity, so a stuck session winds down too.
[1.13.0] — 2026-08-05
Fixed
- One photo, one delivery — even on a terrible connection. When the server refused to remove an already-delivered photo (typically because a camera transmitter on a weak link was still re-sending it and holding the file open), IngestFlow re-downloaded and re-delivered that same photo every sync cycle — one stuck frame could reach your destination a hundred times, and re-sends could pile up as renamed copies. Delivered photos are now remembered: the removal keeps retrying quietly in the background (with one clear log line explaining why), and an identical re-send from the camera is recognized and never delivered twice. A photo you genuinely re-edit still comes through as new.
- Slow RAW uploads can't be grabbed half-finished. Large RAW files upload slowly, and a camera pausing mid-upload could fool the stability check — IngestFlow then pulled a truncated copy, sent it on, and its cleanup raced the camera's still-running upload. After every download the server's copy is now re-checked against the bytes received; a still-growing file is set aside untouched and picked up complete on a later pass — never delivered half-baked, never removed out from under the camera.
- Relayed deliveries are all-or-nothing. If the connection dropped mid-upload to a relay destination, the receiving service could ingest the half-transferred image as a real asset — and the retry then added a duplicate. Relays now transfer under a temporary name and only take the real filename once every byte has landed, so a dropped transfer leaves nothing the destination will ingest.
- The connection status tells the truth. During server trouble the app could show Connected for hours while every folder check was quietly failing — looking exactly like "it's connected but finds no new files." Repeated failures now flip the status to an error until the server answers again, and the log reports an ongoing outage in summary instead of thousands of identical warnings.
[1.12.0] — 2026-07-29
A one-time upload straight into a ScorePlay gallery.
Added
- Media Upload tab. The one-shot mirror of Media Pull: drop photos, videos or whole folders in (folders are scanned for media, subfolders included), pick the ScorePlay collection — gallery — to file them into, press Upload once. Media is created directly inside the chosen collection via the ScorePlay API — no FTP, no renaming, no watching afterwards. Six files upload in parallel with live per-file status, a progress bar, Stop, and a one-click Retry Failed. The API key lives in your Keychain; the chosen gallery is remembered between launches. For a folder that should keep delivering as new files land, Hot Folders remain the tool.
Fixed
- Failed uploads no longer leave half-created media in ScorePlay. Any upload that fails after starting — from the Media Upload tab or a ScorePlay hot folder — is now properly aborted with the API, so no orphaned, incomplete media records accumulate in your account.
[1.11.0] — 2026-07-26
Protection against uploads that never finish.
Added
- Stuck uploads are given up on, loudly. A file that keeps changing size can now defer at most 10 stabilization checks. Each failed check widens the next sampling window (up to 4×), giving slow-but-real uploads progressively more patience — and the warnings count themselves (
still changing — deferred (3/10)). At 10, IngestFlow stops retrying the file and posts an unmissable bold red notification:NEVER COMPLETED — gave up after 10 checks. Re-upload the file, or restart this sync to retry.Previously a stalled upload was re-checked forever, flooding Live Notifications for hours. - Error rows shout. Error-level entries in Live Notifications now render in bold red on a strong red background, so a failure can't be scrolled past the way an amber deferral can.
Changed
- Restarting a sync clears its given-up list — after fixing the upload, one restart re-tries everything.
[1.10.0] — 2026-07-20
Added
- Relay to more than one destination at once. The FTP Relay tab now takes a list of destinations, so every ingested file can be re-published to several FTP / FTPS / SFTP servers in one motion — each with its own target folder, its own on/off switch, and its choice of the tagged copy (after metadata is written) or the untouched original (before). Any relay you already had is carried over automatically.
- Media Pull — grab finished media. A new top-level tab that pulls finished images down from a ScorePlay collection or an FTP / FTPS / SFTP server into a local folder on your Mac, automatically as they appear — built for social teams who just need the edited, posted photos to grab and share. Choose the source, the download folder, how often to check, and (for ScorePlay) the image quality; already-downloaded files are never grabbed twice, and existing media can be baselined so only new images come in.
Changed
- A cleaner top bar. The window header is now just the app, a live status readout, the Metadata menu, and About. Each background function — FTP Ingest, Hot Folders, Media Pull — has its own status chip up top; click a chip to jump straight to it.
- Metadata in one place. A connection's IPTC template and the shared Event Templates are both opened from the Metadata menu.
- “End-of-Shoot Cleanup” is now “FTP Cleanup.”
- Help & FAQ is now online. About links to the always-current Help & FAQ page instead of a built-in copy.
[1.9.6] — 2026-07-16
Added
- Optional organization on activation. The unlock window has a new Organization field. Leave it blank, or enter your outlet or company name — it's kept with your license record, which makes life easier when one newsroom runs several licenses. Existing licenses aren't affected and nothing is required.
[1.9.5] — 2026-07-14
Fixed
- ScorePlay accounts with many collections now list all of them. The hot-folder collection picker previously stopped after the first 200 collections, so large accounts showed exactly 200. Every collection is now listed.
[1.9.4] — 2026-06-15
Fixed
- Hot folders reliably watch right after launch. A hot folder could show "Connected" but silently deliver nothing until you toggled it off and back on — it claimed to be watching while it actually couldn't read the folder (a permission/timing issue at startup, made worse by date‑named folders that don't exist yet). It now re‑checks folder access on every pass and starts working on its own as soon as the folder is readable — no toggle needed. If it genuinely can't read the folder, the card now shows a clear "Can't read the watch folder — re‑select it in Edit" instead of a misleading green light.
Added
- "Push Now" button on each hot folder — delivers every complete image currently in the folder on demand. Handy for sending a backlog, or pushing a folder that was added before you turned watching on. (Pair it with Forget Sent History to re‑send images already delivered or left in place.)
[1.9.3] — 2026-06-15
Added
- On‑disk activity log for troubleshooting. IngestFlow now keeps a rolling log of each run at
~/Library/Logs/IngestFlow/ingestflow.log(capped so it can't grow without bound), and the new About tab has a Reveal Log in Finder button so you can grab it when reporting an issue. - Redesigned About tab. Settings now has an About tab gathering the app version, your license details, and software‑update controls in one place — matching the rest of the suite.
Changed
- Update notice is more prominent. When an update is available, a bright Update button now appears top‑left next to the wordmark (and on launch), so you won't miss it — clicking it lands you right on the About tab to install.
[1.9.2] — 2026-06-15
Fixed
- Installs cleanly on every Mac. On some Macs a fresh install could be blocked by macOS ("blocked to protect your Mac") because the app had to verify itself online the first time it opened. The app now carries its notarization with it, so it opens straight away on any Mac — online or off. No app changes; re‑released for compatibility.
[1.9.1] — 2026-06-12
Added
- Stop / Resume a card ingest. A card that's archiving now has a Stop button. It halts cleanly after the current file, and the card shows how many were archived so far — press Ingest (Resume) to pick up exactly where it left off (already-archived files are skipped), or Eject. Stopped cards are never auto-ejected.
[1.9.0] — 2026-06-10
Added
- Card Ingest — end-of-day full takes. A third top-level tab. Insert one or more camera cards (anything with a DCIM folder is detected automatically) and IngestFlow archives them: every RAW and JPEG, or just the frames the photographer locked in camera (Full Take / Locked Only). Files land in a dated, hot-coded folder structure — the subfolder template (e.g.
{iyr4}{mon}{dd}/{photog}) resolves per file from its capture date, camera EXIF, your external hot-codes sheet (serial → photographer lookups work), and a per-card photographer field — with a live preview that shows exactly where files will land as you type. - Built to run as a station. Five cards at once is normal: each card gets its own tile with counts (RAW · JPEG · locked), what's new vs already archived (visible the moment a card mounts — nothing ever copies twice), a live progress bar with bytes and the current file, and a big SAFE TO PULL state after the automatic eject. Flip on Auto-ingest and the whole flow is hands-off: pop a card in, watch it archive and eject itself. Cards are never modified, name collisions never overwrite, and a card with any failure stays mounted with the error shown.
- Optional IPTC metadata on the archived copies, borrowed from any existing configuration's metadata template.
Changed
- The Archive Setup panel collapses to a row of at-a-glance setting chips, and the long feature explanations on the Hot Folders and Card Ingest tabs moved behind clear Info buttons — more screen for the work.
[1.8.0] — 2026-06-10
Added
- Hot Folders — edit, save, it's sent. A new top‑level tab alongside Configurations. A Hot Folder is a folder on your Mac that IngestFlow watches: the moment you save an image into it, IngestFlow delivers it for you — straight into a Scoreplay collection (with your API key, searchable collection picker, or paste a collection ID) or up to an FTP/SFTP server. The reverse of the ingest side: instead of pulling files down, hot folders push your saved files out, so you can skip the upload step entirely.
- Watch one or many folders, each with its own destination. Choose what happens after delivery: leave the file, move it to a "Sent" subfolder, or trash it.
- Each hot folder shows a live status, sent/failed counters, and a compact live log of recent deliveries.
Safety
- Never sends a half-saved image. A file must sit untouched, hold a stable size across scans, and pass an image-completeness check before it's sent — built for big batch exports where files take a while to finish writing. Files already in a folder when watching starts are left in place by default (only new saves go out), nothing is ever delivered twice, and a file that changes mid-send is automatically re-sent in its final form.
[1.7.10] — 2026-06-10
Fixed
- Now runs on Intel Macs. This is now a universal app, so it opens on both Apple-silicon and Intel Macs. Earlier builds were Apple-silicon only, which gave Intel users “this application is not supported on this Mac.” (No other changes — same app, now built for both processors.)
[1.7.9] — 2026-06-09
Added
- Update notice on launch. IngestFlow now checks for a newer version a few seconds after it opens and shows a one-time notice when an update is ready — with Download & Quit, What's New, and Later. Dismissing it won't bring it back until a newer version ships. A small Update pill also appears in the toolbar while an update is available; clicking it opens Settings to install. If you're offline, nothing appears.
[1.7.8] — 2026-06-05
Added
- License badges. The license panel now marks special licenses: a gold badge for an administrator (all-access) license, and a violet badge for a permanent license that never expires.
[1.7.7] — 2026-06-05
Changed
- Updating quits the app for you. When you download an update, IngestFlow now asks to confirm, then downloads it, opens the installer, and quits — so you can drag the new version straight into your Applications folder. (macOS won’t let you replace an app while it’s running.)
[1.7.6] — 2026-06-05
Changed
- Internal maintenance and reliability improvements.
[1.7.5] — 2026-06-05
Added
- Check for Updates, right in Settings. Open Settings › About and click Check for Updates to see whether a newer version is out. If one is, IngestFlow downloads it and opens the installer so you can drag the new version into your Applications folder — no need to hunt down the download page. A "What's new" link takes you straight to the release notes.
[1.7.4] — 2026-06-01
Changed
- "New Configuration" button renamed to "New FTP Connection" (top-right header).
- End-of-Shoot Cleanup moved out of the FTP Connection tab body. It read oddly at the top of the page since it's the last thing you do. It's now a compact trash button tucked under New FTP Connection in the header; clicking it opens a Cleanup sheet for the selected configuration with the same info (local directory, FTP server, remote paths) and the two action buttons (Move local to Trash, Delete on server).
[1.7.3] — 2026-06-01
Fixed
- More Photo Mechanic date variables now resolve in templates. Date-related Photo Mechanic variables (day, day of week, year, time, and related forms) previously came out blank in templates — only the month-name variables were recognized. The full Photo Mechanic date-variable set is now supported, so existing Photo Mechanic stationery pads drop in unchanged. A template now produces, for example: "During the 2026 F1 Miami Grand Prix on Sunday, May 24, 2026 in Miami Gardens, Florida. (Photo by Andrew Wevers/F1 Miami GP)"
[1.7.2] — 2026-06-01
Added
- Default values for unmatched lookups. When a photo can't be matched to a row in your photographer lookup table (for example, an unknown camera), it now falls back to the default values you declare instead of coming out empty.
- Inline fallback text in templates. When a variable resolves to empty, you can now specify literal fallback text to use in its place.
These bring IngestFlow's hot codes in line with the Photo Mechanic hot-codes specification.
[1.7.1] — 2026-06-01
Fixed
- Photographer lookup tables now import correctly. External hot codes now support Photo Mechanic's full code-replacement format, including camera-to-photographer lookup tables. Earlier versions handled only simple code/value pairs and mangled multi-column lookup tables, losing columns. For each downloaded image, the matching row now fills in the photographer's name, initials, role, and any other columns you define.
- Hot codes preview now resolves your sheet against the sample image, so lookup-keyed rows fill in instead of showing nothing.
- Case-distinct codes preserved — two codes that differ only in capitalization no longer collapse into one.
- FTP Relay password no longer vanishes. Typing a relay password, or hitting Test Relay, previously cleared it. The relay password is now stored securely and stays put.
Added
- Relay timing option — relay after metadata is written (enriched copy, the default) or before (original files). Toggle on the FTP Relay tab.
- Start Relay / Stop Relay button on the FTP Connection tab, shown whenever the relay is configured. Pauses just the re-uploading mid-shoot while downloads continue. A status row shows the destination, timing, and live state.
Changed
- External Hot Codes Sheet moved to the top of the Metadata tab, right under Apply Metadata, for visibility. The card now summarizes the codes and lookup tables it detected.
[1.7.0] — 2026-06-01
Added
- FTP Relay tab. After every successful download and metadata write, IngestFlow can re-upload the file to a second FTP/SFTP server. Configure the destination server and target path; the target path supports the same hot codes the Local Directory does, so you can mirror per-photographer folders on the destination. Relay failures are logged but never break the sync — the local file stays put.
- External Hot Codes Sheet on the Metadata tab. Point at a Photo Mechanic-style tab-delimited file and every code becomes available wherever metadata templates use hot codes. It reloads automatically when the file changes, so editing it in a spreadsheet takes effect on the next download.
- End-of-Shoot Cleanup panel at the top of the FTP Connection tab:
- Move local files to Trash — moves every downloaded file to the Trash, preserving subfolders. Reversible from Trash.
- Delete files on FTP server — permanently deletes every file under the configured remote paths on the server. No undo. Confirmation-guarded, and disabled while the sync is running.
Changed
- "Sync" tab renamed to "FTP Connection". Three tabs now: FTP Connection, Metadata, FTP Relay.
- Backup & Restore now includes relay credentials too, so it moves your complete setup to another Mac.
[1.6.0] — 2026-06-01
Added
- Backup & Restore (Settings → Backup & Restore). One encrypted backup file packs every Configuration, every Event IPTC Template, and every saved password. Move it to another Mac, type the same passphrase, and your full setup is restored. License keys and per-machine data are deliberately excluded.
- Merge on import — existing items update in place, new items are added. Nothing is ever deleted.
[1.5.0] — 2026-05-31
Removed
- "Auto-tune aggressiveness based on server response" toggle. It never actually did anything, so it's been removed.
Changed
- Stabilization upgraded to a 3-sample size check. IngestFlow now checks a file's size at three points instead of two before declaring it complete — same total wait time, but it reliably catches paused-then-resumed cellular uploads that could previously slip through as "stable" too early.
Added
- Post-download image integrity verification. Every downloaded image is opened and checked after download. Truncated files fail the check, are deleted locally, and are re-downloaded on the next pass.
- Config wizard explainer under Stabilization Interval covering cellular-hotspot scenarios.
- Help docs gain a "Half-Sent / Truncated Files" section.
[1.4.1] — 2026-05-31
Fixed
- RAW sidecar files were silently dropping about half the IPTC fields. Many metadata fields (country, state, headline, source, instructions, creator, keywords, title, usage terms, and more) weren't being written into RAW sidecar files. Sidecar writing has been rebuilt to match Photo Mechanic's own sidecar format, so every field now writes correctly and reads back in Photo Mechanic, Lightroom, and Bridge.
[1.4.0] — 2026-05-31
Added
- RAW metadata support via sidecar files. Metadata is written one of two ways, picked automatically by file type:
- Embedded — JPEG / TIFF / HEIC / PNG → written directly into the file.
- Sidecar — Canon, Nikon, Sony, Fujifilm, Panasonic, Olympus / OM, Pentax, and Hasselblad RAW files → written to a sidecar file next to the RAW. Photo Mechanic, Lightroom, and Bridge all read this on import.
- The feed now shows the write target — e.g. "Downloaded · 12 IPTC fields (XMP sidecar)" vs. "Downloaded · 12 IPTC fields".
- Preview sheet supports RAW — auto-pick and the file picker now include RAW files.
- Help docs gain a "RAW Support" section listing every supported format.
[1.3.0] — 2026-05-31
Added
- One feed row per file. Downloads and their metadata outcome were previously two separate rows per file, doubling feed noise. Now each file is a single row with the metadata result shown alongside.
- Pause vs Stop. A new three-state control: Start → Pause / Stop → Resume / Stop. Pause keeps the connection warm — in-flight transfers finish, and no new ones start.
- Metadata Preview sheet. A "Preview…" toolbar button dry-runs every enabled field against a sample file (auto-picks the most recent download, or pick your own). Shows each template next to its resolved value, with empty results highlighted and a summary of any missing fields.
- Rolling 5-minute throughput stat. The dashboard now shows recent throughput (e.g. "18 in last 5 min") instead of a smoothed session average, staying informative deep into a multi-hour shoot.
- Right-click → Duplicate on any configuration tab. Clones every field including the saved password — just swap the username for the next photographer.
- Drop a metadata template file on the dock icon to import it into the active configuration.
[1.2.0] — 2026-05-31
Changed
- Event template sidebar rows are now fully clickable — anywhere on the row selects it, not just the text.
- Removed the redundant "Apply Metadata to all linked configurations" card from the Event Profile editor; the per-config Metadata tab already owns that toggle. Replaced with a read-only link-count pill.
Added
- "Danger Zone" footer in the Event IPTC Templates sidebar with two confirmation-guarded bulk actions: delete all FTP configurations (keeps events) and delete all event templates (keeps configurations).
- Help window refreshed to cover the full current feature set — folder routing, the IPTC Metadata tab, hot codes, template import, Event IPTC Templates, and the Danger Zone.
[1.1.0] — 2026-05-30
Added
- Hot codes in the Local Directory path. Any code that doesn't need EXIF works in the local download path — e.g. you can put each photographer's photos in their own subfolder, sort by date, or combine the two.
Changed
- Local Directory default is now flat. Previously the local path mirrored the file's folder structure on the server, which surprised users who wanted a single flat folder. Now every file lands directly in the configured Local Directory; add a hot code to the path to re-enable per-subfolder routing.
[1.0.1] — 2026-05-30
Fixed
- Folder-based variables now reflect the file's folder on the FTP server (often the photographer's name) instead of the local download path. A separate variable was added for the previous local-folder behavior.
[1.0.0] — 2026-05-30
Initial public release
- Per-configuration FTP / SFTP sync with smart stabilization, configurable concurrency, and Keep / Delete download modes.
- Per-config IPTC / XMP metadata automation written natively into your images. Photo Mechanic-style hot codes and metadata template import.
- Event IPTC Templates — define a matchup once, link every photographer's config to it, and get consistent metadata across the day.
- Online licensing with offline verification after first unlock.
- Signed and notarized for macOS.
- Native macOS 13+ window app.