Skip to content

v1.0.6rc1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jun 00:56
· 68 commits to master since this release
3532cac

This is a pre-release issued in order to test the new installer and launcher interface. Full release notes will be posted after full testing. Installers for the three major operating systems can be found at the bottom of this page:

Operating System Installer
Windows PhotoMapAI-1.0.6rc1-setup.exe
MacOS PhotoMapAI-1.0.6rc1.dmg
Linux PhotoMapAI-1.0.6rc1-x86_64.AppImage

What's Changed

  • Fix artifact upload: create archives before uploading to GitHub Release by @Copilot in #215
  • refactor(metadata): finish wiring invoke formatter to pydantic union by @lstein in #216
  • feat: support InvokeAI authentication by @lstein in #217
  • fix(metadata): handle unknown InvokeAI metadata fields by @lstein in #218
  • feat: Improve umap window size and position by @lstein in #219
  • feat(invoke): "Use as Ref Image" button + resilient auth fallback by @lstein in #220
  • feat(invoke): show "Use as Ref Image" button for any image when InvokeAI is configured by @lstein in #221
  • feat(invoke): add image-board selector for reference uploads by @lstein in #222
  • feat(invoke): reuse existing InvokeAI images instead of re-uploading by @lstein in #223
  • fix(security): close three HIGH-severity API issues by @lstein in #224
  • docs: add InvokeAI Integration user guide page by @lstein in #225
  • feat: pluggable image/text encoder layer with OpenCLIP and SigLIP backends by @lstein in #226
  • feat: offload idle encoder from VRAM to RAM after configurable timeout by @lstein in #227
  • fix(frontend): suppress slide animation when entering grid view by @lstein in #228
  • fix(frontend): rebuild swiper after single-image delete by @lstein in #229
  • feat(frontend): add wrap-around navigation setting by @lstein in #230
  • feat(frontend): show spinner during album switch by @lstein in #231
  • bump version to 1.05 by @lstein in #232
  • fix(ci): repair v1.0.5 release artifact pipeline by @lstein in #233
  • feat: cluster auto-labeling for UMAP by @lstein in #234
  • chore(libs): unpin torch by @lstein in #235
  • fix(cluster-labels): invalidate vocab cache when phrase set changes by @lstein in #236
  • Polish metadata drawer and UMAP cluster hover popup by @lstein in #237
  • fix(frontend): smooth metadata drawer by @lstein in #239
  • feat(metadata-drawer): clickable thumbnails for in-album reference images by @lstein in #238
  • chore(ci): enhance claude.md instructions by @lstein in #240
  • feat(back-nav): in-app Back button + browser back/forward for slide history by @lstein in #241
  • fix(security): close XSS, path-traversal, and partial-write risks by @lstein in #242
  • fix(concurrency): close race conditions from code review by @lstein in #243
  • chore(dedupe): collapse low-risk redundancies from code review by @lstein in #244
  • chore(ci): add claude workflow by @lstein in #248
  • chore(ci): use CLAUDE_CODE_OAUTH_TOKEN for claude-code-action by @lstein in #249
  • fix: Export Dataset button reports "undefined files" and does not export by @lstein in #250
  • feat(autotag): broaden vocab and add opt-out toggle by @lstein in #251
  • fix(albums): index freshly-added album when dir has a stale photomap_index by @lstein in #247
  • refactor(embeddings): unify update_index sync/async via shared helpers by @lstein in #246
  • fix(umap): preserve cluster id 0 in landmark hover/click by @lstein in #252
  • refactor(state): generate persisted setters from a single spec table by @lstein in #253
  • refactor(frontend): add fetchJson helper and roll it into the JSON sites by @lstein in #254
  • refactor(frontend): unify drag handlers behind a single makeDraggable helper by @lstein in #255
  • refactor(touch): extract attachLongPress helper by @lstein in #256
  • refactor(encoders): hoist close() and device detection to the base class by @lstein in #257
  • refactor(events): consolidate arrow-key slideshow-pause into events.js by @lstein in #259
  • refactor(metadata): replace InvokeMetadataView isinstance ladders with strategies by @lstein in #260
  • refactor(routers): switch validate / lock / embeddings trio to FastAPI Depends by @lstein in #261
  • feat(umap): show per-image tags in hover popup by @lstein in #262
  • feat: add Python 3.14 support by @lstein in #258
  • fix(metadata): harden discriminator heuristics, iTXt chunks, scalar fallback by @lstein in #268
  • fix(invoke5): warn on unknown v5 fields without breaking parsing by @lstein in #267
  • fix(frontend): listener / interval leaks in weight-slider, curation, grid-view by @lstein in #266
  • fix(backend): thumbnail collisions, cancellable indexing, assert hardening by @lstein in #265
  • fix(bookmarks): adjust indices on image delete and surface quota errors by @lstein in #264
  • fix(caches): bound _curation_results and add npz mtime to image-label key by @lstein in #263
  • fix(indexing): gate image indexing on pixel dimensions, not file bytes by @lstein in #269
  • chore(ci): update claude instructions by @lstein in #270
  • fix(cluster-labels): single-flight guard for vocab cache builds by @lstein in #274
  • fix(umap): respect album_config.umap_eps in /umap_data and /cluster_labels by @lstein in #277
  • fix(exif): cache LocationIQ reverse-geocode lookups by rounded coords by @lstein in #272
  • fix(embeddings,cli): case-insensitive path diff, VRAM release, broken CLI kwarg by @lstein in #271
  • feat(exif): show DateTimeOriginal, Orientation, and Exif image dimensions by @lstein in #279
  • fix(spinner): ref-count showSpinner / hideSpinner so concurrent ops don't fight by @lstein in #275
  • chore: purge dead code identified in the 2026-05-20 review by @lstein in #276
  • feat(about): starburst badge on About button when a new version is available by @lstein in #280
  • feat(search): surface server errors via a toast UI instead of failing silently by @lstein in #278
  • feat(curation): grid view + UMAP on completion, and ~200x BLOCKS speedup by @lstein in #281
  • feat: add Move to Trash/Recycle Bin option for image deletion by @lstein in #273
  • fix(frontend): live-refresh back-nav flyout + misc UI tweaks by @lstein in #282
  • fix(swiper): duplicate current image when toggling grid → swiper by @lstein in #283
  • feat(preferences): per-device server-side UI preferences by @lstein in #284
  • feat(frontend): toast users on slow autotagging vocab build by @lstein in #288
  • feat(umap): album pulldown in semantic-map titlebar by @lstein in #287
  • test(delete_image): pin move_to_trash=False; add Py3.14 to CI matrix by @lstein in #286
  • Docs: 1.06 update by @lstein in #289
  • fix(umap): keep close button visible at small/medium window sizes by @lstein in #290
  • Add Traditional Chinese README by @Hank0101Chen in #291
  • fix(umap): increase threshold to 5000 for switching from random walk to closest ordering by @lstein in #292
  • fix(slideshow): stop on last slide in linear mode; reshuffle endlessly in shuffle mode by @lstein in #293
  • fix(seek-slider): show position index for favorites instead of uniform scores by @lstein in #294
  • fix(umap): render landmark triangles with scattergl to fix touch-pan desync by @lstein in #295
  • feat(slideshow): gray out play button on last slide in sequential mode by @lstein in #296
  • fix(slideshow): rebuild buffer sequentially when pausing a shuffle run by @lstein in #297
  • fix(seek-slider): correct cluster seek rebuild and live drag index by @lstein in #298
  • feat(static): cache-bust frontend assets with versioned paths by @lstein in #299
  • feat(installer): signed uv-bootstrap desktop launcher by @lstein in #300
  • fix(ci): Inno Setup launcher exe path by @lstein in #301
  • ci(launcher): cap macOS job at 120m for slow notarization by @lstein in #302
  • fix(installer): install VC++ runtime when missing by @lstein in #303
  • feat(launcher): custom app icon for desktop launchers by @lstein in #304
  • fix(launcher): tolerate slow cold first start (Windows) by @lstein in #305
  • chore: remove defunct PyInstaller build path by @lstein in #306
  • feat(encoders): platform-aware default encoder for new albums by @lstein in #307
  • feat(indexing): surface encoder-model download progress in the album UI by @lstein in #308
  • chore(version): bump to 1.0.6rc1 by @lstein in #309
  • feat(launcher): add --pkg-version to install a specific photomapai release by @lstein in #310

New Contributors

Full Changelog: v1.0.5...v1.0.6rc1