A staged release reads as live while a newer 5.4 rolling deploy is already live on its node

Abierto Apto para principiantes
#2,070 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript
Área
frontend, testing

Línea de trabajo

Empieza por src/features/instance/config/deployments/functions/stagedRelease.ts y el componente StagedReleaseDetail; sigue cómo afecta un deploy posterior rolling_out al estado del release preparado y al control Activate. Después, lee la documentación de rolling_out en src/integrations/api/instance/deployments/types.ts y amplía stagedRelease.test.ts para incluir un rolling deploy posterior de otro release. Se considera terminado cuando el panel ya no llama live a A mientras B ya está live en el nodo que lo recibe, y el comportamiento de activación existente queda cubierto.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Problem

On Harper 5.4, a staged release reads as live while a newer rolling deploy of the same component is already running on the node that received it.

stagedReleaseState (src/features/instance/config/deployments/functions/stagedRelease.ts:45-74) counts a deploy still in progress as changing nothing ("A deploy still running does not count"). Only a success later deploy makes the staged release replaced, and only failed or partial makes it uncertain. Before 5.4 that held, because a running deploy hadn't swapped yet. A 5.4 rolling deploy is different: it reads rolling_out while it is already live on the receiving node and its activation job takes it to the other nodes one at a time (src/features/instance/applications/DESIGN.md, and the rolling_out doc in src/integrations/api/instance/deployments/types.ts).

Steps
  1. Activate staged release A of a component. It ends success.
  2. Start a certified rolling deploy B of the same component, which isn't an activation of A (no activated_from). While it reads rolling_out, open A in Config → Deployments.

Expected: the panel says another deploy is taking over, live on the node that received it.
Actual: StagedReleaseDetail (components/StagedReleaseDetail.tsx:57-61) says A is live. It also hides Activate (:80) until B ends success or partial.

Hiding Activate during a rolling deploy is arguably right, since a second activation would start another rolling restart. The wrong part is the "live" claim. stagedRelease.test.ts covers a rolling_out activation of the staged release itself, and a later partial, but not a later rolling_out deploy of something else.

Context

Found by a cross-model review of HarperFast/studio#2031. It reached that branch through its merge of stage, which brought in #2060 (5.4 rolling statuses), so it isn't that PR's change.

Review-Deferral: 1442a057ba5e7606 severity=minor category=correctness

🤖 Generated by Claude Code (Claude Opus 5.5); posted via @dawsontoth.

Lenguaje dominante
TypeScript
Estrellas
5
Forks
4
Merge medio
1 d 20 h
PR fusionados (30 d)
140

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de HarperFast/studio

Todos los issues de HarperFast/studio

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.