feat: clip-sync v1.0 — daemon de sync clipboard bidirectional en Go
- Daemon Go ~150 lignes, zéro dépendance hors stdlib + toml - Watch clipboard local (poll 500ms, hash-based dedup) - Serveur HTTP POST /clip pour réception des pairs - Anti-boucle d'écho (lastHash + host+TS filtering) - Cross-platform: Linux (xclip/wl-paste), macOS, Windows - Configuration TOML statique des pairs - install.sh one-liner multi-OS - ARCHITECTURE.md + ROADMAP.md + README.md
This commit is contained in:
+53
@@ -0,0 +1,53 @@
|
||||
# clip-sync — Roadmap
|
||||
|
||||
## v1.0 — Le strict nécessaire (main)
|
||||
|
||||
- [x] Watch clipboard local (poll 500ms, hash-based dedup)
|
||||
- [x] Serveur HTTP `POST /clip` pour recevoir les clips des pairs
|
||||
- [x] Anti-boucle d'écho (lastHash + host+TS filtering)
|
||||
- [x] Cross-platform clipboard: Linux (xclip/wl-paste), macOS (pbpaste), Windows (PowerShell)
|
||||
- [x] Configuration TOML statique des pairs
|
||||
- [x] `install.sh` one-liner multi-OS
|
||||
- [x] Build cross-platform (`GOOS=linux|windows|darwin`)
|
||||
|
||||
## v1.1 — Robustesse
|
||||
|
||||
- [ ] Retry HTTP avec backoff exponentiel (pair down → réessayer)
|
||||
- [ ] Health check `/health` endpoint
|
||||
- [ ] Logging structuré (timestamp, niveau, pair)
|
||||
- [ ] Timeout HTTP (5s) — éviter de bloquer si un pair est down
|
||||
- [ ] `systemd --user` unit file + `nssm` config Windows
|
||||
- [ ] GoReleaser pour publier les binaires sur les releases Gitea
|
||||
|
||||
## v2.0 — Fonctionnalités
|
||||
|
||||
- [ ] mDNS discovery automatique (alternative à la config statique)
|
||||
- [ ] `cb history` — ring buffer local des 50 derniers clips
|
||||
- [ ] `cb push <machine>` / `cb pull <machine>` — mode explicite en plus du sync auto
|
||||
- [ ] TLS entre pairs (certificats auto-signés)
|
||||
- [ ] Token d'authentification partagé
|
||||
- [ ] Filtrage par type (texte seulement, pas d'images/binaire en v1)
|
||||
- [ ] Support images (base64 dans le payload JSON, avec taille max configurable)
|
||||
|
||||
## v3.0 — Intégrations
|
||||
|
||||
- [ ] Intégration Ditto (Windows) — lecture de `Ditto.db` SQLite, push automatique
|
||||
- [ ] Bridge MQTT pour intégration domotique (Home Assistant)
|
||||
- [ ] Web UI minimale pour voir l'état des pairs
|
||||
- [ ] API WebSocket pour push temps réel (alternative au polling HTTP)
|
||||
|
||||
## Non-goals (volontairement exclus)
|
||||
|
||||
- Cloud relay / sync hors-LAN — utiliser Syncthing ou un autre outil
|
||||
- Chiffrement bout-en-bout — le LAN est le périmètre de confiance
|
||||
- Gestionnaire de presse-papier complet — Ditto, CopyQ, Ringboard existent déjà
|
||||
- App mobile — hors scope
|
||||
|
||||
## Calendrier indicatif
|
||||
|
||||
| Version | Effort | Cible |
|
||||
|---------|--------|-------|
|
||||
| v1.0 | 1 session | Août 2026 |
|
||||
| v1.1 | 1 session | Septembre 2026 |
|
||||
| v2.0 | 2-3 sessions | 2027 |
|
||||
| v3.0 | Au besoin | Quand Ditto devient prioritaire |
|
||||
Reference in New Issue
Block a user