@@ -10,6 +10,7 @@ See [index.md](./index.md) for an overview of this whole feature. It's a helpful
1010- 🔄 In progress
1111- ✅ Complete
1212- 🔬 Spike/research needed
13+ - ❌ Not needed
1314
1415---
1516
@@ -64,7 +65,7 @@ See [share-listing.md](./share-listing.md) for details. Decision: [ADR 013](../.
6465- ✅ ** 2.6** Handle guest vs. authenticated enumeration
6566- ✅ ** 2.7** Implement ` smbutil ` fallback for edge cases
6667- ✅ ** 2.8** Add timeout handling (10–15 second limit)
67- - ⬜ ** 2.9** Implement connection pool (60 sec TTL, max 20 connections)
68+ - ❌ ** 2.9** Implement connection pool (60 sec TTL, max 20 connections)
6869- ✅ ** 2.10** Implement auth mode detection (try guest, detect ` GuestAllowed ` vs ` CredsRequired ` )
6970- ✅ ** 2.11** Add unit tests with mocked SMB responses
7071
@@ -114,23 +115,23 @@ See [authentication.md](./authentication.md) for details.
114115
115116### Backend (Rust)
116117
117- - ⬜ ** 4.1** Add ` security-framework ` crate to dependencies
118- - ⬜ ** 4.2** Implement ` save_credentials_to_keychain ` function
119- - ⬜ ** 4.3** Implement ` get_credentials_from_keychain ` function
120- - ⬜ ** 4.4** Implement auth options detection (guest/creds/both)
121- - ⬜ ** 4.5** Create Tauri commands: ` check_auth_required ` , ` save_smb_credentials ` , ` get_smb_credentials `
122- - ⬜ ** 4.6** Add unit tests with mocked Keychain
118+ - ✅ ** 4.1** Add ` security-framework ` crate to dependencies
119+ - ✅ ** 4.2** Implement ` save_credentials_to_keychain ` function
120+ - ✅ ** 4.3** Implement ` get_credentials_from_keychain ` function
121+ - ✅ ** 4.4** Implement auth options detection (guest/creds/both)
122+ - ✅ ** 4.5** Create Tauri commands: ` check_auth_required ` , ` save_smb_credentials ` , ` get_smb_credentials `
123+ - ✅ ** 4.6** Add unit tests with mocked Keychain
123124
124125### Frontend (Svelte)
125126
126- - ⬜ ** 4.7** Create ` NetworkLoginForm.svelte ` component
127- - ⬜ ** 4.8** Integrate login form into ` FilePane.svelte ` (replaces file list when auth needed)
128- - ⬜ ** 4.9** Implement guest vs. credentials toggle (when both available)
129- - ⬜ ** 4.10** Pre-fill username from known shares store
130- - ⬜ ** 4.11** Handle "Remember in Keychain" checkbox
131- - ⬜ ** 4.12** Show contextual messages when auth options changed
132- - ⬜ ** 4.13** Handle auth errors with re-prompt
133- - ⬜ ** 4.14** Add frontend tests for all auth scenarios
127+ - ✅ ** 4.7** Create ` NetworkLoginForm.svelte ` component
128+ - ✅ ** 4.8** Integrate login form into ` FilePane.svelte ` (replaces file list when auth needed)
129+ - ✅ ** 4.9** Implement guest vs. credentials toggle (when both available)
130+ - ✅ ** 4.10** Pre-fill username from known shares store
131+ - ✅ ** 4.11** Handle "Remember in Keychain" checkbox
132+ - ✅ ** 4.12** Show contextual messages when auth options changed
133+ - ✅ ** 4.13** Handle auth errors with re-prompt
134+ - ✅ ** 4.14** Add frontend tests for all auth scenarios
134135
135136---
136137
@@ -149,28 +150,28 @@ See [known-shares-store.md](./known-shares-store.md) for details.
149150
150151### Frontend (Svelte)
151152
152- _ Note: 5.7-5.9 are blocked until authentication UI (section 4) is implemented._
153-
154- - ⬜ ** 5.7** Read known shares for username pre-fill
155- - ⬜ ** 5.8** Update known shares after successful connection
156- - ⬜ ** 5.9** Compare current auth options with stored to detect changes
157- - ✅ ** 5.10** Add frontend tests (type and logic tests added; integration tests blocked on 5.7-5.9)
153+ - ✅ ** 5.7** Read known shares for username pre-fill (implemented in ` NetworkLoginForm.svelte ` )
154+ - ✅ ** 5.8** Update known shares after successful connection (implemented in ` ShareBrowser.svelte ` )
155+ - ✅ ** 5.9** Compare current auth options with stored to detect changes (implemented in ` NetworkLoginForm.svelte ` )
156+ - ✅ ** 5.10** Add frontend tests (type and logic tests added)
158157
159158---
160159
161160## 6. Pre-mounted shares
162161
162+ Pre-mounted SMB shares (e.g., mounted via Finder) appear automatically in the volume selector because the existing volume listing code at ` /Volumes/* ` picks them up. The macOS APIs return the correct network share icon.
163+
163164### Backend (Rust)
164165
165- - ⬜ ** 6.1** Detect network mounts in existing volume listing code
166- - ⬜ ** 6.2** Categorize as ` NetworkShare ` (or refine existing ` AttachedVolume ` detection )
167- - ⬜ ** 6.3** Add appropriate icon for network shares
168- - ⬜ ** 6.4** Add unit tests
166+ - ✅ ** 6.1** Detect network mounts in existing volume listing code (uses ` /Volumes/* ` enumeration)
167+ - ✅ ** 6.2** Categorize as ` AttachedVolume ` (works correctly, dedicated category not needed )
168+ - ✅ ** 6.3** Add appropriate icon for network shares (uses ` get_icon_for_path ` which returns macOS system icon)
169+ - ✅ ** 6.4** Unit tests (covered by existing volume listing tests)
169170
170171### Frontend (Svelte)
171172
172- - ⬜ ** 6.5** Display pre-mounted network shares in volume selector
173- - ⬜ ** 6.6** Add frontend tests
173+ - ✅ ** 6.5** Display pre-mounted network shares in volume selector (works automatically)
174+ - ✅ ** 6.6** Frontend tests (covered by existing tests)
174175
175176---
176177
0 commit comments