Skip to content

fix(console): « Sign out » does not move when the list of the browsers arrives (FRU-248) - #294

Merged
sakuga-agent[bot] merged 2 commits into
mainfrom
fru-sf-entree/account-list-keeps-its-room
Oct 13, 2026
Merged

sakuga-agent[bot] merged 2 commits into
mainfrom
fru-sf-entree/account-list-keeps-its-room

Conversation

@sakuga-agent

@sakuga-agent sakuga-agent Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Not critical: one screen of the console, no route, no safeguard. Decided by the orchestrator on 2026-10-13: the lost press is a defect of the screen, and is fixed here. #293 makes the test that found it wait; this makes the screen right.

The defect

My account (FRU-248, #269) draws « Sign out » and « Sign out everywhere », then reads the list « Where you are signed in », which arrives above them. The buttons go down 53 px. A press that starts before the list and ends after it is lost: no request, no message, and the person is still signed in. On a slow line, that is a person who believes they signed out.

The fix

While the list is read, and when it could not be read, its place is the one of the row of this browser, which every list has: the same two rules, the same height (ONE_ROW in routes/account.tsx). The words do not change (« Loading… », the sentence of a list that was not read, « Try again »).

What it does not do. A person signed in in several browsers still sees the buttons go down when the list arrives, by one row per other browser. Their number is not known before the list is read. Keeping it between visits would be one more thing stored in the browser, and putting the list under the buttons would leave the order of the mockup. Either is a decision for the owner, and is not taken here.

Proof

e2e/console-account.spec.ts, two new cases, on stubs. GET /console/sessions is held, the pointer goes down on « Sign out », the list is released (read with one browser, then not read), the pointer goes up. The boxes of the two buttons are the same before and after, the sign-out is sent, and the page is the setup. Both failed before the change (the boxes differed). The whole spec passes locally (15), the measures of the mockup of the screen included: they are read with the list there, and nothing of that state changes.

The same shift elsewhere, listed and not fixed here

Read in the code, not measured:

  • Connectors: « Add a source » and its « Connect » buttons are under the list « Connected », which says « Loading… » and then takes its rows. Same defect.
  • Members: the form « Invite someone » is above the table and does not move. A read made again (read() after a mail that was not sent, or an invitation that is gone) puts « Loading… » in place of the table for a moment: the legend and the block of a link under it jump.
  • Sites: « Add a site » in the head of the page appears once the list is read; nothing is under the list.

Not verified

Firefox, Safari, a touch screen (the press was made with a mouse in Chromium), a screen reader.

🤖 Generated with Claude Code


Sakuga Review · Score de confiance : 4/5

Fusion probablement sans risque : le changement réserve la place d'une ligne pendant le chargement de la liste des navigateurs, pour que le bouton « Sign out » ne bouge plus ; aucun défaut démontré dans le diff.

Résumé

La PR fait réserver à la liste des navigateurs de la page Mon compte la hauteur d'une ligne pendant le chargement et en cas d'échec, via la constante ONE_ROW, afin que « Sign out » ne se déplace plus sous un appui. Elle ajoute un test e2e qui retient la liste et vérifie que la position des boutons reste identique pendant un appui, et met à jour docs/decisions/console.md. J'ai relu le code de account.tsx et la règle documentée ; la classe ONE_ROW et les nouveaux blocs ne semblent pas introduire de régression visible. Non vérifié : le rendu réel en navigateur, la mise en page de ONE_ROW dans les autres tailles d'écran et le comportement de la constante ONE_ROW hors de ce fichier.

Non relu
  • e2e/console-account.spec.ts: test de non-régression écrit par la PR, relu sans exécution ; la sélection de la page de l'attente de liste n'a pas été vérifiée dans le navigateur
  • apps/console/app/routes/account.tsx: la constante ONE_ROW et ses classes Tailwind n'ont pas été comparées au design ni aux autres tailles d'écran

Revues (3) · Dernier commit relu : style(console): the comment of a row of My acco... · Niveau lite · anthropic/claude-haiku-5.5 · 0,003 $

…s arrives (FRU-248)

My account drew « Sign out » and « Sign out everywhere », then read the list of the browsers, which
arrives above them: the buttons went down 53 px. A press that started before and ended after was
lost: no request, no message, and the person still signed in.

While the list is read, and when it could not be, its place is now the one of the row of this
browser, which every list has. The new cases of console-account.spec.ts hold GET /console/sessions
between the press and the release: the two buttons keep their box and the sign-out is sent. Both
failed before the change.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

@sakuga-review sakuga-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Score de confiance : 4/5 · ✅ Rien de bloquant · La PR peut être fusionnée : le bouton « Sign out » garde sa place pendant le chargement de la liste des navigateurs, et je n'ai relevé aucun défaut de logique dans le code modifié.

Niveau lite · anthropic/claude-haiku-5.5 · 0,003 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.

@sakuga-review sakuga-review Bot added the review: 4/5 Score de confiance de Sakuga Review (5 : prête à merger) label Oct 13, 2026
@sakuga-agent

sakuga-agent Bot commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

@sakuga-review review balanced

@sakuga-review sakuga-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Score de confiance : 4/5 · ⚠️ Rien de bloquant · Correctif d'interface limité, sans risque fonctionnel visible ; l'ajout de ONE_ROW et le correctif de décalage de mise en page semblent corrects.

Niveau balanced · anthropic/claude-sonnet-5.5 · 0,051 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.

@sakuga-agent

sakuga-agent Bot commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

On the P2 of the balanced review of 2a78b3f, « the JSDoc of Row is separated from its function »: right, fixed in 76bbead. ONE_ROW and its comment are now before the comment of Row. No other change.

@sakuga-review sakuga-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Score de confiance : 4/5 · ✅ Rien de bloquant · Fusion probablement sans risque : le changement réserve la place d'une ligne pendant le chargement de la liste des navigateurs, pour que le bouton « Sign out » ne bouge plus ; aucun défaut démontré dans le diff.

Niveau lite · anthropic/claude-haiku-5.5 · 0,003 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review: 4/5 Score de confiance de Sakuga Review (5 : prête à merger)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant