Skip to content

V0.2.9 评审:FAILED 状态闭环 + Discarding/P2-2/P3-1 + release v0.2.10 - #14

Merged
woner363 merged 2 commits into
mainfrom
fix/v029-failed-state-closure
Jul 8, 2026
Merged

V0.2.9 评审:FAILED 状态闭环 + Discarding/P2-2/P3-1 + release v0.2.10#14
woner363 merged 2 commits into
mainfrom
fix/v029-failed-state-closure

Conversation

@woner363

@woner363 woner363 commented Jul 8, 2026

Copy link
Copy Markdown
Owner

P1-1 FAILED 状态 UI 出口 + error 入库 + clearFailed;P2-1 Discarding 对话框禁用;P2-2 setRecognized 返回值检查;P3-1 删 GlobalScope + 3 个新测试。47 测试全过。详见 commit。

woner363 and others added 2 commits July 8, 2026 19:36
P1-1 FAILED 状态没有 UI 出口且失败原因不入库:
- DAO 新增 markFailedIf(带 expected state + 持久化 error);
- Repository.markFailed 改用 markFailedIf,error 真正写入 recognition_sessions.error;
- 新增 beginClearingFailed(FAILED -> DISCARDING CAS),供用户显式清理;
- RecognitionUiState.Failed 改为携带 session(含 imageUri);
- ViewModel.clearFailed():删自有图片 + markDiscarded + delete session;
- launchRecognition 在 Failed 状态拒绝新识别("请先清除上次失败的识别任务"),
  避免旧图片泄漏;
- discardPending 失败改 markFailed(不再 revertToAwaiting,语义更准确);
- UI 新增 FailedSessionCard(errorContainer 配色 + "清除本次任务"按钮),
  MainScreen 在 Failed 状态展示。

P2-1 Discarding 期间确认对话框仍可交互:
- pendingSession 不再把 Discarding 纳入(只 Awaiting/Saving 显示确认框);
- dismissEnabled 从 !isSaving 扩展为 !isTerminalizing(Saving || Discarding)。

P2-2 setRecognized 返回值被忽略:
- processRecognition 检查返回值,false 时 markFailed + Toast,不卡 Recognizing。

P3-1 测试 GlobalScope 泄漏:
- 删除 activateStateCollection()(uiState 已是 Eagerly,无需手动订阅);
- 新增 3 个测试:startup_recognizing_becomes_Failed / setRecognized_false_marks_Failed /
  clear_failed_deletes_image_and_returns_Ready;
- FakeSessions 支持 initial / failSetRecognized,markFailed/revertToAwaiting 真实模拟。

参考:V0.2.9_CODE_ISSUES_REPORT.md P1-1/P2-1/P2-2/P3-1

Co-Authored-By: Claude <noreply@anthropic.com>
- 收录 V0.2.9_CODE_ISSUES_REPORT.md;
- README 测试数 44 -> 47;
- versionCode=30 / versionName=0.2.10-debug。

Co-Authored-By: Claude <noreply@anthropic.com>
@woner363
woner363 merged commit 8cbf630 into main Jul 8, 2026
1 check passed
@woner363
woner363 deleted the fix/v029-failed-state-closure branch July 8, 2026 11:40
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.

1 participant