Repository navigation
feat(console): the last step of the setup: two cards, and an example page in the preview (FRU-242) - #271
Conversation
There was a problem hiding this comment.
Score de confiance : 4/5 · ✅ Rien de bloquant · Le changement peut être fusionné : je n'ai trouvé aucun défaut bloquant dans le diff fourni. Deux points restent non vérifiés (le composant BrowserFrame et la mise en page de la carte de script), d'où le score de 4.
Niveau lite · anthropic/claude-haiku-5.5 · 0,006 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
66f5acc to
a1a3c04
Compare
There was a problem hiding this comment.
Score de confiance : 4/5 · ✅ Rien de bloquant · La PR peut être fusionnée : je n'ai relevé aucun défaut critique ou majeur dans le diff lu, et les points non vérifiés sont listés dans not_reviewed.
Niveau lite · anthropic/claude-haiku-5.5 · 0,007 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
a1a3c04 to
82d2b97
Compare
There was a problem hiding this comment.
Score de confiance : 4/5 · min-w-0 de l'étape 3 peut faire défiler la page à l'horizontale et doit être contrôlé.
Niveau lite · anthropic/claude-haiku-5.5 · 0,007 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
…page in the preview (FRU-242) The commits of the branch as one, on main. Step 3 is in routes/setup-install.tsx, after the split of the setup in #267. Co-Authored-By: Claude Opus 5.5 <[email protected]>
82d2b97 to
7d104c9
Compare
There was a problem hiding this comment.
Score de confiance : 4/5 ·
Niveau lite · anthropic/claude-haiku-5.5 · 0,007 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
|
@sakuga-review review balanced Asked now that its diff is its own: the stack under it is merged, and the branch is one commit on |
There was a problem hiding this comment.
Score de confiance : 4/5 ·
Niveau balanced · anthropic/claude-sonnet-5.5 · 0,111 $ · Le résumé, le diagramme et la liste des constats sont à la fin de la description de la PR.
|
On the two P2 of the reviews of 7d104c9 (lite and balanced, both 4/5): Lite, the script can widen the grid and scroll the page sideways. Measured, it does not. The case « no state of the setup scrolls sideways on a phone » ( Balanced, |
Not critical. Review
balancedasked below. The orchestrator may merge it.Base
main: the stack under it is merged (#259, #260, #267, #270), and the branch is one commit onmain. Step 3 is inroutes/setup-install.tsx, after the split of the setup in #267.Part of FRU-242 (parent FRU-230, « Simpler flow »): the first of its two parts, what works with the data of today. Screen 01 of the mockup of 2026-10-13, state
install. The ticket stays open for its second part.Arbitrations that apply (orchestrator, 2026-10-13, on delegation from Mathieu). Q5: « A preview of your site » is a fixed illustration. Waiting, so not built: Q8 (the extension signed in from the console) and FRU-237 (the summary of the sites, which says that a first note came).
What changes
preview-scene.tsx): the address of the site in the bar, the shop that does not exist, the two buttons of the widget and the hint « Click Leave feedback, then any part of the page. ». It asks the site of the person for nothing: no frame, no request (the spec counts the requests to the site: none). Its caption is « An example page. Pins show the same way on your site. », as the ticket says, in place of « A preview of your site. ».aria-hiddenandinert: its two buttons are drawn, and take no focus and no press.install-options.tsxshares its logic (useCopy,useConnect,EXTENSION_GUIDE) between the Sites screen and the setup. The Sites screen is not redrawn here.root.tsx, asked for by the agent of the workspace screens: the two dark banners have a rule under them (border-rail-active), so they do not run into the dark rail.What the mockup has and this step does not, and why
role="status"src,data-fruitback-client,deferdata-fruitback-endpointpackages/element: an element with no endpoint mounts nothing). The script is two lines longer.Against the mockup
Built at 1440 × 900 and 390 × 844, system font, with sample words as wide as the mockup's (see #267).
What differs, and why. The first card is 58 px taller: its line has two lines and not one (19.5 px), « Connect this browser » is under « Add to Chrome » (41 px), and the link is 44 px high where the mockup's
<a>is 46. The second card is 37 px taller: the script has two lines more. So « Script tag » is 58 px lower and « Copy script » 95.6 px lower than on the mockup. The page at 390 is 390 × 2078 for the mockup's 390 × 1935, for the same reasons. Everything above the first card, and the whole preview, is where the mockup has it.Captures cannot be uploaded from the agent. They are on the machine
sakuga-mini: built,~/.claude/agent-coord/scratch/fru-sf-entree/fru-242/built-01-setup-install-<1440|390>.pngwith every box inbuilt-boxes.json; mockup,~/.claude/agent-coord/maquettes/simpler-flow/shots/01-setup-install-<1440|390>.png.The colours of the example page
preview-scene.cssholds ten colours and a serif that are the example site's (#f6f6f3,#2f4a3a, Georgia…), as the inventory of the mockup says: « a sample site, not Fruitback ». They are no tokens, the file says so at its top, and nothing else takes them. What is Fruitback's on the picture (the two buttons, the hint) uses the tokens ofapp.css.tokens.test.tsstill refuses a colour written in a.tsx.French, sentence by sentence (the mockup has none)
The words of the example shop (« Acme Outdoor », « Pack light, walk far. ») are the picture's and stay in English, as on the mockup; no screen reader reads them. Removed: « Finish ».
Tests
e2e/console-setup.spec.ts, 20 tests (4 new). Against a worker on PGlite: after « Add site » the script names the site as the worker made it, « Copy script » puts that script in the clipboard, « Connect this browser » opens the pairing page with a code after the#, no request went to the site of the person, and « Open the console » leads to the sites. With stubs: the two cards and the example page with the boxes of the mockup (on macOS), the picture hidden andinertwith nothing in it that takes focus, axe (no violation), a site that everyone sees, a copy the browser refuses. The test at 390 and 320 px, in English and French, now walks the new step with a long host.Ran locally
pnpm format,pnpm lint,pnpm typecheck, consoletest(93) andbuildpass. Console specs against this branch:console-setup20,console-invitation11,console-kit18,console-narrow5,console-site-address4: all pass.Not verified
Firefox, Safari, a screen reader.
inertis read by the test in Chromium only.🤖 Generated with Claude Code
Sakuga Review · Score de confiance : 4/5
Fusionnable : refactor propre des hooks et nouvelle étape 3 ; seuls des points mineurs et quelques éléments non vérifiables.
Constats
new URL(site.origin)sans garde dans le renduapps/console/app/routes/setup-install.tsx:22Si
site.originn'est pas une URL valide,new URLlève pendant le rendu et fait planter l'écran.setup.tsxfait déjà le même appel, et le worker valide l'origine, donc le cas est improbable. Correction : Aucune action nécessaire si le worker garantit l'origine ; sinon entourer l'appel d'un try/catch.Résumé
La PR extrait
useCopyetuseConnectdeInstallOptions, ajoute l'étape 3 du setup en deux cartes (PutOnSite) et une scène d'exemple statique dans l'aperçu. J'ai relu les hooks, la nouvelle étape, les traductions françaises et l'appelantsites.tsx, qui reste compatible. Les composants deui.tsx(OptionCard,AutoGrid,LinkButtonavecspace,SnippetavecclassName,BrowserFrameavec enfants) ne sont pas montrés dans le contexte.Diagramme
%%{init: {'theme': 'neutral'}}%% flowchart LR A["setup.tsx"] --> B["PutOnSite"] B --> C["useCopy"] B --> D["useConnect"] C --> E["install-options.tsx"] D --> E A --> F["PreviewScene"] G["sites.tsx"] --> H["InstallOptions"] H --> ENon relu
OptionCard,AutoGrid,LinkButton,SnippetetBrowserFramene sont pas montrés, leurs props n'ont pas été vérifiéesRevues (2) · Dernier commit relu : feat(console): the last step of the setup: two ... · Niveau
balanced·anthropic/claude-sonnet-5.5· 0,111 $