Repository navigation
fix(cursor-worker): masquer les jetons des remotes + un process par dépôt - #266
Merged
Merged
Conversation
…dépôt - Remotes Git : `https://user:token@host/…` → `https://***@host/…` dans le statut du worker (workdirs[].git_remote), ses logs, les sorties des scripts nœud et les logs git des déploiements. Helpers partagés redact_remote / redact_urls_in_text + tests. - Routage : le CLI exécute toute session dans le PREMIER --worker-dir, donc un agent lancé sur template-studio tournait dans Vigie. Le worker démarre maintenant un process par dépôt (même nom de machine, --data-dir propre), le premier garde la sonde /readyz. Arrêt / statut / scripts distants gèrent tous les process ; le statut expose repos_up / repo_workers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pourquoi
GET /api/v1/cursor-worker/statusrenvoyaitworkdirs[].git_remotetel que lu dans.git/config, donchttps://x-access-token:<jeton>@github.com/…en clair pour certains projets (affiché aussi dans la modale « Dépôts »).devforgepourtemplate-studioa tourné dans le checkout Vigie. Le CLI (cursor-agent2026.10.19) prend le premier--worker-dircomme espace de travail principal de toute session (« first value is the assignment identity ») ; les autres dossiers ne servent qu'au routage. Avec 11 dépôts dans un seul process, tout tombait dans le premier.Ce qui change
Masquage des remotes (
https://user:token@host/…→https://***@host/…)devforge_shared::redact::redact_remote(une URL) etredact_urls_in_text(texte libre / logs), avec tests.workdirs[].git_remotedu statut,logs_taildu worker (leader), sorties des scripts nœud (exec_on,parse_script_output), logs[git]des déploiements (crates/deploy).redact_project_json), inchangé.Un process worker par dépôt
/readyzinchangés).cursor-agent worker --name <même nom> --worker-dir <dépôt> --data-dir <state>/repos/<id>/data start(pas de--management-addrpour éviter le conflit de port ;--data-dirséparé à cause du verrou du CLI).stop/restart/ démarrage auto arrêtent et relancent tous les process ; les restes d'un démarrage précédent sont nettoyés.repo_workers(par dépôt : running/pid) etrepos_up; la modale « Statut » affiche « Dépôts actifs x / y ». Les dépôts secondaires arrêtés remontent leur dernière erreur dans les logs.start_script/stop_script/status_script($D/repos/<n>/,DF_REPOS_UP).Coût : un process
cursor-agentpar dépôt servi (11 aujourd'hui sur le leader).Tests
redact_remote_hides_userinfo,redact_urls_in_text_masks_every_url(shared)git_remote_is_redacted(vraigit init+ remote avec faux jeton)script_output_logs_never_show_url_tokensrepo_worker_args_serve_exactly_one_repo,repo_slot_ids_are_stable_and_distinctscripts_run_end_to_end_with_fake_agentétendu : 2 dépôts → 2 process, le principal ne voit que le 1er dépôt, le 2e a son--data-dir,stoptue les deux.Suivi (hors PR)
https://x-access-token:…@dans.git/config(git_sync_commandavecgit_clone_url(token)). Passer ce chemin à l'auth par en-tête (comme les jetons GitHub App) nettoierait le remote au prochain déploiement, mais retirerait aussi l'accès push/pull implicite dont les agents et opérations manuelles dépendent peut-être → à traiter séparément avec un credential helper.Ne pas merger sans validation.