Skip to content

feat(cloud-frontend): implement interactive canvas Voice UX & default dashboard layout preference#8339

Open
Dexploarer wants to merge 6 commits into
developfrom
feat/canvas-ui-settings
Open

feat(cloud-frontend): implement interactive canvas Voice UX & default dashboard layout preference#8339
Dexploarer wants to merge 6 commits into
developfrom
feat/canvas-ui-settings

Conversation

@Dexploarer

Copy link
Copy Markdown
Collaborator

Walkthrough — Voice UX & Default UI Preference Layout

I have successfully implemented both the voice control system for the Interactive Canvas and the default dashboard interface toggle preference in the Eliza Cloud platform.


1. Default UI Interface & Layout Preference

Core Implementation

  • State & Persistence: Added defaultUiMode ('canvas' | 'classic') state and the action setDefaultUiMode(mode) in the Zustand store canvas-store.ts. This preference is persisted in the local storage config.
  • Settings tab: Added the Default interface configuration card inside the general settings page general-tab.tsx. Users can choose their startup layout using a drop-down selector.
  • Layout switcher: Integrated the conditional layout render inside the layout router App.tsx.
    • If canvasOpen is true, <CanvasLayout /> renders.
    • If canvasOpen is false, <DashboardLayout /> renders instead, unmounting the canvas to prevent page navigation from triggering unintended canvas events.
    • While in <DashboardLayout />, the floating assistant pill cloud-assistant-pill.tsx remains overlayed in the bottom-center of the viewport, so pressing cmd + k or clicking the orb seamlessly slides back into the Interactive Canvas.

2. Voice-Driven Canvas Interaction UX

Core Features

  • Unified Voice Hooks: Integrated useVoiceChat and useContinuousChat from @elizaos/ui/hooks with a stabilized React Ref (handleSendRef) to avoid stale closure state during voice/speech callbacks.
  • Dual-Mode UX State Flow:
    • Text Mode: Canvas is open with the text input bar expanded. A microphone button is available next to the close button to switch to voice mode.
    • Voice Mode: Input bar collapses into a floating circular orb (56x56 px). centring states like recording (Mic), thinking (Loader2), or speaking (Volume2 bounce animation). Real-time preview transcript is shown in a small card overlay.
  • TTS Responses: Automatically speaks out assistant responses on query execution success, along with helpful voice-guided prompts.

Verification & Build Quality

1. Build Verification

  • Verified compiling and typechecking of packages/ui package with zero TS errors:
    bunx tsc --noEmit -p tsconfig.json
  • Verified the build pipeline in packages/cloud-frontend builds and finishes with zero warnings or errors:
    bun run verify

2. Biome Formatting

  • Checked and formatted modified files to align with the Biome rules:
    bunx @biomejs/biome check --write --unsafe

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 486844e3-5ce7-46a9-a958-d8b6f24b9ee9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/canvas-ui-settings

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.

@github-actions github-actions Bot added the ui label Jun 8, 2026

@greptile-apps greptile-apps Bot left a comment

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.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@claude

claude Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

@greptile-apps greptile-apps Bot left a comment

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.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@claude

claude Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

@greptile-apps greptile-apps Bot left a comment

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.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@greptile-apps greptile-apps Bot left a comment

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.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@claude

claude Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Claude Code is working…

I'll analyze this and get back to you.

View job run

@claude

claude Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

Comment thread packages/cloud-frontend/src/components/canvas/canvas-layout.tsx Fixed
Comment thread packages/elizaos/templates/cloud-agent/src/index.ts Fixed
Dexploarer and others added 2 commits June 8, 2026 15:27
…tion or class'

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
…tion or class'

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

@greptile-apps greptile-apps Bot left a comment

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.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@greptile-apps greptile-apps Bot left a comment

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.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@claude

claude Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant