Commit Graph

  • 528b7004e3 fix(frontend): open original only when tapping the preview image master v3.0.0 H1K0 2026-07-06 22:36:16 +03:00
  • 41c4667eb4 feat(frontend): enlarge viewer prev/next into full-height tap zones H1K0 2026-07-06 22:35:47 +03:00
  • c3ed36f178 fix(frontend): fit PWA icons into maskable safe zone H1K0 2026-07-03 19:50:57 +03:00
  • 93e55e8e37 fix(frontend): show content date in local time, not UTC H1K0 2026-07-03 18:41:17 +03:00
  • 3f12b60261 fix(frontend): generate API types before svelte-check H1K0 2026-07-03 18:22:48 +03:00
  • 6d13fa425a fix(backend): swap db name in URL-style test DSN H1K0 2026-07-03 18:13:40 +03:00
  • a0a987d561 ci(project): run the test suite before deploying H1K0 2026-07-03 10:57:16 +03:00
  • 3e04da3926 docs(project): clarify API path vs product version in openapi H1K0 2026-07-03 10:30:55 +03:00
  • 87d3c27b65 style: apply prettier and gofmt H1K0 2026-07-03 10:13:56 +03:00
  • 36546c46c9 fix(frontend): clear svelte-check a11y and reactivity warnings H1K0 2026-07-03 10:13:43 +03:00
  • ac27ea3176 chore(project): license the project under AGPL-3.0 H1K0 2026-07-03 10:13:29 +03:00
  • eb3cf72969 feat(frontend): richer pool multi-select and clearer date label H1K0 2026-07-03 08:50:21 +03:00
  • 4b6db84afc feat: per-pool automatic file sorting H1K0 2026-07-03 08:36:12 +03:00
  • 28f5b5d150 docs(project): sync docs with code and bump to 3.0.0 H1K0 2026-07-03 08:35:16 +03:00
  • 4883820f25 test(backend): encode the JPEG test fixture so it decodes H1K0 2026-07-03 08:34:59 +03:00
  • a6a46af12e feat(backend): graceful shutdown on SIGTERM/SIGINT H1K0 2026-07-03 08:12:10 +03:00
  • bf7fa49a16 feat(frontend): support nested objects in the metadata editor H1K0 2026-07-03 00:09:11 +03:00
  • 76d9c35363 feat(frontend): show and edit file metadata H1K0 2026-06-23 00:37:41 +03:00
  • 71cf79eeaa fix(backend): preserve omitted fields on file update H1K0 2026-06-23 00:37:31 +03:00
  • a16accf443 feat(frontend): show keep-to-other distance in the duplicates view H1K0 2026-06-22 22:42:14 +03:00
  • 78b5e86dd6 feat(backend): report stored pairwise distances in the duplicates response H1K0 2026-06-22 22:42:14 +03:00
  • 281358ff04 feat(frontend): open cluster files in the full viewer for comparison H1K0 2026-06-22 22:26:08 +03:00
  • d8cccbb9e0 fix(frontend): resolve duplicate actions in place without a full reload H1K0 2026-06-22 22:20:39 +03:00
  • d7bfe6b596 feat(frontend): enlarge cluster images in a preview lightbox H1K0 2026-06-22 22:13:38 +03:00
  • e5a731eb29 perf(frontend): lazy-load thumbnails via IntersectionObserver H1K0 2026-06-22 22:10:12 +03:00
  • 6fe6e4cd55 chore(project): lower duplicate hash threshold to 4 in example env H1K0 2026-06-22 22:09:04 +03:00
  • 6834b916cd feat(frontend): replace file content from the viewer H1K0 2026-06-17 17:33:22 +03:00
  • 745fe38e63 chore(project): drop the docs/reference Flask snapshot H1K0 2026-06-17 17:20:49 +03:00
  • 43c5c12fb9 feat(frontend): add selected pool files to another pool H1K0 2026-06-17 17:19:02 +03:00
  • c9b7f0701b feat(frontend): keyboard control for the add-to-pool dialog H1K0 2026-06-17 17:15:12 +03:00
  • b8d08925a2 feat(backend): take video thumbnails from the middle frame H1K0 2026-06-16 15:14:04 +03:00
  • dc40729646 fix(frontend): shift-select in gesture direction, not grid order H1K0 2026-06-16 14:54:32 +03:00
  • 432b2d5b1e feat(backend): audit event for pool file reordering H1K0 2026-06-16 14:04:41 +03:00
  • 47d9cae15b feat(backend): progress bar for the dedup CLI H1K0 2026-06-16 13:27:14 +03:00
  • 595eb5e06a docs(project): document DUPLICATE_HASH_THRESHOLD in .env.example H1K0 2026-06-16 13:21:23 +03:00
  • 19bdd3faa9 build(project): add one-shot dedup compose service H1K0 2026-06-16 13:20:27 +03:00
  • 16e68236a0 build(project): ship the dedup CLI in the runtime image H1K0 2026-06-16 13:13:53 +03:00
  • dcbe640fae feat(frontend): duplicates view, field-by-field merge dialog, api module H1K0 2026-06-16 13:08:46 +03:00
  • 96a903aaff docs(project): document duplicate detection endpoints H1K0 2026-06-16 12:48:21 +03:00
  • 6e3e6a4194 feat(backend): dedup CLI (hash backfill + pairs rescan) H1K0 2026-06-16 12:46:40 +03:00
  • 9216a8687f feat(backend): duplicate pairs, dismissals, and merge resolution H1K0 2026-06-16 12:42:37 +03:00
  • 88849cc16b feat(backend): perceptual hashing for images and video H1K0 2026-06-16 12:20:52 +03:00
  • 58cea88f52 fix(project): drop external dockerfile frontend directive H1K0 2026-06-16 12:15:23 +03:00
  • b25085bcd7 feat(backend): set application_name on database connections H1K0 2026-06-16 10:51:37 +03:00
  • cf6c312e04 fix(frontend): don't treat empty 2xx bodies as request failures H1K0 2026-06-16 10:43:23 +03:00
  • da4ce37aff fix(frontend): use opaque background icons for PWA install H1K0 2026-06-16 10:39:41 +03:00
  • 70d12615b8 feat(frontend): keyboard navigation for tag and category grids H1K0 2026-06-15 23:36:36 +03:00
  • 97d6daaa13 fix(frontend): stop trimming the file grid while scrolling H1K0 2026-06-15 23:27:19 +03:00
  • 95db88388b feat(frontend): add MIME filter controls to FilterBar H1K0 2026-06-15 22:52:12 +03:00
  • a864ca4f7b feat(frontend): review-status filter, badge, and review toggles H1K0 2026-06-15 21:17:11 +03:00
  • 5bb53d7f9d docs(project): document review status (filter token + bulk/review) H1K0 2026-06-15 21:17:02 +03:00
  • 48e901cac1 feat(backend): per-file review status with DSL filter and bulk endpoint H1K0 2026-06-15 21:16:47 +03:00
  • 4d11beb296 feat(backend): import server-folder files oldest-first by mtime H1K0 2026-06-15 18:16:24 +03:00
  • 57192a49f9 fix(backend): apply auto-tag rule to existing files on creation H1K0 2026-06-15 18:09:31 +03:00
  • 9937984a5a feat(backend): reject non-positive token TTLs at config load H1K0 2026-06-15 17:56:25 +03:00
  • 6fba04cd00 docs(project): document the content-token endpoint and CONTENT_TOKEN_TTL H1K0 2026-06-15 17:53:30 +03:00
  • 35b1b2e6d5 feat(frontend): use a content token for the open-original link H1K0 2026-06-15 17:53:20 +03:00
  • 98de298e5b feat(backend): file-scoped content tokens for media URLs H1K0 2026-06-15 17:53:10 +03:00
  • b470782e97 docs(project): add README with reverse-proxy and quick-start guide H1K0 2026-06-15 14:52:09 +03:00
  • 5a05bb86e1 build(project): publish app on loopback and segment Docker networks H1K0 2026-06-15 14:51:57 +03:00
  • 99668ec0d8 feat(backend): trust reverse-proxy X-Forwarded-For for the client IP H1K0 2026-06-15 14:51:44 +03:00
  • 88e07f0723 build(project): install vips-tools for image thumbnailing H1K0 2026-06-12 01:25:55 +03:00
  • 384386a34e feat(backend): generate thumbnails/previews via vipsthumbnail H1K0 2026-06-12 01:25:55 +03:00
  • e694f17be9 docs(project): document THUMB_MAX_PIXELS and THUMB_CONCURRENCY H1K0 2026-06-12 01:07:30 +03:00
  • 2d2a42d523 fix(backend): bound thumbnail generation and decode larger images H1K0 2026-06-12 01:07:30 +03:00
  • a371045b41 fix(frontend): keep auth tokens in sync across browser tabs H1K0 2026-06-12 00:13:13 +03:00
  • da867406e2 fix(frontend): let a tag be created/edited without a colour H1K0 2026-06-11 23:31:59 +03:00
  • 21c7aa31ea fix(backend): store an empty tag colour as NULL H1K0 2026-06-11 23:31:59 +03:00
  • 4def59c86d feat(frontend): log a pool view when the pool page opens H1K0 2026-06-11 23:20:46 +03:00
  • d345839634 docs(project): document the pool view endpoint H1K0 2026-06-11 23:20:46 +03:00
  • 7d0ea4e388 feat(backend): record pool views to activity.pool_views H1K0 2026-06-11 23:20:46 +03:00
  • 38572b1c80 feat(frontend): add "add to pool" button on the file viewer H1K0 2026-06-11 21:58:01 +03:00
  • fedfa8df3a feat(frontend): tie-break category-name tag sort by tag name H1K0 2026-06-11 21:47:55 +03:00
  • cb1588ecc0 feat(backend): sort tags by category then tag name H1K0 2026-06-11 21:47:42 +03:00
  • 73ae8a046f feat(backend): record tag usage in filters to activity.tag_uses H1K0 2026-06-11 21:40:13 +03:00
  • 6a3bb9ff51 feat(frontend): stage Escape in the tag editors to clear, then exit H1K0 2026-06-11 21:27:06 +03:00
  • ca3bca59e7 docs(project): document the import progress NDJSON stream H1K0 2026-06-11 21:15:50 +03:00
  • c8bd8512ce feat(frontend): show import progress bar and per-file status H1K0 2026-06-11 21:15:50 +03:00
  • 129cc59793 feat(backend): stream folder-import progress as NDJSON H1K0 2026-06-11 21:15:40 +03:00
  • 5571dfa46d chore(project): install exiftool in the runtime image H1K0 2026-06-11 20:55:33 +03:00
  • 52c62b5c8d feat(backend): extract rich numeric metadata via exiftool H1K0 2026-06-11 20:55:23 +03:00
  • 0b0f797fae chore(project): name the app container tfm H1K0 2026-06-11 20:34:30 +03:00
  • 48ea1fe720 fix(frontend): make the grid actually follow keyboard focus H1K0 2026-06-11 20:19:08 +03:00
  • af9f4c77db fix(frontend): let Escape leave the tag search field in the viewer H1K0 2026-06-11 18:47:34 +03:00
  • 76dcb8721a fix(backend): serve original content with byte-range support H1K0 2026-06-11 18:40:49 +03:00
  • cefa33c00d feat(frontend): focus the returned file when leaving the viewer H1K0 2026-06-11 18:33:30 +03:00
  • 6e5c4dc623 feat(frontend): admin "Import from server" panel in Settings H1K0 2026-06-11 18:23:22 +03:00
  • 1b04d67e20 feat(backend): drain import folder and keep mtime on server-side import H1K0 2026-06-11 18:19:59 +03:00
  • bce79867e4 fix(frontend): scroll the grid to follow the keyboard focus H1K0 2026-06-11 18:01:35 +03:00
  • e39cda9ec4 feat(frontend): keyboard range-select with Shift+Space / Shift+x H1K0 2026-06-11 17:59:16 +03:00
  • 94d100675e feat(frontend): make keyboard shortcuts layout-independent H1K0 2026-06-11 17:55:39 +03:00
  • 19ec96c544 feat(frontend): focus the page search box with / on the list sections H1K0 2026-06-11 17:43:24 +03:00
  • 49e68cc263 feat(frontend): keyboard nav for the bulk tag editor H1K0 2026-06-11 17:42:02 +03:00
  • 3a0dbc9ba7 feat(frontend): keyboard nav for the viewer, tag editor and filter H1K0 2026-06-11 17:40:03 +03:00
  • 9a20cc1c84 feat(frontend): keyboard roving-focus and bulk-action keys on the file grid H1K0 2026-06-11 17:30:13 +03:00
  • 49de9fe42b feat(frontend): global keyboard navigation and shortcuts help overlay H1K0 2026-06-11 17:24:39 +03:00
  • 2b39af8c1c feat(frontend): cache Tags/Categories/Pools lists across section switches H1K0 2026-06-11 17:20:48 +03:00
  • 05af819b3e feat(frontend): cap the Files grid at ~4 viewports with edge windowing H1K0 2026-06-11 17:03:43 +03:00
  • e93240ff79 feat(frontend): restore the Files grid and scroll on return via section cache H1K0 2026-06-11 16:56:33 +03:00
  • 370dfd95bc feat(frontend): remember each section's last list URL in the navbar H1K0 2026-06-11 16:53:00 +03:00