This website requires JavaScript.
ded9907bcb
perf(ui): weave @FxThread at build time, keep the agent as a safety net
main
chris.gitea and Claude Opus 5.5
2026-09-30 16:13:08 -04:00
bfa8a523f4
feat(ui): show a splash screen while the desktop interface starts
chris.gitea and Claude Opus 5.5
2026-09-30 15:49:28 -04:00
d3d942eeaf
fix(ui): stack modal dialogs instead of replacing the open one
chris.gitea and Claude Opus 5.5
2026-09-30 15:35:20 -04:00
06e396b153
feat(credits): render the credits from a single markdown file
chris.gitea and Claude Opus 5.5
2026-09-30 15:26:43 -04:00
4e450e88ae
feat(tools): add a Wikimedia Commons demo library downloader
chris.gitea and Claude Opus 5.5
2026-09-30 14:55:39 -04:00
1e2e205ef4
chore(release): 2026.9.0
chris.gitea
2026-09-30 14:26:17 -04:00
572016c5e0
build: drop unused libraries from the executable jar
chris.gitea and Claude Opus 5.5
2026-09-30 14:12:55 -04:00
ce318af010
refactor(cli): make headless the explicit default launch mode
chris.gitea and Claude Opus 5.5
2026-09-30 14:12:55 -04:00
844177638a
docs: add a README with an overview, dev options and the release command
chris.gitea and Claude Opus 5.5
2026-09-30 13:31:24 -04:00
223a49f77d
feat(release): group the release note by type, then by scope
chris.gitea and Claude Opus 5.5
2026-09-30 13:25:51 -04:00
fb0232b63c
chore(release): 2026.9.1
chris.gitea
2026-09-30 13:19:33 -04:00
f75d784bd0
feat(release): generate a release note and publish it with the release
chris.gitea and Claude Opus 5.5
2026-09-30 12:42:02 -04:00
445bf0f622
test: align geo initializer and legacy gallery tests with current behavior
chris.gitea and Claude Opus 5.5
2026-09-30 12:06:43 -04:00
18aa555037
feat(release): add a maven release profile with YYYY.M.N versions
chris.gitea and Claude Opus 5.5
2026-09-30 11:58:04 -04:00
2f9ab82b07
chore(git): ignore the nested distrib worktree
chris.gitea and Claude Opus 5.5
2026-09-30 11:23:15 -04:00
236db6796f
chore(distrib): update jdeploy title.
chris.gitea
2026-09-30 11:18:56 -04:00
cfe30dca4a
style(build): commit the pom.xml layout sortpom produces
chris.gitea and Claude Opus 5.5
2026-09-30 10:36:46 -04:00
af651f415b
fix(packaging): pass jDeploy launch arguments as separate entries
chris.gitea and Claude Opus 5.5
2026-09-30 10:33:53 -04:00
369ba04d80
feat(packaging): fit the app icon to the macOS icon grid
chris.gitea and Claude Opus 5.5
2026-09-30 10:20:52 -04:00
94145f033f
feat(gallery): read the all-metadata dialog straight from the file
chris.gitea and Claude Opus 5.5
2026-09-30 09:43:55 -04:00
6000820aaa
docs(search): explain that named people are found through synced tags
chris.gitea and Claude Opus 5.5
2026-09-30 09:32:01 -04:00
9792599948
feat(search): add a search syntax guide below the search bar
chris.gitea and Claude Opus 5.5
2026-09-30 09:29:46 -04:00
53003cc2de
fix(search): drop the quotes around a quoted free-text phrase
chris.gitea and Claude Opus 5.5
2026-09-30 09:29:46 -04:00
77eced1f6d
feat(geocoding): save only the locality as a photo's place name
chris.gitea and Claude Opus 5.5
2026-09-30 09:13:24 -04:00
5d4d94cbba
feat(gallery): smooth isolated wheel notches and widen mid-row date gap
chris.gitea and Claude Opus 5.5
2026-09-29 22:55:20 -04:00
19f299a575
feat(gallery): make the grid-mode media info overlay slightly translucent
chris.gitea and Claude Opus 5.5
2026-09-29 22:52:01 -04:00
d5b90e37e6
feat(gallery): bring the action-selection checkbox and date actions menu back
chris.gitea and Claude Sonnet 5
2026-09-28 23:27:10 -04:00
bf6b501116
refactor(gallery): let the parent layout own all inter-card spacing
chris.gitea and Claude Sonnet 5
2026-09-28 22:55:55 -04:00
b6c9ab8a3f
feat(gallery): replace ThumbnailGalleryPane with a justified grid (JustifiedGalleryPane)
chris.gitea and Claude Sonnet 5
2026-09-28 22:33:29 -04:00
bc696f9cdc
refactor(gallery): render date headers as their own fixed-height grid item
chris.gitea and Claude Sonnet 5
2026-09-24 19:42:19 -04:00
8c33ae7572
feat(gallery): add GalleryGridItem, a header/content item split
chris.gitea and Claude Sonnet 5
2026-09-24 19:22:06 -04:00
5c46168446
fix(gallery): retry the selection-highlight resync across a few pulses
chris.gitea and Claude Sonnet 5
2026-09-24 18:47:55 -04:00
e910e6c61c
fix(gallery): clear stale :hover on a reused card that changed column
chris.gitea and Claude Sonnet 5
2026-09-23 23:43:38 -04:00
788cf0fc9d
fix(gallery): force an immediate CSS pass after every selection/checked pseudo-class flip
chris.gitea and Claude Sonnet 5
2026-09-23 23:25:10 -04:00
86bd4da342
fix(gallery): resync selection highlight against the live scene, not per-cell state
chris.gitea and Claude Sonnet 5
2026-09-23 23:16:38 -04:00
55c0fd71a6
refactor(gallery): move the detail-mode info panel into PhotoDetailPane
chris.gitea and Claude Sonnet 5
2026-09-23 22:31:32 -04:00
0304b4ac41
fix(gallery): collapse detail info pane when photo detail closes
chris.gitea and Claude Sonnet 5
2026-09-23 22:19:02 -04:00
5780d66a97
feat(scheduling): let a startup task's shouldRun computation pass data to run
chris.gitea
2026-09-23 21:51:30 -04:00
1e5b97ea69
chore(gallery): remove temporary missing-thumbnail diagnostic logging
chris.gitea
2026-09-23 21:50:07 -04:00
1a0fdfc037
fix(gallery): retry thumbnail decode when the file isn't on disk yet
chris.gitea
2026-09-23 21:45:26 -04:00
c0c21085c3
debug(gallery): log the decode-pool backlog alongside the paint-state dump
chris.gitea and Claude Sonnet 5
2026-09-23 21:09:12 -04:00
fd8d3bbf6c
debug(gallery): add temporary diagnostic logging for the missing-thumbnail bug
chris.gitea and Claude Sonnet 5
2026-09-23 19:35:23 -04:00
6abf6b2d0d
fix(gallery): force layout on every realised cell after a relayout
chris.gitea and Claude Sonnet 5
2026-09-23 19:06:47 -04:00
fbb99c4574
fix(gallery): remove MediaInfoPane's actions bar top border
chris.gitea and Claude Sonnet 5
2026-09-22 23:11:54 -04:00
0a5d176a47
fix(gallery): fix hashRow's SelectableTextFlow reporting a 0 preferred width
chris.gitea and Claude Sonnet 5
2026-09-22 23:03:28 -04:00
4394d1ae3c
fix(gallery): decide MediaInfoPane's vbar from real heights, not AS_NEEDED
chris.gitea and Claude Sonnet 5
2026-09-22 22:49:47 -04:00
017bb294a4
fix(gallery): drive MediaInfoPane's rows width from the viewport directly
chris.gitea and Claude Sonnet 5
2026-09-22 22:45:54 -04:00
e8351cb2d5
fix(gallery): stop MediaInfoPane's horizontal and vertical scrollbars
chris.gitea and Claude Sonnet 5
2026-09-22 22:40:48 -04:00
15666a6063
feat(gallery): fix MediaInfoPane's phantom scrollbar, add a details dialog
chris.gitea and Claude Sonnet 5
2026-09-22 22:32:33 -04:00
bb6dcb1d38
feat(gallery): remember the last 10 locations picked in the GPS dialog
chris.gitea and Claude Sonnet 5
2026-09-22 21:47:54 -04:00
e7ba91e63a
feat(shell): remember and restore dialog sizes across restarts
chris.gitea and Claude Sonnet 5
2026-09-22 21:29:36 -04:00
f90ce1f9dc
feat(shell): add a GemFx DialogPane modal backend behind a flag
chris.gitea and Claude Sonnet 5
2026-09-22 18:43:46 -04:00
87e00b96f6
fix(shell): show dialogs as real Stages instead of AtlantaFx's ModalPane
chris.gitea and Claude Sonnet 5
2026-09-22 05:12:55 -04:00
07f8e962d0
fix(geocoding): index the local place-name prefix search
chris.gitea and Claude Sonnet 5
2026-09-20 23:43:00 -04:00
77522de02d
feat(control): add IconBadge notification-dot overlay component
chris.gitea and Claude Sonnet 5
2026-09-20 17:50:48 -04:00
9e86fc3bfb
chore(preferences): remove the one-time preference migration code
chris.gitea and Claude Sonnet 5
2026-09-20 11:42:24 -04:00
4913d297dd
fix(preferences): stop rewriting preferences.yaml on every non-window change
chris.gitea and Claude Sonnet 5
2026-09-20 10:35:24 -04:00
75a204aff3
chore(preferences): drop the dead sync group
chris.gitea and Claude Sonnet 5
2026-09-20 10:30:18 -04:00
082beec1b9
feat(preferences): move geocoding/recognition provider lists into real tables
chris.gitea and Claude Sonnet 5
2026-09-20 10:23:17 -04:00
6475397340
feat(preferences): add a run-button preference type, wire onboarding replay
chris.gitea and Claude Sonnet 5
2026-09-20 10:06:41 -04:00
960c9c860b
feat(preferences): back non-window preferences with a dedicated H2 database
chris.gitea and Claude Sonnet 5
2026-09-20 10:06:26 -04:00
1e508c309c
fix(library): rename the default-name key and fix its broken values
chris.gitea and Claude Sonnet 5
2026-09-19 18:25:49 -04:00
40319bf7dd
fix(library): default library name is now locale-aware, not the OS user name
chris.gitea and Claude Sonnet 5
2026-09-19 18:08:42 -04:00
9702de0018
feat(shell): add a help/credits icon to the preferences dialog
chris.gitea and Claude Sonnet 5
2026-09-19 14:33:00 -04:00
6c8ff66c09
fix(gallery): retry the relayout pulse for a few more frames
chris.gitea and Claude Sonnet 5
2026-09-19 13:15:18 -04:00
eb4b700b94
style(shell): nudge Tools' nested entries back toward the left edge
chris.gitea and Claude Sonnet 5
2026-09-19 13:15:11 -04:00
e27e1aacdd
fix(shell): select a newly added library folder in the tree
chris.gitea and Claude Sonnet 5
2026-09-19 13:15:04 -04:00
ed464ae73b
feat(shell): resize header/sidebar icons via shared EIconSize enum
chris.gitea and Claude Sonnet 5
2026-09-19 11:49:50 -04:00
6cb808821e
feat(shell): move toast notifications to the bottom-left corner
chris.gitea and Claude Sonnet 5
2026-09-19 11:00:51 -04:00
e52bf11f15
chore: update TODO notes, reformat MediaFaceDetectionBackfillTask imports
chris.gitea and Claude Sonnet 5
2026-09-19 10:56:37 -04:00
af31a50b4b
feat(shell): split Outils into an expandable Geo/Sync/Faces/Duplicates group
chris.gitea and Claude Sonnet 5
2026-09-19 10:53:59 -04:00
5004c17fc7
refactor(task): consolidate 6 executor pools into 3 by resource profile
chris.gitea and Claude Sonnet 5
2026-09-19 10:00:45 -04:00
09c58aba1b
fix(gallery): force a follow-up pulse after a large grid relayout
chris.gitea and Claude Sonnet 5
2026-09-18 15:03:33 -04:00
05e4b0bf92
fix(gallery): re-key checked selection map by MediaFile id, not the record
chris.gitea and Claude Sonnet 5
2026-09-18 13:21:51 -04:00
9bcee4ada7
fix(gallery): PhotoDetailPane's currentFile went stale after any metadata edit
chris.gitea and Claude Sonnet 5
2026-09-17 22:26:14 -04:00
4ae89c55e3
fix(shell): selecting a library folder now switches to Photos
chris.gitea and Claude Sonnet 5
2026-09-17 22:07:27 -04:00
8a302b2174
fix(gallery): consolidate open+orient a MediaFile's full image into one loader
chris.gitea and Claude Sonnet 5
2026-09-17 21:42:25 -04:00
7d0838732e
fix(recognition): prune an orphaned anonymous person right after discard/reassign
chris.gitea and Claude Sonnet 5
2026-09-17 21:25:19 -04:00
9a09023008
fix(maintenance): cap the region preview to 80% of the shell instead of a fixed size
chris.gitea and Claude Sonnet 5
2026-09-17 19:31:37 -04:00
36ace4d5de
feat(maintenance): region preview opens the real photo, not a thumbnail
chris.gitea and Claude Sonnet 5
2026-09-17 19:25:30 -04:00
f8b7da9975
fix(maintenance): region preview never opened, requested a tier never cached
chris.gitea and Claude Sonnet 5
2026-09-17 19:11:20 -04:00
4bd91d7d99
feat(maintenance): show file name below each region chip, double-click to preview
chris.gitea and Claude Sonnet 5
2026-09-17 19:06:50 -04:00
ae5b29ac5a
style(recognition): reformat RecognitionService, tune default detection thresholds
chris.gitea and Claude Sonnet 5
2026-09-17 19:00:31 -04:00
3d28b726c4
fix(settings): accept a dot when typing a DOUBLE preference in any locale
chris.gitea and Claude Sonnet 5
2026-09-17 18:51:52 -04:00
c9ef5e7d73
feat(recognition): add a force full re-analysis option next to the backlog scan
chris.gitea and Claude Sonnet 5
2026-09-17 18:33:11 -04:00
4b379d6001
feat(recognition): make face detection quality thresholds user-tunable
chris.gitea and Claude Sonnet 5
2026-09-16 23:08:42 -04:00
964b5a5928
refactor(scheduling): i18n every IStartupTask's own title
chris.gitea and Claude Sonnet 5
2026-09-16 22:03:59 -04:00
1a4deabf16
feat(recognition): add startup task to sweep anonymous orphan persons
chris.gitea and Claude Sonnet 5
2026-09-16 21:51:37 -04:00
7631a4560b
fix(recognition): only auto-prune anonymous persons
chris.gitea and Claude Sonnet 5
2026-09-16 21:46:51 -04:00
7739243f53
fix(recognition): prune persons left with no region after files are removed
chris.gitea and Claude Sonnet 5
2026-09-16 21:40:59 -04:00
30e9101ea7
fix(search): load tags in the gallery's in-memory media files
chris.gitea and Claude Sonnet 5
2026-09-16 21:22:42 -04:00
e861318d78
feat(shell): add search/clear icons and Escape-to-cancel to search bar
chris.gitea and Claude Sonnet 5
2026-09-16 21:17:10 -04:00
f739d762a9
fix(shell): align the search bar with the gallery below it
chris.gitea
2026-09-16 20:40:44 -04:00
4b605cdbf9
fix(shell): let the folder tree grow instead of scrolling internally
chris.gitea
2026-09-16 19:03:10 -04:00
477a6f7b27
fix(shell): make the navigation sidebar scrollable vertically
chris.gitea
2026-09-16 18:56:53 -04:00
741cf026a2
fix(shell): let a double-click expand/collapse a folder row untouched
chris.gitea
2026-09-16 18:52:21 -04:00
828ea96385
fix(gallery): use a human-readable path: query syntax
chris.gitea
2026-09-16 18:46:56 -04:00
54ee2296b7
fix(shell): equalize navigation sidebar row heights across entries
chris.gitea
2026-09-16 18:27:48 -04:00
006426a2fc
feat(gallery): filter the grid by folder from the library tree
chris.gitea
2026-09-15 23:57:14 -04:00
b13e65659e
style(shell): half-pill selection shape for the sidebar's active rows
chris.gitea
2026-09-15 23:12:57 -04:00