deploy: atomically claim and own pending Agent Runtime operations
@asrujana-44 ya está trabajando en esto.
Desde el 17/9/2026.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comience en la ruta de despliegue de Agent Runtime del baseline y compárela con la rama Batch 4 del fork enlazado, centrándose en las transiciones de read/modify/write de deployment_metadata.json. Ejecute las regresiones de race y fallos de thread/subprocess mencionadas y, a continuación, verifique exactamente un owner y una mutation, una restauración byte-identical para los fallos previos al submit, un estado inicial fail-closed para resultados inciertos y una finalización y limpieza owner-safe.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Agent Runtime deployment operation state in v1.3.1 is a non-atomic read/modify/write record without an owner token. Two CLI processes can both pass the pending-operation check, start remote mutations, and overwrite or clear each other's deployment_metadata.json state.
Baseline: 5a306f8956cb1eeae69f9709de0e4d61b44e11e7 (v1.3.1).
Reproduction
- In one agent project, start two
agents-cli deploy --no-waitprocesses at the same time. - Both read the metadata before either writes its pending operation.
- Observe that both may submit a remote create/update, while the last metadata write wins.
- Also simulate:
- local SDK request-config construction failing before remote submission;
- remote create/update submission raising with an unknown outcome;
- a delayed status/cleanup process running after a newer operation replaced the record.
Actual behavior
- More than one remote mutation can start.
- One process can overwrite or clear another process's pending operation.
- A crash between remote submission and operation-name persistence is not represented safely.
- Failure cleanup cannot distinguish known pre-mutation failure from outcome-uncertain remote submission.
Expected behavior
- Exactly one process owns the right to start a mutation.
- Ownership spans target revalidation, remote submission, status recording, completion, and cleanup.
- Local preparation failure restores prior metadata byte-for-byte.
- Once remote submission or identity creation may have happened, retain a fail-closed
startingclaim for manual reconciliation. - A stale owner must never clear a replacement owner's record.
- Successful completion should merge current sibling metadata and remove the owned claim in one atomic transition.
Minimal fix
Use a cross-process lock around metadata read/modify/write, add a random claim ID, claim before remote mutation, revalidate the selected Runtime while holding ownership, and make clear/finish operations owner-aware. Split local request preparation from remote submission so only errors proven to precede mutation restore the previous bytes.
Reference implementation and regressions: fork Batch 4 branch.
Verification evidence
- Thread and subprocess races each produced exactly one owner and exactly one mutation.
- Replacement-owner, legacy-operation, atomic-finish, and sibling-metadata regressions passed.
- Local request-config failure: zero mutation, byte-identical restoration, retry claim succeeds.
- Remote submit and identity-create outcome-uncertain failures retain
state=starting. - Fresh targeted review: 35 tests passed; full local suite: 92 passed.
ruff check src tests,ty check src, build, and Python 3.11/3.13 installed-wheel smoke tests passed.
- Lenguaje dominante
- Python
- Estrellas
- 6k
- Forks
- 686
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de google/agents-cli
-
documentation needs review
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100
google/agents-cli#86 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
google/agents-cli#95 ·
-
deploy in agents cli doesn't accept ingress and egress gateway option.Posiblemente ocupada @asrujana-44 la tomó hace 1 día. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
google/agents-cli#94 · 1 asignado ·
-
needs review
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
google/agents-cli#92 · 2 comentarios ·
-
scaffold: dependency reconciliation is silent — no diff shown, unlike enhance/upgradePosiblemente ocupada @asrujana-44 la tomó hace 7 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
google/agents-cli#85 · 1 comentario · 1 asignado ·
Todos los issues de google/agents-cli
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Clean up dependabot noiseAbiertoTask
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
war-and-code/dircue#200 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día