Skip to content

feat(assistant): refresh continuous-call UI with live bubbles - #311

Open
gac0812 wants to merge 3 commits into
1024XEngineer:mainfrom
gac0812:feat/continuous-voice-ui
Open

feat(assistant): refresh continuous-call UI with live bubbles#311
gac0812 wants to merge 3 commits into
1024XEngineer:mainfrom
gac0812:feat/continuous-voice-ui

Conversation

@gac0812

@gac0812 gac0812 commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 长对话(免提)全屏层改成气泡对白在上、声纹球在下;用户句右气泡、助手句左气泡。
  • 超出一屏后列表可以上滑回看;短列表仍贴在声纹球上方。
  • 去掉「打断当前对话」按钮;左上角只收起,底部红色「结束对话」才挂断。
  • 不包含登录、日历首页、按住说话和日程写入等非长对话 UI 改动。
  • 阅读时是否贴底、以及「查看最新」入口不在本次范围,见 feat(ui): 长对话回看时保持阅读位置 #313

Closes #309

Test plan

  • 点底部电话进入长对话:对白在上、声纹球在下
  • 用户句右气泡、助手句左气泡;正在说的一句可带波形
  • 本通多轮超出一屏可上滑回看
  • 左上角收起不挂断;点圆圈暂停/继续;「结束对话」挂断
  • 没有「打断当前对话」按钮

Verification

cd frontend
npx jest --runInBand tests/unit/features/assistant/presentation/VoiceCallScreen.test.tsx tests/unit/features/assistant/presentation/usePinnedTranscriptScroll.test.ts tests/unit/features/assistant/presentation/useAssistantConversation.test.tsx tests/unit/features/assistant/presentation/AssistantVoiceOverlay.test.tsx tests/unit/features/assistant/application/AssistantContinuousConversationService.test.ts tests/unit/features/assistant/application/AssistantConversationService.test.ts tests/unit/screens/HomeScreen.test.tsx

本地结果:Test Suites: 7 passedTests: 80 passed

覆盖要点:

  • 气泡对白、收起/挂断/暂停、声纹球音量与跳动(iOS / Android / Web)
  • 超长列表可滚动、短列表贴底
  • 本通 getMessages() 追加用户句/助手句,流式 pending,新通话清空
  • 按住说话 getMessages() 仍为空数组

设计对照

截图由作者提供,不进源码树,只作为 Review 附件:

改前(状态文案列表 +「打断当前对话」):

改前

改后(气泡对白 + 底部声纹球):

改后

Replace the status-list hands-free screen with a GPT Voice-style layout: chat bubbles above a voiceprint orb, and keep the current call readable while scrolling up.
@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.03175% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...lication/AssistantContinuousConversationService.ts 92.30% 2 Missing ⚠️
...eatures/assistant/presentation/VoiceCallScreen.tsx 97.01% 2 Missing ⚠️
...s/assistant/presentation/AssistantVoiceOverlay.tsx 80.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@fennoai fennoai 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.

Reviewed the fixed 612955df0cd65f54006952918c98159a609a4799...f224033191998f83120b736f07970ed95e98888e diff across the continuous conversation service, application port/domain changes, overlay, voice-call screen, pinned transcript scrolling, and associated tests. I found no PR-introduced correctness, security, performance, or maintainability issue that meets the reporting threshold.

Verification: git diff --check passes. The requested Jest command could not run in this workspace because the local frontend/node_modules does not contain the jest-expo preset; npm exec also resolved a standalone Jest version without the repository dependencies, so no test result is inferred from that attempt.

Keep the live transcript still during a scroll gesture, then snap back to the latest message when the user stops interacting.
Leave follow-latest / jump-to-latest scroll behavior for a separate change so this PR only ships the bubble layout.
@gac0812

gac0812 commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

/android-preview

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.

feat(ui): 长对话模式界面更新

2 participants