Objective
Make the app and widget status language calm, plain, and diagnosable so beta users understand whether data is available, close to limit, limited, stale, unknown, refreshing, or failed.
Finish Line
User-facing copy avoids scary/raw technical messages in primary UI, while diagnostics preserve enough detail to debug provider failures and runtime issues.
Current Status
State: Active
Next action: Audit visible status strings across app, widget, provider rows, and settings.
Blocked by: None.
Last verified: 2026-05-13 burn pace reset-boundary behavior changed to measuring burn instead of false over pace.
Scope
- In: user-facing status copy, forecast/burn language, diagnostics surface, last refresh health, and provider failure wording.
- Out: detailed charting/history and notifications.
Acceptance Criteria
Relationships
Parent: #76
Related: #65
Validation
Use UI review/screenshots where possible plus focused tests for forecast/status copy.
Decisions
- Prefer calm uncertainty over false precision.
- Keep raw provider details behind diagnostics/troubleshooting.
Open Questions
- Should diagnostics live in Settings, provider detail, or a dedicated Troubleshooting page for beta?
Objective
Make the app and widget status language calm, plain, and diagnosable so beta users understand whether data is available, close to limit, limited, stale, unknown, refreshing, or failed.
Finish Line
User-facing copy avoids scary/raw technical messages in primary UI, while diagnostics preserve enough detail to debug provider failures and runtime issues.
Current Status
State: Active
Next action: Audit visible status strings across app, widget, provider rows, and settings.
Blocked by: None.
Last verified: 2026-05-13 burn pace reset-boundary behavior changed to measuring burn instead of false over pace.
Scope
Acceptance Criteria
Relationships
Parent: #76
Related: #65
Validation
Use UI review/screenshots where possible plus focused tests for forecast/status copy.
Decisions
Open Questions