Skip to content

feat: improve cloud button discoverability and header icon visibility#654

Merged
emranemran merged 1 commit intomainfrom
emran/cloud-ux-improvement
Mar 11, 2026
Merged

feat: improve cloud button discoverability and header icon visibility#654
emranemran merged 1 commit intomainfrom
emran/cloud-ux-improvement

Conversation

@emranemran
Copy link
Copy Markdown
Contributor

@emranemran emranemran commented Mar 10, 2026

Change disconnected state text from "Disconnected" to "Enable Remote Inference" so new users understand the feature is available. Bump opacity on all three header icons (cloud, plugins, settings) for better visibility.

Summary by CodeRabbit

  • Style

    • Updated cloud status indicator labels, tooltips, and styling for improved clarity and guidance
    • Adjusted opacity of cloud, plugins, and settings icons for better visibility
  • Tests

    • Broadened end-to-end cloud activation checks to cover both cloud and remote inference entry points for more reliable test coverage

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 10, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1f73594f-b079-4c87-8b33-f6c2ebab148f

📥 Commits

Reviewing files that changed from the base of the PR and between ac2e76a and 9f7cb3b.

📒 Files selected for processing (2)
  • e2e/tests/cloud-streaming.spec.ts
  • frontend/src/components/Header.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/src/components/Header.tsx

📝 Walkthrough

Walkthrough

Adjusted Header UI text and opacity for cloud-status states and increased icon button opacity; updated an end-to-end selector to include the remote inference button. No exported API or runtime logic signature changes. (≈36 words)

Changes

Cohort / File(s) Summary
Cloud Status UI
frontend/src/components/Header.tsx
Changed disconnected state label/tooltip to "Enable Remote Inference", updated status badge text, and adjusted opacity values for connected/connecting/disconnected states; increased Plugins and Settings icon button opacity.
E2E Test Selector
e2e/tests/cloud-streaming.spec.ts
Expanded locator to target both cloud and remote inference buttons (button[title*="cloud" i], button[title*="remote inference" i]) to trigger cloud settings during tests.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I nibble through pixels, whiskers bright,
A button glows with kinder light,
"Enable Remote" now sings so clear,
Opacity trimmed to draw it near,
Hop, click—remote dreams take flight! 🐇✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main changes: improving cloud button discoverability (via 'Enable Remote Inference' label change) and enhancing header icon visibility (opacity increases).

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch emran/cloud-ux-improvement

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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
frontend/src/components/Header.tsx (1)

139-166: ⚠️ Potential issue | 🟡 Minor

Handle cloudDisabled before showing an enable CTA.

If cloudDisabled is true, this still renders “Enable Remote Inference” and the normal disconnected styling, which makes an intentionally unavailable feature look merely disconnected. That’s misleading for the exact state this copy is trying to clarify.

💡 Suggested adjustment
             className={`hover:opacity-80 transition-opacity h-8 gap-1.5 px-2 ${
-              isConnected
+              cloudDisabled
+                ? "text-muted-foreground opacity-50"
+                : isConnected
                 ? "text-green-500 opacity-100"
                 : isConnecting
                   ? "text-amber-400 opacity-100"
                   : "text-muted-foreground opacity-80"
             }`}
             title={
-              isConnected
+              cloudDisabled
+                ? "Remote inference unavailable"
+                : isConnected
                 ? "Cloud connected"
                 : isConnecting
                   ? "Connecting to cloud..."
                   : "Enable remote inference"
             }
