feat: implémentation complete v0.1.0 — daemon de sync clipboard bidirectionnel
CI / Lint (push) Failing after 14m46s
CI / Test (push) Failing after 4m23s
CI / Build (darwin/amd64) (push) Skipped
CI / Build (linux/amd64) (push) Skipped
CI / Build (windows/amd64) (push) Skipped
CI / Build (darwin/arm64) (push) Skipped
CI / Build (linux/arm64) (push) Skipped
CI / Build (windows/arm64) (push) Skipped
CI / Release (push) Skipped
CI / Lint (push) Failing after 14m46s
CI / Test (push) Failing after 4m23s
CI / Build (darwin/amd64) (push) Skipped
CI / Build (linux/amd64) (push) Skipped
CI / Build (windows/amd64) (push) Skipped
CI / Build (darwin/arm64) (push) Skipped
CI / Build (linux/arm64) (push) Skipped
CI / Build (windows/arm64) (push) Skipped
CI / Release (push) Skipped
This commit is contained in:
+28
-45
@@ -1,53 +1,36 @@
|
||||
# clip-sync — Roadmap
|
||||
# ROADMAP.md — clip-sync
|
||||
|
||||
## v1.0 — Le strict nécessaire (main)
|
||||
## v0.1.0 ✅ MVP — Sync texte bidirectionnel (actuelle)
|
||||
|
||||
- [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`)
|
||||
- [x] Synchronisation texte entre pairs LAN
|
||||
- [x] Anti-boucle (hash + timestamp + origine)
|
||||
- [x] Configuration TOML + env override
|
||||
- [x] Linux (X11 + Wayland), Windows, macOS
|
||||
- [x] Tests unitaires + intégration
|
||||
- [x] Build cross-plateforme
|
||||
- [x] Service systemd --user
|
||||
|
||||
## v1.1 — Robustesse
|
||||
## v0.2.0 🔒 Sécurité
|
||||
|
||||
- [ ] 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
|
||||
- [ ] Chiffrement TLS entre pairs (certificats auto-signés ou clé partagée)
|
||||
- [ ] Authentification par clé partagée (header `Authorization: Bearer <key>`)
|
||||
- [ ] Validation de l'origine (rejet des pairs inconnus)
|
||||
- [ ] Option `--generate-key` pour générer une clé partagée
|
||||
- [ ] Config : section `[security]` dans peers.toml
|
||||
|
||||
## v2.0 — Fonctionnalités
|
||||
## v0.3.0 📎 Contenu enrichi
|
||||
|
||||
- [ ] 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)
|
||||
- [ ] Support images (JPEG/PNG) — payload Base64
|
||||
- [ ] Support fichiers (chemin + contenu Base64, taille max configurable)
|
||||
- [ ] Historique du presse-papiers local (derniers N éléments)
|
||||
- [ ] Commande `clip-sync history` pour afficher l'historique
|
||||
- [ ] Option `--one-shot` : envoi unique sans daemon
|
||||
|
||||
## v3.0 — Intégrations
|
||||
## v1.0.0 🌐 Stable
|
||||
|
||||
- [ ] 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 |
|
||||
- [ ] Découverte automatique des pairs via mDNS (optionnel, activable)
|
||||
- [ ] Interface web locale de monitoring (`localhost:9137/` : pairs connectés, stats)
|
||||
- [ ] Notification desktop (DBus/Linux, toast/Windows, Notification Center/macOS)
|
||||
- [ ] Tests de performance et benchmark
|
||||
- [ ] Documentation utilisateur finale (site statique ou wiki)
|
||||
- [ ] Signature GPG des releases
|
||||
|
||||
Reference in New Issue
Block a user