Add privacy-safe sharing and report Shortcut - #9
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 042b1774d4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let requestedMonth = MonthKey(month ?? now, calendar: .hourleaf) | ||
| let draft = ReportReadiness.draft(for: requestedMonth, in: before) |
There was a problem hiding this comment.
Reject future months before formatting reports
When the Shortcut supplies a date after the current month, ReportReadiness.draft still calculates a projection and the intent returns it with the success dialog, potentially presenting carry-forward or zero totals as a completed report for a period that has not occurred. The normal Progress flow prevents navigation beyond the current month (ProgressScreen.swift:127) and the persisted report lifecycle rejects current or future months (LedgerRepository.swift:882-887), so this path should validate requestedMonth against now before returning report text.
Useful? React with 👍 / 👎.
Outcome\n- Adds a read-only monthly report Shortcut that returns localized report text without mutating the ledger.\n- Adds localized Share Hourleaf and Rate Hourleaf actions.\n- Requests a native App Store review only after a successfully marked sent report, at most once per app version.\n- Routes the in-app guide correctly for English, Russian, and Ukrainian.\n- Updates the release guard to the intentional four iPhone App Shortcuts.\n\n## Verification\n- AppIntentTests: 29/29 passed\n- Localized accessibility UI test: EN/RU/UK passed\n- release-readiness guard and its self-test passed\n- passed\n\nPhysical-device acceptance and App Store upload remain separate gates under #3.