fix: stop studio route refresh loop#281
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
📜 Recent review details⏰ Context from checks skipped due to timeout. (2)
🧰 Additional context used📓 Path-based instructions (1)**/*.{ts,tsx,js,jsx,html,css,scss}📄 CodeRabbit inference engine (AGENTS.md)
Files:
🔍 Remote MCP GrepRelevant review context found:
🔇 Additional comments (4)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe /studio route now renders the Studio page inside the app shell without a forced redirect. The header control and route test were updated to match the in-app navigation flow. ChangesStudio Route Navigation
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant HeaderControl
participant ReactRouter
participant StudioPage
User->>HeaderControl: Click Studio
HeaderControl->>ReactRouter: Navigate to /studio
ReactRouter->>StudioPage: Render lazy-loaded Studio component
StudioPage-->>User: Show Sign in page
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsThese MCP integrations need to be re-authenticated in the Integrations settings: Sentry Comment |
There was a problem hiding this comment.
Code Review
This pull request integrates the Studio route directly into the client-side app shell, replacing the previous full-page redirect behavior with client-side routing. Feedback points out an invalid HTML nesting issue where a <button> is placed inside a <Link> component, which should be styled directly instead.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| <Link to="/studio"> | ||
| <button type="button" className="btn btn--ghost btn--sm">Studio</button> | ||
| </a> | ||
| </Link> |
There was a problem hiding this comment.
Nesting a <button> inside a <Link> (which renders an <a> anchor tag) is invalid HTML according to the HTML5 specification (interactive content cannot be nested) and can cause accessibility issues for screen readers. Instead, you can style the <Link> directly using the button classes.
| <Link to="/studio"> | |
| <button type="button" className="btn btn--ghost btn--sm">Studio</button> | |
| </a> | |
| </Link> | |
| <Link to="/studio" className="btn btn--ghost btn--sm"> | |
| Studio | |
| </Link> |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
spooool | 3b2d4ad | Jul 08 2026, 07:22 PM |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9d3b87d7fb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <a href="/studio"> | ||
| {/* Studio is part of the app shell; keep navigation client-side so the | ||
| route settles instead of repeatedly reloading the same URL. */} | ||
| <Link to="/studio"> |
There was a problem hiding this comment.
Keep Studio navigation as a full-page handoff
When a signed-in user clicks this Studio nav item from an already-loaded spooool page, React Router intercepts the click and no request is made to Cloudflare, so the spooool.com/studio* route to the separate editor worker cannot run. The content-hub spec still documents /studio as owned by that worker and explicitly requires a hard nav link/full-page handoff (docs/superpowers/specs/studio-content-hub.md:20-30,38-39), so this change leaves users in the legacy in-shell Studio instead of the hub whenever they navigate from the header.
Useful? React with 👍 / 👎.
9d3b87d to
c44b653
Compare
c44b653 to
3b2d4ad
Compare
Summary
/studiofallback to the existing lazy Studio page instead of awindow.location.replace('/studio')self-redirect./studiolink so the production content-hub worker route can still intercept./studiotries to replace the current location again.Validation
NODE_OPTIONS=--localstorage-file=/tmp/spooool-vitest-localstorage.json npx vitest run src/frontend/App.shell.dom.test.tsxnpm run type-checknpm run buildnpm run lint -- src/frontend/App.tsx src/frontend/App.shell.dom.test.tsx(completed with existing repo warnings, 0 errors)http://127.0.0.1:5174/studio: settles on/loginwhen unauthenticated; no blank route loop; no page exceptions.