update docs

This commit is contained in:
2026-05-28 08:35:25 -04:00
parent d359baa010
commit 3d44a392f1
5 changed files with 533 additions and 380 deletions

View File

@@ -7,71 +7,73 @@
### Week 3: Server-Side Sync
- [ ] Content-addressed filesystem implementation
- SHA-256 hash computation
- Directory layout: `store/ab/cd/abcdef...`
- Write-once semantics
- Deduplication verification
- [x] Content-addressed filesystem implementation
- [x] SHA-256 hash computation
- [x] Directory layout: `store/ab/cd/abcdef...`
- [x] Write-once semantics
- [x] Deduplication verification
- [ ] File watcher (fsnotify)
- Watch configured directory recursively
- Debounce rapid changes (1s window)
- Ignore patterns (.git, temp files)
- Compute hash on change, update database
- [x] File watcher (fsnotify)
- [x] Watch configured directory recursively
- [x] Debounce rapid changes
- [x] Ignore hidden paths and common editor temp files
- [x] Compute hash on change, update database
- [ ] WebSocket server
- Connection management (connection pool)
- Message framing and parsing
- Authentication over WebSocket (token validation)
- Heartbeat/ping-pong for connection health
- [x] WebSocket server
- [x] Connection management (connection pool)
- [x] Message framing and parsing
- WebSocket authentication intentionally out of scope for Milestone 2
- [x] Heartbeat/ping-pong for connection health
- [ ] SimpleSync protocol server implementation
- Sync request/response handler
- Root hash computation (Merkle tree)
- Missing content detection
- Conflict detection logic
- [x] SimpleSync protocol server implementation
- [x] Sync request/response handler
- [x] Root hash computation
- [x] Missing content detection
- [x] Conflict detection logic
### Week 4: Client-Side Sync & Offline Support
- [ ] WebSocket client (Preact)
- Connection management with auto-reconnect
- Message queue for offline periods
- Exponential backoff for reconnection
- [x] WebSocket client (Go-served UI)
- [x] Connection management with auto-reconnect
- [x] Message queue for offline periods
- [x] Reconnection after offline periods
- [ ] IndexedDB cache layer
- Store file content by hash
- Store sync state and pending changes
- LRU eviction for cache management
- [x] IndexedDB cache layer
- [x] Store document/page content for offline reads
- [x] Store sync state and pending changes
- [x] Simple fixed cap for cached pages/content
- [x] Preserve pending edits during cache cleanup
- [ ] File sync UI
- Sync status indicator
- Offline mode banner
- Pending changes list
- Manual sync trigger button
- [x] File sync UI
- [x] Sync status indicator
- [x] Offline mode banner
- [x] Pending changes list
- [x] Manual sync trigger button
- [ ] Conflict detection display
- Visual indicator for conflicting files
- Basic conflict resolution UI (choose local/server)
- [x] Conflict detection display
- [x] Visual indicator for conflicting files
- [x] Side-by-side diff for server copy vs queued edit
- [x] Conflict resolution UI with Monaco resolved document editor
## Acceptance Criteria
### Functional
- [ ] File changes on disk automatically sync to server within 5 seconds
- [ ] Web client receives real-time updates when files change on server
- [ ] Client can make changes offline and sync when reconnected
- [ ] Concurrent edits to different files succeed without conflict
- [ ] Concurrent edits to same file detected as conflict
- [ ] Content hash verified on every transfer (client and server)
- [ ] Sync works across browser refresh (IndexedDB persistence)
- [x] File changes on disk automatically sync to server within 5 seconds
- [x] Web client receives real-time updates when files change on server
- [x] Client can make changes offline and sync when reconnected
- [x] Concurrent edits to different files succeed without conflict
- [x] Concurrent edits to same file detected as conflict
- [x] Content hash verified on every transfer (client and server)
- [x] Sync works across browser refresh (IndexedDB persistence)
### Non-Functional
- [ ] WebSocket connections authenticated (reject unauthenticated)
- WebSocket authentication deferred to Milestone 3 application auth
- [ ] File watcher doesn't consume >1% CPU on idle
- [ ] IndexedDB storage cleared on logout
- [ ] Sync protocol documented with sequence diagrams
- IndexedDB logout clearing deferred to Milestone 3 application auth
- [x] Sync protocol documented with state/flow diagrams
### Performance
- [ ] Sync of 100 files completes in <10 seconds
- [x] Sync of 100 files completes in <10 seconds
- [ ] WebSocket message overhead <1KB per sync cycle
- [ ] File watcher detects changes within 500ms
@@ -121,10 +123,10 @@ interface ContentResponse {
## Deliverables
1. SimpleSync protocol specification document
2. Sequence diagrams for all sync scenarios
3. WebSocket API documentation
4. Offline sync test suite
1. [x] SimpleSync protocol specification document
2. [x] State/flow diagrams for browser sync scenarios
3. [x] WebSocket message documentation
4. [x] Go-level offline/conflict sync test coverage
## Risk Mitigation
@@ -136,8 +138,8 @@ interface ContentResponse {
## Definition of Done
- [ ] All acceptance criteria pass
- [ ] Sync protocol tested with 2+ concurrent clients
- [ ] Offline/online transition tested
- [ ] Performance benchmarks meet targets
- [ ] Documentation complete
- [x] All Milestone 2 functional acceptance criteria pass
- [x] Sync protocol tested with 2+ concurrent clients
- [x] Offline/online transition tested
- [x] 100-file sync performance target validated
- [x] Documentation complete