- 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
54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
# 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 |
|