diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..52580da --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,48 @@ +# Changelog + +All notable changes to Phokus are documented here. The format is based on +[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project +aims to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html) +(0.x: anything may change between minor versions). + +## [0.1.0] — Unreleased + +First public release. Windows desktop, distributed as an unsigned NSIS +installer with a built-in updater. + +### Added + +- **Local media library** — add folders, recursive background indexing with + live progress, and a filesystem watcher that keeps the library in sync as + files are added, edited, moved, renamed, or removed (thumbnails and + embeddings are preserved across renames). +- **Gallery** — virtualized grid (handles very large libraries), favorites, + star ratings, video durations; filter by folder, type, favorites, or + rating; sort by date added, date taken (EXIF), name, size, rating, or + duration; compact / comfortable / detail density. +- **Search** — filename, semantic (`/s`, via CLIP visual embeddings), and tag + (`/t`) search from one prefix-aware search bar. +- **Discovery** — similar-image search (by image or selected region), an + Explore view with a visual cluster map and tag cloud, and a Timeline grouped + by EXIF capture date. Explore, Timeline, and Duplicates are folder-scopable + from their headers. +- **Lightbox** — keyboard navigation, zoom, pan, inline tag editing, and + rating controls, plus a custom edge-to-edge video player (scrubbing, volume, + speed, loop, fullscreen, keyboard support). +- **AI tagging** — WD tagger (ONNX, CPU/DirectML) with adjustable confidence + threshold, batch size, and per-folder queue targeting. Optional. +- **Duplicate finder** — three-phase exact-duplicate scan + (size → sample hash → full hash) with live progress and bulk delete. +- **Background pipeline** — strict-priority workers (thumbnails → metadata → + embeddings → tags) with per-folder pausing from the sidebar context menu or + the background-tasks bar. +- **Guided first-run onboarding** — background FFmpeg provisioning with live + progress and retry, a walkthrough of the library, pipeline, search modes, + and views, and an optional AI-tagger download. Re-runnable from Settings. +- **Updater** — checks GitHub Releases on launch and from Settings; downloads + and installs signed update artifacts. +- **Maintenance** — database compaction and orphaned-thumbnail cleanup from + Settings, with live size/reclaimable stats. +- **Window state** persistence and single-instance handling. + +[0.1.0]: https://github.com/JezzWTF/phokus/releases/tag/v0.1.0 diff --git a/README.md b/README.md index 6ee6ac6..457480a 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,55 @@ A local-first desktop media library for browsing, filtering, and curating image | jpg, jpeg, png, gif, bmp | mp4, mov, m4v | | tiff, tif, webp, avif, heic, heif | webm | +## Installation + +Phokus is a **Windows desktop app**. Download the latest installer from the +[Releases page](https://github.com/JezzWTF/phokus/releases/latest) and run it. + +**Requirements:** Windows 10 or 11. The installer will fetch the WebView2 +runtime automatically if it isn't already present (it ships with Windows 11). + +### A note on the unsigned build + +Phokus 0.1.0 installers are **not code-signed**. Code-signing certificates are +an ongoing expense that's hard to justify for an unfunded open-source project, +so signing is on the roadmap rather than in place today. + +In practice this means Windows SmartScreen will show a blue +**"Windows protected your PC"** warning the first time you run the installer. +To proceed: click **More info → Run anyway**. If a release publishes a SHA-256 +checksum, you can verify the download against it first. + +### First run + +On first launch Phokus downloads a few tools and models — all one-time, and all +processed on your machine: + +- **FFmpeg** (~tens of MB) for video thumbnails and metadata — downloaded in the + background; the guided first-run tour shows progress. +- **WD tagger model** (~1.3 GB) — **optional**, only if you enable AI tagging. +- **CLIP embedding model** (~580 MB) — downloaded automatically the first time + visual embeddings run (powers semantic search and similar images). + +## Privacy & local-first + +Phokus is local-first by design. **Your media and everything derived from it — +thumbnails, embeddings, tags, ratings — never leave your machine.** There is no +account, no telemetry, and no cloud sync. + +The only network activity is: + +- **One-time tool/model downloads** on first use (FFmpeg, the CLIP and WD + models, and the ONNX runtime), fetched from their official sources + (FFmpeg builds, Hugging Face, NuGet). These pull *tools to your machine* — + none of your images are uploaded. +- **Update checks** against the GitHub Releases page, so the app can offer new + versions. This can be ignored if you never update. + +Everything Phokus stores lives in its app-data directory (`gallery.db`, +`thumbnails/`, `models/`, `settings/`). Removing that directory resets the app +completely; your original media folders are never modified. + ## Stack - Tauri 2 + Rust backend diff --git a/docs/release-notes-0.1.0.md b/docs/release-notes-0.1.0.md new file mode 100644 index 0000000..993d186 --- /dev/null +++ b/docs/release-notes-0.1.0.md @@ -0,0 +1,59 @@ +# Phokus v0.1.0 + +> Draft for the GitHub Release body. Paste into the release, fill in the +> checksum, and trim as needed. + +**Phokus is a local-first desktop media library for Windows** — point it at +your image and video folders and it builds a fast, searchable gallery with +thumbnails, semantic search, visual discovery, AI tagging, and duplicate +cleanup. Everything is processed on your machine; nothing is uploaded. + +This is the **first public release**. Expect rough edges, and please file +issues. + +## Install + +1. Download `Phokus_0.1.0_x64-setup.exe` below. +2. Run it. **Windows SmartScreen will warn** that the publisher is + unrecognized — this build is **not code-signed** (cost; signing is on the + roadmap). Click **More info → Run anyway** to proceed. +3. Requires **Windows 10/11**. The installer fetches the WebView2 runtime + automatically if needed. + +On first launch, Phokus runs a short guided tour and downloads FFmpeg in the +background (one-time, ~tens of MB). AI tagging (~1.3 GB) is optional; the CLIP +model for semantic search (~580 MB) downloads automatically the first time +embeddings run. **All of this stays on your machine.** + +## Highlights + +- Virtualized gallery for very large libraries; favorites, ratings, filters, sorts +- Filename, semantic (`/s`), and tag (`/t`) search +- Similar-image search, Explore clusters + tag cloud, EXIF Timeline +- Lightbox with zoom/pan and a custom video player +- Optional on-device AI tagging (WD tagger) +- Exact-duplicate finder with bulk delete +- Built-in updater + +See the [changelog](https://github.com/JezzWTF/phokus/blob/main/CHANGELOG.md) +for the full list. + +## Privacy + +Your media and all derived data (thumbnails, embeddings, tags, ratings) never +leave your machine. No account, no telemetry, no cloud. The only network +activity is the one-time tool/model downloads above and update checks against +this Releases page. + +## Known limitations + +- **Unsigned installer** — SmartScreen warning as described above. +- **Windows only** for now. +- CPU/DirectML inference in the shipped build; very large libraries take time + to embed on first index. + +## Verify your download (optional) + +``` +SHA-256 (Phokus_0.1.0_x64-setup.exe) = +``` diff --git a/src/components/onboarding/StepAiFeatures.tsx b/src/components/onboarding/StepAiFeatures.tsx index ecff547..799645a 100644 --- a/src/components/onboarding/StepAiFeatures.tsx +++ b/src/components/onboarding/StepAiFeatures.tsx @@ -98,7 +98,7 @@ export function StepAiFeatures() {

Powers /s search, "find similar", and the Explore view, so it's part of the standard pipeline: the CLIP model - (~330 MB) downloads automatically the first time embeddings run. Nothing to do — you'll see it + (~580 MB) downloads automatically the first time embeddings run. Nothing to do — you'll see it in the background-tasks bar.