- 删除 VerificationCodeParser 及相关测试,短信捕获和推送不再解析验证码 - 飞书推送改为只发送短信原文,时间戳格式化为可读日期 - 移除主界面"只推送验证码"开关和"调试时上传完整短信正文"选项 - 移除"保存轮询间隔"按钮,开启轮询时自动保存间隔(未输入默认1秒) - 按钮文字从"开始1秒轮询验证码"改为"开始短信轮询" - 删除"打印最近30条短信"功能及相关 SmsInboxReader.logRecentMessages - SmsInboxReader 用 RecentSmsResult 替换 RecentCodeResult - FeishuWebhookConfigStore.Config 移除 filterVerificationCode/sendFullBodyDebug - 修复代码缩进不一致问题
46 lines
2.4 KiB
Markdown
46 lines
2.4 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Display SMS permission state
|
|
The app SHALL display whether the SMS receive permission is granted, denied, or blocked by system settings.
|
|
|
|
#### Scenario: Permission is granted
|
|
- **WHEN** `RECEIVE_SMS` permission is granted
|
|
- **THEN** the app MUST show that the primary SMS capture path can be attempted
|
|
|
|
#### Scenario: Permission is denied
|
|
- **WHEN** `RECEIVE_SMS` permission is denied
|
|
- **THEN** the app MUST show that incoming SMS cannot be captured through the primary path until permission is granted
|
|
|
|
### Requirement: Explain capture path status
|
|
The app SHALL expose diagnostic state for each supported SMS capture path.
|
|
|
|
#### Scenario: Primary path receives an SMS
|
|
- **WHEN** the system broadcast path receives and processes an SMS
|
|
- **THEN** the app MUST show the latest receive time, source path, sender summary, and SMS body or body summary
|
|
|
|
#### Scenario: Primary path fails before body capture completes
|
|
- **WHEN** the app cannot receive or process an SMS through the primary path
|
|
- **THEN** the app MUST show a specific reason such as missing permission, no broadcast received, empty body, or body-read failure
|
|
|
|
#### Scenario: Optional Google API path fails
|
|
- **WHEN** SMS User Consent or SMS Retriever cannot complete
|
|
- **THEN** the app MUST show whether the failure came from unavailable Google Play services, timeout, user cancellation, or unmatched SMS format
|
|
|
|
### Requirement: Avoid unnecessary SMS content retention
|
|
The app SHALL minimize retention and logging of full SMS content.
|
|
|
|
#### Scenario: Recent SMS result is stored for display
|
|
- **WHEN** the app stores the latest SMS capture result
|
|
- **THEN** the app MUST keep retention limited to the recent result, sender summary, timestamp, source, and the SMS body needed for local display or diagnostics
|
|
|
|
#### Scenario: Full body visibility is shown in diagnostics
|
|
- **WHEN** the app shows full SMS content for local diagnostics
|
|
- **THEN** the app MUST keep that behavior local to the device and clearly separate it from broader logging or export behavior
|
|
|
|
### Requirement: Provide recovery actions for permission problems
|
|
The app SHALL provide a clear recovery path when Android or HyperOS blocks SMS capture permissions.
|
|
|
|
#### Scenario: Permission cannot be granted in normal prompt
|
|
- **WHEN** the runtime permission prompt does not grant usable SMS access
|
|
- **THEN** the app MUST provide an action to open the system application details or permission settings page
|