...
               {isConnected
                 ? "Connected"
-                : isConnecting
-                  ? "Connecting..."
-                  : "Enable Remote Inference"}
+                : cloudDisabled
+                  ? "Unavailable"
+                  : isConnecting
+                    ? "Connecting..."
+                    : "Enable Remote Inference"}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@frontend/src/components/Header.tsx` around lines 139 - 166, The header
currently treats cloudDisabled the same as a normal disconnected state and still
renders the "Enable Remote Inference" CTA; update the rendering logic in
Header.tsx where isConnected/isConnecting are used (the JSX block rendering the
Cloud/CloudOff icon, title attribute, className and the span text) to check
cloudDisabled first and render a distinct disabled state (different text like
"Remote Inference Disabled", muted styling and a disabled icon/tooltip) instead
of the enable CTA; ensure the checks use the existing cloudDisabled, isConnected
and isConnecting symbols so the disabled branch short-circuits the disconnected
branch for title, className, icon and span text.
🧹 Nitpick comments (1)
frontend/src/components/Header.tsx (1)

169-183: The opacity transition is now a no-op on these two buttons.

With opacity-80 as the base state and hover:opacity-80 on hover, Line 173 and Line 182 no longer change opacity at all. If the stronger default visibility is intentional, either bump hover to opacity-100 or drop the opacity transition classes.

♻️ Possible cleanup
-            className="hover:opacity-80 transition-opacity text-muted-foreground opacity-80 h-8 w-8"
+            className="hover:opacity-100 transition-opacity text-muted-foreground opacity-80 h-8 w-8"
...
-            className="hover:opacity-80 transition-opacity text-muted-foreground opacity-80 h-8 w-8"
+            className="hover:opacity-100 transition-opacity text-muted-foreground opacity-80 h-8 w-8"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@frontend/src/components/Header.tsx` around lines 169 - 183, Both Button
components rendering the Plugins and Settings icons (the ones using onClick
handlers setPluginsOpen and setSettingsOpen) have a no-op opacity transition
because they set opacity-80 as both the base and hover state; change the hover
class to a stronger value (e.g., hover:opacity-100) to make the transition
visible, or remove the hover:opacity-80/transition-opacity classes if you intend
static reduced opacity. Update the Button className on the Plug and Settings
Buttons accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@frontend/src/components/Header.tsx`:
- Around line 139-166: The header currently treats cloudDisabled the same as a
normal disconnected state and still renders the "Enable Remote Inference" CTA;
update the rendering logic in Header.tsx where isConnected/isConnecting are used
(the JSX block rendering the Cloud/CloudOff icon, title attribute, className and
the span text) to check cloudDisabled first and render a distinct disabled state
(different text like "Remote Inference Disabled", muted styling and a disabled
icon/tooltip) instead of the enable CTA; ensure the checks use the existing
cloudDisabled, isConnected and isConnecting symbols so the disabled branch
short-circuits the disconnected branch for title, className, icon and span text.

---

Nitpick comments:
In `@frontend/src/components/Header.tsx`:
- Around line 169-183: Both Button components rendering the Plugins and Settings
icons (the ones using onClick handlers setPluginsOpen and setSettingsOpen) have
a no-op opacity transition because they set opacity-80 as both the base and
hover state; change the hover class to a stronger value (e.g.,
hover:opacity-100) to make the transition visible, or remove the
hover:opacity-80/transition-opacity classes if you intend static reduced
opacity. Update the Button className on the Plug and Settings Buttons
accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: eed58af2-10d3-4ded-a6ad-a415a2b4cb8f

📥 Commits

Reviewing files that changed from the base of the PR and between 4cba0a9 and ac2e76a.

📒 Files selected for processing (1)
  • frontend/src/components/Header.tsx

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 10, 2026

🚀 fal.ai Preview Deployment

App ID daydream/scope-pr-654--preview
WebSocket wss://fal.run/daydream/scope-pr-654--preview/ws
Commit 9f7cb3b

Testing

Connect to this preview deployment by running this on your branch:

uv run build && SCOPE_CLOUD_APP_ID="daydream/scope-pr-654--preview/ws" uv run daydream-scope

🧪 E2E tests will run automatically against this deployment.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 10, 2026

✅ E2E Tests passed

Status passed
fal App daydream/scope-pr-654--preview
Run View logs

Test Artifacts

Check the workflow run for screenshots.

@emranemran emranemran requested review from mjh1 and thomshutt March 10, 2026 18:37
Change disconnected state text from "Disconnected" to "Enable Remote
Inference" so new users understand the feature is available. Bump opacity
on all three header icons (cloud, plugins, settings) for better visibility.
Update e2e test selector to match new title.

Signed-off-by: emranemran <[email protected]>
@emranemran emranemran force-pushed the emran/cloud-ux-improvement branch from ac2e76a to 9f7cb3b Compare March 10, 2026 18:41
size="icon"
onClick={() => setPluginsOpen(true)}
className="hover:opacity-80 transition-opacity text-muted-foreground opacity-60 h-8 w-8"
className="hover:opacity-80 transition-opacity text-muted-foreground opacity-80 h-8 w-8"
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.

Doesn't this remove the hover effect since it now has the same opacity as the regular one?

@emranemran emranemran merged commit 6969d38 into main Mar 11, 2026
10 checks passed
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