Repository navigation
Worker Cursor : dossier dédié <workdir>-cursor par projet + sauvegarde avant déploiement manuel - #270
Merged
Merged
Conversation
…vegarde du brouillon avant tout déploiement - Chaque process du worker Cursor sert <workdir>-cursor (git worktree, branche cursor/devforge depuis origin/<branche de prod>), créé au démarrage s'il manque, jamais modifié ensuite ; plus jamais le checkout que le déploiement remet à zéro. - Projets sans checkout : non servis (« pas encore de checkout : déployer une fois »). - Script nœud distant : même logique (DF_WT_ERR si création impossible). - POST /api/v1/cursor-worker/refresh (« Remettre à jour ») : worktrees sur origin/<branche>, changements non publiés sauvegardés d'abord. - run_real_deploy_at sauvegarde le brouillon avant le reset --hard pour tous les déploiements prod (manuels compris), plus seulement l'auto-deploy. - UI : modale Dépôts (dossier -cursor, badge, Remettre à jour) ; tests.
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
Les agents Cursor travaillaient dans le checkout du projet, celui que chaque déploiement remet à
origin/<branche>(fetch && checkout && reset --hard) et qui sert de contexte de build. Un déploiement pouvait effacer le travail d'un agent, et un agent qui change de branche pouvait gêner un build.Changements
<workdir>-cursor, créé au démarrage pargit -C <workdir> worktree add --no-track -b cursor/devforge <workdir>-cursor origin/<branche de prod>(ensure_cursor_worktree). S'il existe déjà, il n'est pas touché. Si la branchecursor/devforgeexiste déjà (dossier supprimé à la main), elle est reprise sans être remise à zéro. Un dossier occupé qui n'est pas un dépôt Git n'est jamais écrasé.start_named/restart_with_dirs/ autostart (leader) et par le script de démarrage d'un nœud distant (DF_WT_ERRen cas d'échec ; on ne revient jamais au checkout de déploiement).list_project_workdirs/eligible_pathsrenvoient le dossier-cursor(champssource_path,branch,worktree_ready,note)..git: non servis, avec la note « pas encore de checkout : déployer une fois ».devforge-<dépôt>(le worktree partage le remoteorigin).POST /api/v1/cursor-worker/refresh(leader). Chaque worktree repart deorigin/<branche>surcursor/devforge. Les changements non publiés sont d'abord sauvegardés sousdraft-backups/<uuid>-cursor/(séparé du brouillon du projet).backup_draft_before_resetest appelé dansrun_real_deploy_at(manuel, auto, GitHub), plus seulement par l'auto-deploy. Un workdir vide se résout comme au déploiement.-cursoravec un badge (Servi / Créé au démarrage / Pas de checkout) et un bouton « Remettre à jour… » avec confirmation.Ce qui n'est pas touché
reset --harddans<workdir>), les previews et le brouillon utilisent toujours<workdir>.<workdir>-dev.-cursorest un dossier voisin : hors du contexte de build, invisible pourgit statusdu checkout.Tests
cursor_worktree_is_separate_from_deploy_checkout: vraie séquence de déploiement sans effet sur le worktree, refresh avec sauvegarde, recréation, dossier occupé.cursor_worktree_path_and_branch_rules, e2e du script nœud avec worktree.backup_dirty_checkout_before_reset, vitestrepoBadge.