Brandon Thomas and Claude Opus 5.5
bc4799ca42
Merge origin/main into land-115 (PR #115 )
...
Resolve SourceRef::load_source against #104 's offline fallback: a File
source keeps the decoder's SourceInfo; a smart-preview fallback has none.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 19:25:37 -04:00
Brandon Thomas and Claude Opus 5.5
586479a309
M16: drop fork-only Japanese packaging from PR #114
...
Remove scripts/package-japanese-macos.py, the japanese-local feature and its
config/library/startup overrides, the settings.language migration, and the
local-build notes in the docs. Upstream library and config defaults (incl.
library::default_dir, which already honours LIGHTCRAFT_LIBRARY) are unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 19:11:34 -04:00
Brandon Thomas
87f275b58e
Merge pull request #132 from storytold/fix/issue-104-ui-fs-v2
...
Issue #104 : keep file-system calls off the UI thread
2026-10-05 19:08:15 -04:00
Brandon Thomas
894759e6d8
Merge main into fix/issue-104-ui-fs-v2
...
# Conflicts:
# docs/parity.md
# docs/whats-new.md
2026-10-05 19:00:37 -04:00
Brandon Thomas
1952f7c960
Merge pull request #131 from storytold/fix/issue-107-web-safety
...
Issue #107 : Web build: data-safety fixes for libraries kept in the browser
2026-10-05 18:59:14 -04:00
Brandon Thomas
7bbdbc03ef
Merge main into fix/issue-107-web-safety
...
# Conflicts:
# apps/lightcraft-web/src/web.rs
# docs/parity.md
# docs/whats-new.md
2026-10-05 18:58:53 -04:00
Brandon Thomas
0f34a65a8c
Merge pull request #130 from storytold/fix/issue-97-folder-undo
...
Issue #97 : Rename Folder / Move Folder are undo steps
2026-10-05 18:58:38 -04:00
Brandon Thomas
6c066b66f2
Merge main into fix/issue-97-folder-undo
...
# Conflicts:
# crates/engine/src/lib.rs
# docs/parity.md
# docs/whats-new.md
2026-10-05 18:58:13 -04:00
Brandon Thomas and Claude Opus 5.5
7b59081d22
Issue #104 : keep file-system calls off the UI thread
...
Re-applies fix/issue-104-ui-fs on top of the data-safety fixes (integrate/safety):
- availability cache: originals and smart previews are checked on a worker thread; the UI
answers from the cache (grid, Info panel, photo menu, Missing Photos view)
- import split into ImportJob::prepare (worker) + commit_prepared, with Cancel; Copy keeps
#96 's verified copies
- Find Missing Photos: find_candidates (snapshot, no I/O) + plan_find_missing (all file I/O,
on a worker, never the session) with #105 's matching rules unchanged (name+size+hash;
renamed by size+hash; single name+size; ambiguous look-alikes skipped and reported; files
already in use excluded). The plan is applied with library.findMissing {found, missing,
ambiguous}, re-checked against the catalog then: photos relinked meanwhile are left alone,
files now in use are not taken. library.findMissing {folder} still runs synchronously.
- Build / Discard Smart Previews with background: true runs on a worker with progress and
Stop, keeping #106 's atomic writes, is_valid checks and `repaired` count (also in
library.previewProgress); the render worker's smart-preview fallback uses is_valid
- Rename preview planned on a worker (plan_rename_photos) on the same planning core as
Session::plan_rename_with (MoveFs, case-only respelling by file identity, #95 )
- Local folder listing via fs_cached; tests_offline (slow injected probe, frames < 300 ms)
Tests: worker-planned Find Missing equals the synchronous command for a renamed + ambiguous
library; a plan is re-checked when applied; background smart previews repair a damaged proxy.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 18:58:04 -04:00
Brandon Thomas
e11f77d9ca
Merge pull request #129 from storytold/fix/issue-94-control-close
...
Issue #94 : Control: close the connection on malformed input
2026-10-05 18:57:59 -04:00
Brandon Thomas
f383d1e736
Merge main into fix/issue-94-control-close
...
# Conflicts:
# docs/whats-new.md
2026-10-05 18:57:50 -04:00
Brandon Thomas
edf05789ed
Merge pull request #128 from storytold/fix/issue-103-settings-files
...
Issue #103 : Settings files: keep damaged ones, never overwrite unread ones, write ui.json atomically, confirm quit with unsaved changes
2026-10-05 18:57:30 -04:00
Brandon Thomas
bccccfb92a
Merge main into fix/issue-103-settings-files
...
# Conflicts:
# crates/engine/src/library.rs
# docs/whats-new.md
2026-10-05 18:56:50 -04:00
Brandon Thomas
4939d9b994
Merge pull request #127 from storytold/fix/issue-100-open-failure
...
Issue #100 : Ask what to do when the library can't be opened, never a silent demo session
2026-10-05 18:56:35 -04:00
Brandon Thomas
e0ab41ede0
Merge main into fix/issue-100-open-failure
2026-10-05 18:56:00 -04:00
Brandon Thomas
8690b51fcf
Merge pull request #126 from storytold/fix/issue-99-library-lock
...
Issue #99 : Library: exclusive lock so two processes can't open one library
2026-10-05 18:55:44 -04:00
Brandon Thomas
e1d3b56bb6
Merge main into fix/issue-99-library-lock
...
# Conflicts:
# crates/catalog/src/lib.rs
2026-10-05 18:54:56 -04:00
Brandon Thomas
6100237cdb
Merge pull request #125 from storytold/fix/issue-102-format-version
...
Issue #102 : Catalog format version 2; refuse newer libraries untouched
2026-10-05 18:54:41 -04:00
Brandon Thomas
4579599745
Merge main into fix/issue-102-format-version
2026-10-05 18:54:03 -04:00
Brandon Thomas
8506fecf5f
Merge pull request #124 from storytold/fix/issue-101-torn-append
...
Issue #101 : catalog.log: cut a partial append back before retrying
2026-10-05 18:53:49 -04:00
Brandon Thomas
0f49ebf8f0
Merge main into fix/issue-101-torn-append
...
# Conflicts:
# docs/whats-new.md
2026-10-05 18:52:48 -04:00
Brandon Thomas
ab86862011
Merge pull request #123 from storytold/fix/issue-92-xmp-merge
...
Issue #92 : XMP: merge into an existing sidecar instead of replacing it
2026-10-05 18:52:25 -04:00
Brandon Thomas
577330a08b
Merge main into fix/issue-92-xmp-merge
...
# Conflicts:
# crates/engine/src/sidecar.rs
# docs/whats-new.md
2026-10-05 18:50:42 -04:00
Brandon Thomas
30697cfc26
Merge pull request #122 from storytold/fix/issue-92-rename-shared-sidecar
...
Issue #92 : Rename Photos copies a stem sidecar another file still shares
2026-10-05 18:50:26 -04:00
Brandon Thomas
ddbf139e5e
Merge main into fix/issue-92-rename-shared-sidecar
2026-10-05 18:49:29 -04:00
Brandon Thomas
ee77490dd2
Merge pull request #121 from storytold/fix/issue-105-rename-rollback
...
Issue #105 : Rename Photos reports failed rollbacks; Find Missing matches by content
2026-10-05 18:49:15 -04:00
Brandon Thomas
f31a55c8a7
Merge main into fix/issue-105-rename-rollback
...
# Conflicts:
# docs/parity.md
2026-10-05 18:48:27 -04:00
Brandon Thomas
7218b990f5
Merge pull request #120 from storytold/fix/issue-95-case-only-rename
...
Issue #95 : Rename Photos: case-only renames never overwrite another file
2026-10-05 18:48:06 -04:00
Brandon Thomas
d16d9aadeb
Merge main into fix/issue-95-case-only-rename
2026-10-05 18:47:18 -04:00
Brandon Thomas
1caa04acbc
Merge pull request #119 from storytold/fix/issue-98-thumb-cache-own-files
...
Issue #98 : thumbnail cache only lists, counts and deletes its own files
2026-10-05 18:47:03 -04:00
Brandon Thomas
bef2060b24
Merge main into fix/issue-98-thumb-cache-own-files
2026-10-05 18:46:59 -04:00
Brandon Thomas
40303b999c
Merge pull request #118 from storytold/fix/issue-96-verified-copy-import
...
Issue #96 : Import > Copy verifies each copy like Move
2026-10-05 18:46:42 -04:00
Brandon Thomas
ce5488ad99
Merge main into fix/issue-96-verified-copy-import
...
# Conflicts:
# docs/whats-new.md
2026-10-05 18:46:20 -04:00
Brandon Thomas
f6bc1ae5ae
Merge pull request #117 from storytold/fix/issue-106-dng-smart-previews
...
Issue #106 : Convert to DNG and smart previews: verified, atomic writes
2026-10-05 18:46:06 -04:00
Brandon Thomas
6c8a65c337
Merge main into fix/issue-106-dng-smart-previews
2026-10-05 18:45:48 -04:00
Brandon Thomas
fe386f4f15
Merge pull request #116 from storytold/fix/issue-93-export-overwrite
...
Issue #93 : Export: never overwrite an original; atomic writes
2026-10-05 18:45:31 -04:00
Brandon Thomas
a6f421aafb
Merge main into fix/issue-93-export-overwrite
2026-10-05 18:44:02 -04:00
Brandon Thomas
50cd8dc6dc
Merge branch 'fix/issue-97-folder-undo' into integrate/safety
...
# Conflicts:
# crates/engine/src/lib.rs
# docs/parity.md
# docs/whats-new.md
2026-10-05 18:38:55 -04:00
Brandon Thomas
cc8b3eb3bb
Merge branch 'fix/issue-94-control-close' into integrate/safety
...
# Conflicts:
# docs/whats-new.md
2026-10-05 18:38:13 -04:00
Brandon Thomas
a6b402981b
Merge branch 'fix/issue-103-settings-files' into integrate/safety
...
# Conflicts:
# crates/engine/src/library.rs
# docs/whats-new.md
2026-10-05 18:26:38 -04:00
Brandon Thomas
4deb5eff04
Merge branch 'fix/issue-100-open-failure' into integrate/safety
2026-10-05 18:26:38 -04:00
Brandon Thomas
6e2408ff7d
Merge branch 'fix/issue-99-library-lock' into integrate/safety
...
# Conflicts:
# crates/catalog/src/lib.rs
2026-10-05 18:26:38 -04:00
Brandon Thomas
66be31e3d8
Merge branch 'fix/issue-102-format-version' into integrate/safety
2026-10-05 18:26:19 -04:00
Brandon Thomas
332f37a5c7
Merge branch 'fix/issue-101-torn-append' into integrate/safety
...
# Conflicts:
# docs/whats-new.md
2026-10-05 18:26:19 -04:00
Brandon Thomas
aa1af6d5e9
Merge branch 'fix/issue-92-xmp-merge' into integrate/safety
...
# Conflicts:
# crates/engine/src/sidecar.rs
# docs/whats-new.md
2026-10-05 18:26:19 -04:00
Brandon Thomas
963912b231
Merge branch 'fix/issue-92-rename-shared-sidecar' into integrate/safety
2026-10-05 18:25:06 -04:00
Brandon Thomas
4174ce8c57
Merge branch 'fix/issue-105-rename-rollback' into integrate/safety
...
# Conflicts:
# docs/parity.md
2026-10-05 18:24:59 -04:00
Brandon Thomas
f28e1c362e
Merge branch 'fix/issue-95-case-only-rename' into integrate/safety
2026-10-05 18:24:34 -04:00
Brandon Thomas
70d800ba68
Merge branch 'fix/issue-98-thumb-cache-own-files' into integrate/safety
2026-10-05 18:24:33 -04:00
Brandon Thomas
33ef91a123
Merge branch 'fix/issue-96-verified-copy-import' into integrate/safety
...
# Conflicts:
# docs/whats-new.md
2026-10-05 18:24:33 -04:00