Skip to content

docs(upgrades): align Upgrades page with feature spec#186

Merged
lucaiz merged 1 commit into
developfrom
docs/upgrades-align-to-spec
May 22, 2026
Merged

docs(upgrades): align Upgrades page with feature spec#186
lucaiz merged 1 commit into
developfrom
docs/upgrades-align-to-spec

Conversation

@lucaiz
Copy link
Copy Markdown
Contributor

@lucaiz lucaiz commented May 22, 2026

Summary

  • Rewrite EN/ES Upgrades pages to match the customer-facing scope of the migrations spec (§3–8).
  • Fix the URL from /migrations/ to /upgrades/ (matches the hotfix: rename migrations to upgrades in ui rebrand on console:main).
  • Recapture screenshots against the live local stack so the list reflects real rows with state pills, Pending-row red tint, and the actual table columns.

What was wrong in the previous version

Claim Reality (per spec)
"Can I cancel a scheduled upgrade? Yes." Cancellation is out of scope (§7.1, §12)
"Use the search bar (⌘K) or Upgrade button to create a new scheduled upgrade." Customers don't create upgrades — SleakOps creates them centrally (§3, §9, §12)
"Cluster upgrades: control plane first, then node groups one at a time — workloads drained and rescheduled." Not in spec, invented detail
"Filtered by account" The listing is cross-account by design (?all=true); the account filter lives inside the page, not the global header (§6.3, §8.1)
Beta callout Spec is shipped; the live page no longer shows a Beta badge

What was added

  • The State column (was missing) and the four real states with the actual UI rebranding (initial → Pending, creating → Running, created → Completed).
  • The drawer's two tabs (Details + Instructions), the Execute popover (Execute Now + Schedule), the confirmation modal with prerequisites alert.
  • The reschedule rules: window [now + 1h, limit_date], cross-type ordering (older-different-type blocks before, newer-different-type blocks after).
  • The sidebar red badge with counter (Admin/Editor only).
  • Admin / Editor / Viewer permissions table (§6.1).
  • Retry-on-Error flow and explicit "no automatic rollback".

Screenshots

Captured live from http://localhost:3000 on console:main:

  • upgrades-list.png — list with the State pill column, Pending-row red tint, Account badges, and entity-name subline for Completed migrations targeting a specific resource.
  • upgrades-drawer.png — Details tab (Basic Info, Schedule, Metadata, Activity Logs).
  • upgrades-execute-popover.png — header popover showing Execute Now + Schedule (with the deadline indicator below the datepicker).

Two screenshots intentionally left as {/* TODO: screenshot - ... */}:

  • Instructions tab.
  • Execute confirmation modal with the prerequisites warning.

Both require a MigrationType with prerequisites/postrequisites populated in the seed fixture. Easy follow-up — happy to land that as a separate PR once one of the seeded types carries instructions.

Test plan

  • cd projects/docs && npm run build (or yarn build) succeeds — verifies all require("./upgrades/...") paths resolve.
  • EN page at /docs/upgrades renders all three Zoom screenshots.
  • ES page at /docs/es/upgrades renders the same three images.
  • No react-medium-image-zoom warnings in the build log about missing assets.

🤖 Generated with Claude Code

Summary by CodeRabbit

Documentación

  • Actualizada y reestructurada la documentación de Upgrades (inglés y español) con información completa sobre gestión de cambios de infraestructura.
  • Explicaciones mejoradas sobre localización, estados, ejecución y reprogramación de upgrades.
  • FAQs expandida con preguntas específicas sobre restricciones, cancelación y diferencias entre estados.

Review Change Stack

