Skip to content

Commit daee97b

Browse files
committed
Drive indexing: first WIP version
1 parent 0994e05 commit daee97b

48 files changed

Lines changed: 6808 additions & 64 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 124 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/desktop/coverage-allowlist.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
"settings/sections/McpServerSection.svelte": { "reason": "UI section, depends on Tauri APIs" },
9494
"settings/sections/NetworkSection.svelte": { "reason": "UI section, simple rendering" },
9595
"settings/sections/ThemesSection.svelte": { "reason": "UI section, simple rendering" },
96+
"settings/sections/DriveIndexingSection.svelte": { "reason": "UI section, depends on Tauri invoke" },
9697
"settings/sections/UpdatesSection.svelte": { "reason": "UI section, simple rendering" },
9798
"settings/settings-store.ts": { "reason": "Depends on Tauri store APIs" },
9899
"settings/settings-window.ts": { "reason": "Depends on Tauri window APIs" },
@@ -143,6 +144,18 @@
143144
},
144145
"tauri-commands/rename.ts": {
145146
"reason": "Tauri command wrappers, tested via integration"
147+
},
148+
"indexing/ScanStatusOverlay.svelte": {
149+
"reason": "UI overlay component, depends on Tauri event listeners"
150+
},
151+
"indexing/index-events.ts": {
152+
"reason": "Thin wrapper over Tauri listen API"
153+
},
154+
"indexing/index-priority.ts": {
155+
"reason": "Thin wrapper over Tauri invoke API"
156+
},
157+
"indexing/index-state.svelte.ts": {
158+
"reason": "Reactive Svelte state, depends on Tauri event listeners"
146159
}
147160
}
148161
}

apps/desktop/knip.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
{
22
"$schema": "https://unpkg.com/knip@5/schema.json",
33
"ignoreBinaries": ["only-allow"],
4-
"ignore": ["src/routes/+layout.ts", "src/lib/tauri-commands/**"],
4+
"ignore": [
5+
"src/routes/+layout.ts",
6+
"src/lib/tauri-commands/**",
7+
"src/lib/indexing/index-events.ts",
8+
"src/lib/indexing/index-priority.ts"
9+
],
510
"ignoreDependencies": [
611
"@tauri-apps/cli",
712
"@testing-library/svelte",

apps/desktop/src-tauri/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ tauri-plugin-updater = "2"
6464
tauri-plugin-process = "2"
6565
memchr = "2"
6666
walkdir = "2"
67+
# Drive indexing: parallel directory walker, SQLite store, and macOS FSEvents watcher
68+
jwalk = "0.8"
69+
rusqlite = { version = "0.32", features = ["bundled"] }
6770
# For chunked copy metadata preservation (network filesystems)
6871
xattr = "1"
6972
filetime = "0.2"
@@ -100,11 +103,14 @@ mtp-rs = "0.1.0"
100103
# USB hotplug detection for MTP device watcher
101104
nusb = "0.2.2"
102105
bytes = "1"
106+
# Drive indexing: macOS FSEvents watcher with event IDs and sinceWhen replay
107+
cmdr-fsevent-stream = { git = "https://github.com/vdavid/cmdr-fsevent-stream" }
103108

104109
[dev-dependencies]
105110
criterion = { version = "0.8.1", features = ["html_reports"] }
106111
# For test-only cryptographic key generation (compatible with ed25519-dalek's rand_core 0.6)
107112
rand_core = { version = "0.6", features = ["getrandom"] }
113+
tempfile = "3"
108114

109115
[[bench]]
110116
name = "icon_benchmarks"

0 commit comments

Comments
 (0)