[hotfix] #342 v0.4.2 — ChatScreen SafeArea + LLM 에러 진단 노출

Fix
- ChatScreen body 를 SafeArea(top: false) 로 감쌈. Android edge-to-edge
  모드에서 시스템 nav bar 가 입력창을 덮던 문제 해결.

Dev (#342)
- userTurn catch 블록이 e.toString() + stack trace 를 error 상태에 저장.
- 빨간 에러 컨테이너를 SingleChildScrollView + SelectableText (monospace)
  + 최대 화면 1/3 높이 제약. 스크롤 + 복사 가능. release 빌드에서도
  full stack 노출 (#342 종료 후 follow-up 으로 좁힘).

테스트: chat_session_controller_test 8/8 통과.
APK: app-release.apk 301.0MB SHA 02a5d1c8.

Refs #342
This commit is contained in:
2026-06-15 14:30:21 +09:00
parent 94a9cd474b
commit 3b8ea95aa6
4 changed files with 38 additions and 11 deletions

View File

@@ -206,12 +206,16 @@ class ChatSessionController extends StateNotifier<ChatSessionState> {
clearStreamingText: true,
error: '도구 호출 루프가 너무 길어 중단했습니다.',
);
} catch (e) {
} catch (e, st) {
if (!mounted) return;
// 개발 단계 (#342) — 실 단말 진단을 위해 release 빌드에서도 full
// message + stack 노출. 사용자 친화 메시지로 다시 좁히는 작업은
// #342 종료 후 follow-up.
final detail = 'LLM 응답 실패: ${e.runtimeType}\n$e\n\n--- STACK ---\n$st';
state = state.copyWith(
isStreaming: false,
clearStreamingText: true,
error: 'LLM 응답 실패: ${e.runtimeType}',
error: detail,
);
}
}