Rewrite EN and ES Upgrades pages against the customer-facing scope of
the migrations spec (sections 3-8). The previous version misrepresented
cancellation (claimed yes, actually out of scope), claimed customers
schedule new upgrades (they don't — SleakOps creates them), invented a
"control plane first then node groups" sequence, and said the listing
was filtered by account when it is cross-account by design.

The rewrite adds the State column and the four real states (Pending /
Running / Completed / Error), the drawer's Details and Instructions
tabs, the Execute Now + Schedule popover, the prerequisites alert flow,
the cross-type ordering rules for rescheduling, the
[now + 1h, limit_date] scheduling window, the sidebar red badge for
Admin/Editor, the Admin/Editor/Viewer permissions table, retry-on-Error,
and the explicit "no automatic rollback" caveat. URL updated from
/migrations/ to /upgrades/ to match the main-branch rebrand in console.

Screenshots recaptured against the live local stack: list with state
pills and Pending-row red tint, drawer Details tab, Execute popover.
Instructions tab and Execute-confirmation modal left as TODO comments
since they require a MigrationType with prerequisites set.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 22, 2026

Walkthrough

Se reescribió completamente la documentación de upgrades en inglés y español. Se clarifica que SleakOps crea los upgrades y que los clientes solo pueden revisar, ejecutar o reprogramarlos. Se documenta la navegación, estados, flujos de ejecución, reprogramación, permisos por rol, manejo de errores y un nuevo conjunto de FAQs específicas. Ambos idiomas reciben la misma estructura y contenido.

Changes

Documentación de Upgrades

Layer / File(s) Summary
Introducción y restricciones
content/docs/en/upgrades.mdx (l. 13, 22-24), content/docs/es/upgrades.mdx (l. 13)
Nueva descripción de upgrades como cambios de infraestructura agendados. Bloque de aviso clarificando que SleakOps los crea y que los clientes no pueden crear tipos ni programar nuevos.
Navegación, tabla y estados
content/docs/en/upgrades.mdx (l. 26-56)
Ubicación en /upgrades/ con filtrado por roles. Columnas, marcado visual de "Pending", comportamiento por estado y transiciones entre Pending → Running → Success/Error.
Flujos de ejecución y reprogramación
content/docs/en/upgrades.mdx (l. 58-104)
Dos caminos para ejecutar (lista y drawer). Modales de confirmación, razones para deshabilitar Execute. Reprogramación dentro de la ventana [ahora + 1h, deadline] con reglas de ordenamiento cross-tipo.
Panel de detalles y drawer
content/docs/en/upgrades.mdx (l. 105-127)
Estructura en tabs "Details" e "Instructions". Contenido de cada tab con prerequisites/postrequisitos e indicadores visuales desde la tabla.
Permisos y manejo de fallos
content/docs/en/upgrades.mdx (l. 127-144)
Tabla de permisos por rol. Estado "Error", notificaciones, reintentos manuales sin rollback automático.
Preguntas frecuentes
content/docs/en/upgrades.mdx (l. 145-193)
Nuevas FAQs sobre creación, cancelación, diferencias Pending vs Running, "scheduling locked", deshabilitación de Execute, Activity Logs y comparación con migraciones de Django. Elimina FAQs anteriores sobre navegación y características genéricas.
Documentación en español
content/docs/es/upgrades.mdx (l. 22-193)
Traducción completa equivalente a la versión en inglés: aviso, navegación, tabla, estados, ejecución, reprogramación, drawer, permisos, fallos y FAQs.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Suggested reviewers

  • agustinoli
  • karim090

Poem

📚 Con upgrades claros y a las piñas sin perder tiempo,
Las restricciones quedan documentadas en español e inglés,
Estados, permisos y FAQs en armonía,
Mientras SleakOps orquesta los cambios con precisión marinera. 🚀

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed El título describe con precisión el cambio principal: alinear la página de Upgrades con la especificación de la característica, lo que coincide exactamente con los objetivos y cambios realizados.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/upgrades-align-to-spec

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@content/docs/en/upgrades.mdx`:
- Line 151: The FAQ sentence that currently uses the window “[now, deadline]” is
inconsistent with the Rescheduling section which defines the allowed reschedule
window as “[now + 1 hour, deadline]”; update the FAQ paragraph (the one starting
“SleakOps defines and schedules upgrades centrally...”) to use “[now + 1 hour,
deadline]” so both sections match exactly.

In `@content/docs/es/upgrades.mdx`:
- Line 151: The sentence that currently reads "[hoy, deadline]" is inconsistent
with the "Reprogramar" section which requires a minimum of "ahora + 1 hora";
replace "[hoy, deadline]" with "[ahora + 1 hora, deadline]" and change any use
of "hoy" in that sentence to "ahora" so terminology matches the rest of the doc
(see the paragraph describing SleakOps and the Reprogramar section).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1373d869-d9c9-42b7-a98c-6e8368272532

📥 Commits

Reviewing files that changed from the base of the PR and between d9961ab and c685e6f.

⛔ Files ignored due to path filters (6)
  • content/docs/en/upgrades/upgrades-drawer.png is excluded by !**/*.png
  • content/docs/en/upgrades/upgrades-execute-popover.png is excluded by !**/*.png
  • content/docs/en/upgrades/upgrades-list.png is excluded by !**/*.png
  • content/docs/es/upgrades/upgrades-drawer.png is excluded by !**/*.png
  • content/docs/es/upgrades/upgrades-execute-popover.png is excluded by !**/*.png
  • content/docs/es/upgrades/upgrades-list.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • content/docs/en/upgrades.mdx
  • content/docs/es/upgrades.mdx

Upgrades is accessible directly from the main sidebar under **Upgrades** (`/migrations/`). It is also reachable from **Settings → Upgrades**.

The page shows a table with all scheduled and completed upgrades, filtered by account.
SleakOps defines and schedules upgrades centrally. You see the upgrades the platform queues for your accounts and decide **when** within the allowed window — execute immediately or push the date inside `[now, deadline]`. Creating upgrade types is reserved for the SleakOps team.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Inconsistencia en la ventana de tiempo.

En la línea 96 especificás que la ventana de reprogramación es [now + 1 hour, deadline], pero acá en el FAQ decís [now, deadline]. Falta la hora de margen. Alineá con lo que dice la sección de Rescheduling para que no haya piñas entre las dos explicaciones.

🔧 Fix propuesto
-SleakOps defines and schedules upgrades centrally. You see the upgrades the platform queues for your accounts and decide **when** within the allowed window — execute immediately or push the date inside `[now, deadline]`. Creating upgrade types is reserved for the SleakOps team.
+SleakOps defines and schedules upgrades centrally. You see the upgrades the platform queues for your accounts and decide **when** within the allowed window — execute immediately or push the date inside `[now + 1 hour, deadline]`. Creating upgrade types is reserved for the SleakOps team.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
SleakOps defines and schedules upgrades centrally. You see the upgrades the platform queues for your accounts and decide **when** within the allowed window — execute immediately or push the date inside `[now, deadline]`. Creating upgrade types is reserved for the SleakOps team.
SleakOps defines and schedules upgrades centrally. You see the upgrades the platform queues for your accounts and decide **when** within the allowed window — execute immediately or push the date inside `[now + 1 hour, deadline]`. Creating upgrade types is reserved for the SleakOps team.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@content/docs/en/upgrades.mdx` at line 151, The FAQ sentence that currently
uses the window “[now, deadline]” is inconsistent with the Rescheduling section
which defines the allowed reschedule window as “[now + 1 hour, deadline]”;
update the FAQ paragraph (the one starting “SleakOps defines and schedules
upgrades centrally...”) to use “[now + 1 hour, deadline]” so both sections match
exactly.

Upgrades es accesible directamente desde la barra lateral principal bajo **Upgrades** (`/migrations/`). También es accesible desde **Settings → Upgrades**.

La página muestra una tabla con todos los upgrades programados y completados, filtrados por cuenta.
SleakOps define y agenda los upgrades de forma centralizada. Vos ves los upgrades que la plataforma encola para tus cuentas y decidís **cuándo** dentro de la ventana permitida — ejecutar ya o mover la fecha dentro de `[hoy, deadline]`. La creación de tipos de upgrade queda reservada al equipo de SleakOps.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Piña directa: inconsistencia en la ventana de tiempo.

En la línea 96 decís que la ventana es [ahora + 1 hora, deadline], pero acá escribiste [hoy, deadline]. "Hoy" es cualquier momento del día, pero el constraint real es "ahora + 1 hora". Además, usaste "hoy" cuando el resto del doc usa "ahora" para referirse al momento actual. Arreglalo para que coincida con la sección de Reprogramar.

🔧 Fix propuesto
-SleakOps define y agenda los upgrades de forma centralizada. Vos ves los upgrades que la plataforma encola para tus cuentas y decidís **cuándo** dentro de la ventana permitida — ejecutar ya o mover la fecha dentro de `[hoy, deadline]`. La creación de tipos de upgrade queda reservada al equipo de SleakOps.
+SleakOps define y agenda los upgrades de forma centralizada. Vos ves los upgrades que la plataforma encola para tus cuentas y decidís **cuándo** dentro de la ventana permitida — ejecutar ya o mover la fecha dentro de `[ahora + 1 hora, deadline]`. La creación de tipos de upgrade queda reservada al equipo de SleakOps.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
SleakOps define y agenda los upgrades de forma centralizada. Vos ves los upgrades que la plataforma encola para tus cuentas y decidís **cuándo** dentro de la ventana permitida — ejecutar ya o mover la fecha dentro de `[hoy, deadline]`. La creación de tipos de upgrade queda reservada al equipo de SleakOps.
SleakOps define y agenda los upgrades de forma centralizada. Vos ves los upgrades que la plataforma encola para tus cuentas y decidís **cuándo** dentro de la ventana permitida — ejecutar ya o mover la fecha dentro de `[ahora + 1 hora, deadline]`. La creación de tipos de upgrade queda reservada al equipo de SleakOps.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@content/docs/es/upgrades.mdx` at line 151, The sentence that currently reads
"[hoy, deadline]" is inconsistent with the "Reprogramar" section which requires
a minimum of "ahora + 1 hora"; replace "[hoy, deadline]" with "[ahora + 1 hora,
deadline]" and change any use of "hoy" in that sentence to "ahora" so
terminology matches the rest of the doc (see the paragraph describing SleakOps
and the Reprogramar section).

@lucaiz lucaiz merged commit e2a0d0e into develop May 22, 2026
1 check passed

## Where to find Upgrades

Upgrades live at `/upgrades/` and have a dedicated entry in the sidebar footer, next to the notifications button. The entry is visible to **Admin** and **Editor** users; Viewers can still reach the page directly via URL when their company has the feature enabled.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Viewers can still reach the page directly via URL when their company has the feature enabled." saquemos este hack (?

| **Execution Date** | Relative time — **scheduled date** while the upgrade is Pending, **actual execution time** for every other state. Hover the value to see the exact timestamp. |
| **Actions** | View details, Execute, and (when applicable) Review instructions. |

Pending rows are tinted a subtle red to make outstanding work easier to scan at a glance. The same red is reused on the state pill and the sidebar badge — it's the single visual cue SleakOps uses for "deadline-bound action required".
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esto no hay que cambiarlo pero son cosas que quizas no deberian aparecer, mucho texto

"Pending rows are tinted a subtle red to make outstanding work easier to scan at a glance. The same red is reused on the state pill and the sidebar badge — it's the single visual cue SleakOps uses for "deadline-bound action required"."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mal, nada q ver. Aih le digo a la ia que vea de sacar estas cosa srandoms, tambien dice algo de los roles que bueno, no se si iria la verdad

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.

2 participants