Serialize agent Land and Discard lifecycle operations
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia in crates/clowder-daemon/src/server.rs intorno a finish_agent, alle righe 816-887, quindi segui i percorsi delle richieste Land e Discard e le relative transizioni di stato. Aggiungi un test di regressione che metta in competizione entrambe le operazioni, verifichi che le richieste in conflitto vengano rifiutate e dimostri che una sola operazione finalizzi l’agente, incluso il comportamento in caso di errore del driver.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Land and Discard can run concurrently for the same agent. Both enter finish_agent without a per-agent lifecycle lock, so Discard may remove the worktree or branch while Land is staging or committing.
Evidence: https://github.com/richardcase/clowder/blob/b5492d5/crates/clowder-daemon/src/server.rs#L816-L887
Impact
Uncommitted agent work can be destroyed, and the registry/UI can be left inconsistent.
Acceptance criteria
- Atomically claim an agent lifecycle operation and reject conflicting duplicate requests.
- Keep state transitions consistent when the driver fails.
- Add a regression test that races Land and Discard and proves only one operation can finalize the agent.
- Lingua principale
- Rust
- Stelle
- 0
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di richardcase/clowder
-
documentation priority: medium
Difficoltà 2/5 Mezza giornata Idoneità per principianti 82/100
richardcase/clowder#143 ·
-
enhancement github_actions priority: medium rust
Difficoltà 4/5 3-5 giorni Idoneità per principianti 65/100
richardcase/clowder#142 ·
-
github_actions priority: medium
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
richardcase/clowder#141 ·
-
bug priority: medium
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
richardcase/clowder#140 ·
-
bug priority: medium
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
richardcase/clowder#139 ·
Tutte le issue di richardcase/clowder
Issue simili
-
[cosmic-applet-battery] Division by zero displays NaN% when UPower reports max_brightness = 0Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
pop-os/cosmic-applets#1619 ·
I maintainer di solito rispondono entro 3 giorni
-
binding:python bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
coollabsio/orbit#72 ·
I maintainer di solito rispondono entro 1 giorno
-
swc_common: Mark::least_ancestor never returns when the answer is the root mark (ANT-2026-JYDQGGRT)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
swc-project/swc-ai-issues#137 ·
-
Synth suite fails unless run from the repo root: signal_flow's default machine path is cwd-relativeApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
Nimblesite/osprey#370 ·
I maintainer di solito rispondono entro 1 giorno