Skip to content

feat(app): prototype flows for onboarding, care consultation, and clean architecture (#28, #27) - #38

Merged
ekyaaa merged 8 commits into
mainfrom
feat/28-eva-mobile-client
Nov 8, 2026
Merged

ekyaaa merged 8 commits into
mainfrom
feat/28-eva-mobile-client

Conversation

@ekyaaa

@ekyaaa ekyaaa commented Nov 8, 2026

Copy link
Copy Markdown
Member

Summary

This Pull Request delivers prototype flows for onboarding, telehealth consultation, and coin wallet in Eva Mobile (Issue #28), along with backend clean code architecture modularization (Issue #27).

Key Highlights

  1. Eva Mobile Client (feat(app): prototype flows for onboarding, consultation, coin-based AI call, and discord community #28):
    • Telehealth Care Consultation: Full consultation history, scheduling, session logs, psychologist detail screen, mock video call screen, certificate carousel, dense review tags, and psychologist role badges.
    • Coin Management: Coin package entities, purchase flow, and real-time wallet balance provider.
    • Tutorial & Onboarding: Interactive spotlight coachmark overlay and step-by-step guidance card leading users into AI voice call.
    • UI & Widget Polish: Standardized AppSnackBar, CustomButton, GlassCard, and unified theme tokens.
  2. AI Voice Call Resiliency:
    • Automatic Indonesian voice fallback (id-ID-GadisNeural) in EdgeTTSProvider when non-Edge voice IDs are provided.
  3. Backend Clean Architecture Refactoring (refactor(backend): clean code architecture refactoring and production server deployment #27):
    • Thin route handlers (3-5 lines per endpoint).
    • Domain-modularized services (app/services/{module}/) and schemas (app/schemas/{module}/).
    • Centralized dependency injection (app/api/dependencies.py).
  4. Monorepo & Workflow Tooling:
    • Standardized Makefile commands for hybrid and cloud mobile execution.
    • Synchronized agentic task-state tracking.

Linked Issues

Evidence & Verification

  • Mobile unit tests: flutter test test/widgets/app_snack_bar_test.dart passed cleanly.
  • Backend compilation: python -m compileall apps/backend/api/app packages/ai/ passed with 0 errors.
  • Working tree is clean and synchronized with latest origin/main.

…st suite

- Track entire apps/eva_mobile/lib/ codebase under Git version control.
- Ensure root .gitignore excludes !apps/eva_mobile/lib/ from repository ignore rules.
- Structure client around Clean Architecture with domain entities, abstract repositories, and dual-source data layer (Mock vs Remote API).
- Implement feature modules: auth, care, chat, dass, diary, emergency, home, monitoring, recommendations, tutorial, and voice_call.
- Integrate Riverpod state management, centralized routing in AppRouter with custom route transitions, and responsive mobile design system (GlassCard, AppBackButton, AppSnackBar).
- Align unit, screen, and widget test suites in apps/eva_mobile/test/ with current feature provider contracts.

Closes #28
…ation widgets

- Break down monolithic screens into modular domain presentation widgets:
  - Diary: extract fallback fixture, DiaryInsightCard, DiaryKeyEventsCard, DiaryReflectionCard, DiaryEmotionDistributionCard, and DiaryTranscriptSection (1,647 -> 538 lines).
  - DASS-21: extract DassSubscaleInfoSheet, DassSubscalesCard, DassQuestionCard, and DassFloatingSaveBar (1,641 -> 520 lines).
  - Home: extract HomeEvaInsightCard, HomeQuickActions, HomeCrisisBanner, HomeDailyProgressCard, and HomeRecommendationsSection (1,629 -> 590 lines).
- Remove double-spacing boilerplate and inline styles across presentation screens.
- Strengthen InteractiveSpotlightOverlay hit testing to allow direct tap-through via cutout hole and prevent pumpAndSettle timeout.
- Align PsychologistEntity psychiatrist detection, CommunityStatusModel copyWith, and full Flutter test suite (99/99 tests passed, 0 analyzer issues).

Related: #28
…ject chat repository

- Decouple VoiceSessionDetailScreen from legacy VoiceCallRepository using Riverpod chatRepositoryProvider
- Delete obsolete lib/data/repositories/voice_call_repository.dart and wipe lib/data
- Delete unused services: audio_recorder_service, stt_service, vad_audio_service
- Delete obsolete widgets: emergency_contact_bottom_sheet, mood_checkin_bottom_sheet, and luna_loading_orb
- Standardize AppConfig imports across all features to package:eva_mobile/config/app_config.dart
- Align residual branding references from Luna to Eva in tutorial entities, assets, and tests
- All 98 tests passing, 0 analyzer issues
@vercel

vercel Bot commented Nov 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
eva-web Ready Ready Preview Nov 8, 2026 2:28am UTC

@ekyaaa
ekyaaa merged commit c0d4a33 into main Nov 8, 2026
4 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

1 participant