gardesk/garclip / 256b832

Browse files

docs: add progress tracking and phase TODO

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
256b8320372ca915bffcc3b79b4885a43e9a3cc8
Parents
829a4b5
Tree
04138f5

1 changed file

StatusFile+-
M PLAN.md 47 5
PLAN.mdmodified
@@ -647,13 +647,55 @@ fn handle_selection_request(&self, event: SelectionRequestEvent, data: &str) ->
647647
 
648648
 ---
649649
 
650
-## Open Questions
650
+## Progress & TODO
651
+
652
+### Phase 1: Foundation (COMPLETE)
653
+- [x] Project scaffolding (workspace, Cargo.toml)
654
+- [x] Error types
655
+- [x] X11 atom interning
656
+- [x] Selection ownership management
657
+- [x] Data transfer (request/response)
658
+- [x] Clipboard entry types (text + images)
659
+- [x] History storage with persistence
660
+- [x] Clipboard manager
661
+- [x] Configuration (TOML)
662
+- [x] IPC protocol (JSON over Unix socket)
663
+- [x] IPC server/client
664
+- [x] Daemon state machine
665
+- [x] CLI entry point
666
+- [x] garclipctl control tool
667
+
668
+### Phase 2: Daemon Command Handler (IN PROGRESS)
669
+- [ ] Refactor client handler to use channels for daemon state access
670
+- [ ] Proper async message passing between IPC and daemon loop
671
+- [ ] Handle all commands through the daemon (currently stubbed)
672
+
673
+### Phase 3: Selection Monitoring
674
+- [ ] XFixes extension for event-driven clipboard monitoring
675
+- [ ] Claim ownership when original owner releases
676
+- [ ] Reduce polling overhead
677
+
678
+### Phase 4: Filtering
679
+- [ ] Regex patterns to ignore content
680
+- [ ] Window class filtering (ignore password managers, etc.)
681
+- [ ] Configurable min/max content length enforcement
682
+
683
+### Phase 5: Signals & Lifecycle
684
+- [ ] SIGHUP for config reload
685
+- [ ] Graceful SIGTERM handling
686
+- [ ] PID file for single-instance enforcement
687
+
688
+### Phase 6: Integration
689
+- [ ] Query gar IPC for focused window class (source tracking)
690
+- [ ] Optional garlaunch integration for history picker UI
691
+- [ ] Systemd user service file
692
+
693
+---
651694
 
652
-1. **Image support** - Should we support images in Phase 1, or text-only first?
653
-   - Recommendation: Text-only first, images later
695
+## Open Questions
654696
 
655
-2. **Encryption** - Should sensitive clipboard data be encrypted at rest?
697
+1. **Encryption** - Should sensitive clipboard data be encrypted at rest?
656698
    - Recommendation: Optional, not in initial implementation
657699
 
658
-3. **Popup UI** - Should garclip have its own history picker UI, or rely on garlaunch?
700
+2. **Popup UI** - Should garclip have its own history picker UI, or rely on garlaunch?
659701
    - Recommendation: Defer UI to later, CLI-first approach