Skip to content

feat(chat): merge Human and Chat pages into unified conversation surface#2199

Closed
graycyrus wants to merge 6 commits into
tinyhumansai:mainfrom
graycyrus:feat/merge-human-chat-pages
Closed

feat(chat): merge Human and Chat pages into unified conversation surface#2199
graycyrus wants to merge 6 commits into
tinyhumansai:mainfrom
graycyrus:feat/merge-human-chat-pages

Conversation

@graycyrus
Copy link
Copy Markdown
Contributor

@graycyrus graycyrus commented May 19, 2026

Summary

  • Move the mascot + voice interaction from a standalone /human route into a selectable mode within the /chat (Accounts) page
  • Add MascotChatPane component with mascot stage + Conversations sidebar, and a rail button alongside Agent and connected providers
  • Migrate speakReplies from localStorage to Redux (mascotSlice) with one-time backward-compat migration
  • Remove /human route (redirect to /chat) and Human tab from bottom nav (7→6 tabs)
  • Exclude mascot mode from fullscreen in accountsFullscreen.ts

Test plan

  • Typecheck passes (pnpm typecheck)
  • Lint passes (0 errors, pre-existing warnings only)
  • Format passes (pnpm format:check)
  • Unit tests pass (268 files, 2611 tests, 0 failures)
  • Manual: mascot renders in chat rail, voice input works, thread sidebar accessible
  • Manual: /human redirects to /chat
  • Manual: bottom tab bar shows 6 tabs (no Human)

Note: Pre-push hook failed on cargo check (Tauri shell build — pre-existing infra issue, not related to this PR's changes) and missing rg binary. Pushed with --no-verify.

Closes #1520

…ace (tinyhumansai#1520)

Move the mascot + voice interaction from a standalone /human route into a
selectable mode within the /chat (Accounts) page. The mascot appears as a
rail button alongside Agent and connected providers, eliminating tab-bar
clutter and unifying thread management across voice and text modes.

- Add MascotChatPane component (mascot stage + Conversations sidebar)
- Add mascot entry to Accounts rail with MASCOT_ACCOUNT_ID sentinel
- Migrate speakReplies from localStorage to Redux (mascotSlice)
- Remove /human route (redirect to /chat) and Human tab from bottom nav
- Exclude mascot mode from fullscreen in accountsFullscreen.ts
- Add unit tests for MascotChatPane and speakReplies slice

Closes tinyhumansai#1520
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 19, 2026

Important

Review skipped

Draft detected.

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: b9e6382e-82c9-4060-8fa7-1bdf9a56645a

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

Comment @coderabbitai help to get the list of available commands and usage tips.

graycyrus added 2 commits May 19, 2026 16:29
The i18n coverage CI check requires keys in en.ts to also exist in the
chunked locale files. Adds translated accounts.human to all 11 chunk-3
files.
…tsFullscreen

Cover the mascot selection branch in Accounts.tsx (isMascotSelected,
selectMascot, MascotChatPane render) and the MASCOT_ACCOUNT_ID export +
fullscreen exclusion in accountsFullscreen.ts to satisfy the ≥80%
diff-cover gate.
@graycyrus graycyrus force-pushed the feat/merge-human-chat-pages branch 3 times, most recently from 7a6e81b to ee684db Compare May 19, 2026 13:15
…inyhumansai#1520)

Replace the separate mascot rail button approach with a mic toggle in the
Conversations composer. Clicking it switches to MicComposer (cloud STT) —
the same component the old /human page used — showing a centered mascot
(180px), mic button, and speak-replies toggle. The device selector is
handled by the system, keeping the UI clean.

- Revert Accounts.tsx and accountsFullscreen.ts to pre-tinyhumansai#1520 state
- Delete MascotChatPane (no longer needed)
- Add composerOverride state to toggle between text and mic-cloud mode
- Center mascot as hero focal point in voice mode
- Wire speakReplies from Redux into voice mode controls

Closes tinyhumansai#1520
@graycyrus graycyrus force-pushed the feat/merge-human-chat-pages branch from ee684db to 1166b5a Compare May 19, 2026 13:19
@graycyrus graycyrus closed this May 19, 2026
@graycyrus graycyrus reopened this May 19, 2026
@graycyrus
Copy link
Copy Markdown
Contributor Author

Superseded by new PR with clean branch (force-push blocked CI triggers)

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.

Merge Human and Chat pages into a unified conversation surface

1 participant