What's new in Fetch It!
All notable changes to Fetch It! are documented here.
Format follows Keep a Changelog.
[1.2.1] — 2026-11-04
Fixed
- Microsoft Store build: fixed a packaging problem that could stop the Store version from starting, and restored its high-DPI (sharp text on scaled displays) settings.
- Expired GoPro login: when your GoPro session has expired, Refresh Media List now opens the GoPro sign-in instead of just failing, and the header stops showing "GoPro authentication ✓" until you sign in again.
- Free-download counting: direct-mode downloads now count as each file lands, and a count that fails to reach our server is retried instead of lost. The Professional desk's "downloads used" tile reads only your account's counter, never a transfer's "File 3/12".
- Account check: if Fetch It! can't confirm your Knight Tech account (signed out, or no connection), a fetch now stops with a clear message.
[1.2.0] — 2026-10-22
Added
- Professional Mode — one toggle swaps the playful yard for a clean office console: license chip, user/auth line, stat tiles (media library, session mode, downloads used, session top/avg transfer speed, status), primary Start Fetching / Send It actions and a secondary quick-action row. The desk IS the console: a live transfer strip inside it carries filename, attempt, queue position (file N of M), progress bar, size/speed, and a mode-aware Stop button for both Fetch It and Send It — no surface swapping, never stranded after a cancel. Settings → Display ships expanded so the toggle is discoverable; a floating face switch (💼/🎮) docks in the left margin, shows its full label on change, then shrinks to an icon.
- Smart fetch wizard (Phase A) — the "What do you want to fetch?" dialog now reads the offline media-cache summary: live counts on every range chip (Everything/Today/Week/Month/Year), a library hint line (total files, first→ last capture date, snapshot age) with one-click refresh + large-library disclaimer, and Custom date pickers fenced to the library's real date range. New backend
get_media_summary(instant, offline, thousands-of-items safe). - Session speed telemetry: top/average MB/s tracked from the live progress stream into the Professional desk.
- Private login mode (login preference): choose whether Fetch It! stays signed in to GoPro (
saved, default — current behavior) or asks each time (manual). Manual mode never persists the GoPro session, suppresses the "Session Expired" popup and auto re-login at startup, and clears any stale session file when selected. Preference is captured from the setup wizard's save checkbox, the expired-login modal's "stay logged in" checkbox, and a new toggle in Settings → GoPro Account. New i18n strings in all 7 locales. - The Fetch It! logo is now a Home button: closes any overlay/panel and restores navigation from anywhere. Never cancels an active transfer.
Fixed
- Send It without a GoPro login now opens the GoPro login prompt instead of a dead-end "Upload Failed — all files failed" report (guarded at both the upload panel entry and the upload backend).
- No more stranded screens: dismissing an upload report where every file failed returns you to the home controls instead of an empty scene.
- Manual-mode users never see the red "Authentication Expired" dialog: Fetch It!/Send It show a neutral "Log in to GoPro" dialog instead — same one-click login, no alarm framing, and it keeps the "Stay logged in" checkbox so users can escape the log-in-every-time loop right in the flow (no hunting through Settings). The red framing remains only for saved sessions that truly expired. New
auth.login_title/auth.login_messagestrings in all 7 locales. - "Skip GoPro Login" in the setup wizard now sets private mode explicitly — it's the install-time "I'll log in each time" choice, not a dead link.
- Scene scaling on maximized/large windows: maximizing bypassed the 4:5 aspect lock (Windows ignores resize on maximized windows), breaking the vh-calibrated scene — floating dog, toy-sized bones. Now: effectively-maximized windows restore to the largest correct 4:5 size that fits the screen (centered); bone physics bodies/textures/spawn margins scale with window height; background crop anchors to the bottom so the painted grass line never leaves the window bottom during aspect drift.
- Bone-cleanup walking dog now scales and sits correctly at any window size: sprite converted from fixed 246px to vh sizing, and the walker aligns its feet to the idle dog's feet instead of copying its top (head-alignment floated it on large windows). Run-in start is self-relative so the dog always enters from fully offscreen.
- After a finished upload: dismissing the report (success, failure, or mixed) now lands the user home with the Fetch It! and Send It buttons restored, and the logo Home button correctly switches the scene back from the clouds even when the upload panel is already closed.
[1.1.2] — 2026-06-21
- App display name now matches the Store listing (Microsoft Store compliance)
- Includes the Send It multi-folder upload fix
[1.1.1] — 2026-06-19
- Send It now keeps your selections when you pick files from more than one folder — choose from several folders, then upload them all together
- Minor reliability fixes
[1.1.0] — 2026-06-15
- Direct download mode — grab files straight from the cloud, no waiting for GoPro to build a zip (now the default)
- New guided Fetch wizard — pick dates, folder, quality, and mode in a simple step-by-step flow
- Auto-switches to zip mode when you batch many files per archive
- Lower, friendlier default of 10 files per zip
- Quality selection (source / proxy) for direct downloads
[1.0.1] — 2026-03-01
Added
- Smart incremental media cache — fetches only new items instead of full re-download
- Upload duplicate detection — warns before uploading files already in GoPro cloud
- Concurrent upload engine (3 threads) with real-time speed/progress UI
- Upload architecture: session pooling, token auto-refresh, chunk retries with exponential backoff, crash recovery via upload manifest
- Scene editor (Ctrl+E) — visual slider-based layout editor in a separate window
- Disk space management with 500MB safety buffer and pre-download/pre-extraction checks
- Drive spanning — automatic failover to spillover drives when primary disk is full
- Unzip Manager — built-in zip browser with selective extraction and verify-then-delete pipeline
- Auto-extract pipeline — sequential extract → verify → delete after download
- Per-user security — user-scoped settings, per-user keyring keys and session files
Fixed
- Dog animation: pause after ball hit, delayed completion popup
- Dog stops during ball-watch pause
- Celebration animation timing
- Upload: correct Accept headers, numeric field types, completion endpoint
- Media cache refresh and upload auth validation
- Unzip Manager close button and disk space display
- Demo mode artifacts stripped for production
[1.0.0] — 2026-02-22
Added
- Initial public release
- GoPro Plus cloud media bulk download (zip-based)
- Native GoPro login with cookie capture and auto-fill via OS keyring
- Date filtering (today, week, month, year, custom range)
- Gamified bone-drop animations with Matter.js physics
- Dog walk sprite animation with bone collection
- Freemium model: 100 free downloads, then $9.99 lifetime license
- Cloudflare Worker backend for auth, payments, download tracking
- Internationalization support (7 locales)
- Auto-update checking via version.json
- Filename sanitization for path traversal prevention
- Stripe checkout integration for license purchases