Skip to content

fix(cursor-worker): un nom de machine Cursor par dépôt - #267

Merged
bobdivx merged 1 commit into
mainfrom
fix/cursor-worker-name-per-repo
Oct 22, 2026
Merged

bobdivx merged 1 commit into
mainfrom
fix/cursor-worker-name-per-repo

Conversation

@bobdivx

@bobdivx bobdivx commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Constat (prod 2.0.263)

Agent lancé sur le worker privé devforge avec https://github.com/bobdivx/template-studio → exécuté dans /data/devforge/applications/jeser (le process du dépôt jeser, qui est bien un des 11 dossiers servis, pas un alias).

Cause

Le CLI cursor-agent (2026.10.19-6bbf2c4) n'invente pas un workerId par process : il le mémorise par nom affiché dans sa config (workerIdsByDisplayName, sous le HOME du CLI ; --worker-id / CURSOR_AGENT_WORKER_ID ne font que le surcharger). Les 11 process partagent le HOME géré et le nom devforge → même workerId 3f3101a2-… pour tous. Cursor cible un workerId, pas un dépôt : n'importe laquelle des 11 connexions peut recevoir la session. Le remote de template-studio est propre (https://github.com/bobdivx/template-studio.git), ce n'est pas un problème de détection de dépôt.

Correctif

  • Un nom de machine par dépôt : <nom>-<dépôt> où <dépôt> = dernier segment du remote origin (sinon nom du dossier), en slug ; doublons suffixés -2, -3. Ex. devforge-template-studio, devforge-jeser, devforge-vigie.
  • Nom distinct ⇒ workerId distinct ⇒ choix explicite dans Cursor (My Machines) ou via worker=devforge-template-studio.
  • Même logique dans le script des nœuds distants (DF_NAME=).
  • Statut : repo_workers[].name, machine_names au démarrage ; modale Statut : liste « Machines Cursor » avec l'état de chaque process. Hint, message d'installation et doc mis à jour.

Tests

  • one_machine_name_per_repo (libellé depuis remote https/ssh/masqué ou dossier, unicité, suffixes)
  • repo_worker_names_read_origin_remote (vrai git init + remote avec faux jeton)
  • e2e scripts nœud : chaque process reçoit son propre --name (demo-repo-a, demo-template-studio) et DF_NAME est relu.

Après déploiement

« Redémarrer » le worker ; l'ancienne machine devforge disparaît de My Machines quand plus rien n'y est connecté. Pour template-studio : machine devforge-template-studio.

Ne pas merger sans validation.

Le CLI mémorise le workerId par nom affiché (workerIdsByDisplayName dans
son HOME). Les 11 process lancés sous le même nom « devforge » partageaient
donc le même workerId : Cursor confiait la session à n'importe lequel
(test template-studio exécuté dans jeser).

Chaque process porte maintenant son propre nom `<nom>-<dépôt>` (dépôt =
dernier segment du remote origin, ex. devforge-template-studio, doublons
suffixés -2), donc un workerId distinct et une cible explicite. Même règle
pour les nœuds distants (DF_NAME). Statut : repo_workers[].name et liste
« Machines Cursor » dans la modale Statut ; hint et doc mis à jour.
@bobdivx
bobdivx merged commit fac2602 into main Oct 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant