You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,7 +52,7 @@ npm run dev
52
52
53
53
The first build takes a few minutes (Tauri compiles the WebView bindings). Subsequent runs are fast.
54
54
55
-
`prepare-sidecar` is a no-op if the binary is already present. The downloaded version is pinned in `src-tauri/binaries/.kei-version` so cross-platform builds always use the same release.
55
+
`prepare-sidecar` is a no-op if the binary is already present and newer than the pin file. The downloaded version is pinned in `src-tauri/binaries/.kei-version` so cross-platform builds always use the same release.
56
56
57
57
To update the bundled kei to the latest release:
58
58
@@ -171,21 +171,23 @@ domain = "com" # or "cn" for China
171
171
172
172
[download]
173
173
directory = "~/Photos/iCloud"
174
-
threads_num = 10
174
+
threads = 10
175
175
folder_structure = "%Y/%m/%d"# unfiled photos
176
176
folder_structure_albums = "{album}/%Y/%m"# user albums
177
177
folder_structure_smart_folders = "{smart-folder}"# Apple smart folders
Copy file name to clipboardExpand all lines: agents/agents.md
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Under the hood, it is a Tauri v2 cross-platform desktop GUI that wraps the [kei]
10
10
11
11
**Supported platforms:** macOS (primary), Windows 10+, Linux.
12
12
13
-
**Rule:** never modify kei's source or vendor it. All behaviour changes go through the GUI layer or by passing CLI flags to the kei binary.
13
+
**Rule:** never modify kei's source or vendor it. Durable sync behaviour goes through kei's TOML config; only pass CLI flags that are still listed by the bundled `kei sync --help`.
14
14
15
15
## Tech stack
16
16
@@ -84,7 +84,7 @@ There is exactly one `AppState` instance, registered with `.manage()` at startup
84
84
85
85
### AppSettings vs KeiConfig
86
86
87
-
`KeiConfig` maps directly to kei's `config.toml` and is read/written by the kei binary itself. `AppSettings` is a separate file (`~/.config/photoharbor/settings.toml`) that holds UI preferences such as `use_system_kei`, `all_albums`, and legacy folder-template fallbacks. Kei v0.13 stores unfiled, album, and smart-folder templates as `[download].folder_structure`, `[download].folder_structure_albums`, and `[download].folder_structure_smart_folders`; sync launch also passes those values with the matching v0.13 CLI flags.
87
+
`KeiConfig` maps directly to kei's `config.toml` and is read/written by the kei binary itself. `AppSettings` is a separate file (`~/.config/photoharbor/settings.toml`) that holds UI preferences such as `use_system_kei`, `all_albums`, and legacy folder-template fallbacks. kei v0.20 keeps durable sync settings in TOML: folder templates live under `[download]`, album/smart-folder/library selectors live under `[filters]`, media filtering is `[filters].media`, retry limits are `[download.retry].per_asset`, and EXIF metadata toggles live under `[metadata]`. `start_sync` should only pass one-run flags that still exist in `kei sync --help` such as `--friendly`, `--recent`, `--dry-run`, or `--retry-failed`.
88
88
89
89
### Tauri events emitted from Rust → JS
90
90
@@ -118,7 +118,7 @@ The kei binary is bundled using Tauri's `externalBin` mechanism. Before building
118
118
npm run prepare-sidecar
119
119
```
120
120
121
-
This downloads the pinned kei release (from `src-tauri/binaries/.kei-version`) to `src-tauri/binaries/kei-<target-triple>[.exe]`. The binaries themselves are gitignored; the version file is committed. Pass `--force` to fetch latest and update the pin.
121
+
This downloads the pinned kei release (from `src-tauri/binaries/.kei-version`) to `src-tauri/binaries/kei-<target-triple>[.exe]`. The binaries themselves are gitignored; the version file is committed. Pass `--force` to fetch latest and update the pin. If the pin file is newer than an existing sidecar, the script re-downloads that sidecar.
122
122
123
123
To update kei: `node scripts/prepare-sidecar.js --force`, then commit `.kei-version`.
124
124
@@ -186,8 +186,9 @@ The GUI never writes to the database.
0 commit comments