feat: découverte automatique des dépôts git (scan + montrer/cacher)
Scan borné du système de fichiers (racines configurables, défaut home ; profondeur/nombre/timeout bornés ; symlinks non suivis ; exclusions node_modules/dotdirs) qui auto-enregistre les nouveaux dépôts. Insertion atomique ON CONFLICT DO NOTHING (idempotence + anti-résurrection d'un dépôt masqué + anti-course). Scan au démarrage + bouton manuel + re-scan périodique (RepoDiscoveryService, démarré dans runDaemon). Colonne repos.hidden : masquer = conservé en DB mais exclu du dashboard et jamais ré-ajouté ; supprimer = re-découvrable. UI : bouton œil par dépôt + bascule afficher-les-masqués sur le dashboard, section Découverte dans les Réglages (racines + intervalle, allow-list stricte). Robustesse : listAllWorktrees tolère l'échec git par dépôt ; flag --no-discover (escape hatch + hermétisme des acceptations).
This commit is contained in:
@@ -124,8 +124,13 @@ const fr: typeof en = {
|
||||
remove: 'Retirer',
|
||||
pathLabel: 'Chemin du dépôt',
|
||||
pathPlaceholder: '/chemin/absolu/du/repo',
|
||||
empty: 'Aucun dépôt enregistré — ajoutez-en un ci-dessus.',
|
||||
empty: 'Aucun dépôt enregistré — ajoutez-en un ci-dessus, ou lancez un scan.',
|
||||
invalid: 'indisponible',
|
||||
scan: 'Scanner',
|
||||
scanResult: 'Aucun nouveau dépôt trouvé | 1 nouveau dépôt ajouté | {n} nouveaux dépôts ajoutés',
|
||||
hide: 'Masquer',
|
||||
show: 'Afficher',
|
||||
showHidden: 'Afficher les masqués ({n})',
|
||||
},
|
||||
worktrees: {
|
||||
new: 'Nouveau worktree',
|
||||
@@ -339,6 +344,15 @@ const fr: typeof en = {
|
||||
giteaUrlHint: 'Ajoute une icône de raccourci dans la navigation. Laissez vide pour la masquer.',
|
||||
save: 'Enregistrer',
|
||||
saved: 'Enregistré',
|
||||
// Découverte des dépôts
|
||||
discovery: 'Découverte des dépôts',
|
||||
discoveryHint: 'Arboretum scanne ces dossiers à la recherche de dépôts git et les enregistre automatiquement. Les dépôts masqués sont conservés et jamais ré-ajoutés.',
|
||||
scanRoots: 'Dossiers à scanner',
|
||||
scanRootsEmpty: 'Aucun dossier configuré — votre dossier personnel est utilisé par défaut.',
|
||||
addRoot: 'Ajouter un dossier',
|
||||
removeRoot: 'Retirer',
|
||||
scanInterval: 'Intervalle de re-scan (minutes)',
|
||||
scanIntervalHint: '0 désactive le scan périodique. Les changements prennent effet au prochain redémarrage du daemon.',
|
||||
// Serveur (lecture seule)
|
||||
server: 'Serveur',
|
||||
serverHint: 'Définis au démarrage via des flags CLI — les modifier nécessite de redémarrer le daemon.',
|
||||
|
||||
Reference in New Issue
Block a user