Phase 3.2 docs + Phase 3.1 testing fixes

- Add phase3.2.md requirement: overlay UX, mitra activity log
- Add phase3.2-plan.md implementation plan
- Fix stale request validation: add GET /:sessionId/status endpoint
- Fix notification tap flow: setIncomingFromNotification + onChatRequestTapped
- IncomingRequestSheet shows stale message instead of auto-dismiss
- Home screen validates on resume, shows immediately on fresh WS

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-09 22:09:25 +08:00
parent e3da863f3c
commit 4158fb9432
7 changed files with 427 additions and 13 deletions

View File

@@ -5,6 +5,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'core/api/api_client_provider.dart';
import 'core/auth/auth_notifier.dart';
import 'core/status/status_notifier.dart';
import 'core/chat/chat_request_notifier.dart';
import 'core/notifications/notification_service.dart';
import 'firebase_options.dart';
import 'router.dart';
@@ -78,6 +79,9 @@ class _AppState extends ConsumerState<App> with WidgetsBindingObserver {
final router = ref.watch(routerProvider);
NotificationService.initialize(router);
NotificationService.onChatRequestTapped = (sessionId) {
ref.read(chatRequestProvider.notifier).setIncomingFromNotification(sessionId);
};
return MaterialApp.router(
title: 'Halo Bestie Mitra',