Repository navigation
feat(ios): include statistics in Cloud terms and respect local use - #87
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: d658ee0ebf
ℹ️ 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".
| } description: { | ||
| Text(CloudWords.text("This phone has stopped using FTW Cloud. Your box keeps working locally.")) | ||
| } actions: { | ||
| Button(CloudWords.text("Review Cloud terms")) { consent.review(); app.resumeCloud() } |
There was a problem hiding this comment.
Keep Cloud paused while reviewing terms
When a paused user taps “Review Cloud terms,” resumeCloud() immediately clears the persisted pause and opens a Cloud connection before the user accepts anything. If they only intended to read the terms—or the app is terminated before they choose “Use the box locally” again—the next launch reconnects automatically despite their prior local-only choice. Present the review while remaining paused and resume Cloud only after explicit acceptance.
Useful? React with 👍 / 👎.
| content | ||
| .sheet(isPresented: Binding(get: { !app.needsPairing && consent.shouldAsk(app.site) }, set: { _ in })) { | ||
| Group { | ||
| if app.cloudPaused { |
There was a problem hiding this comment.
Preserve access to other homes while one home is paused
For a phone paired with multiple homes, pausing the current home replaces the entire HomeView, including the title menu that contains the home switcher. The only remaining action resumes Cloud for the paused home, so users cannot open another unpaused home without first undoing their local-only choice. Keep the app shell or another home-selection control available while rendering the paused state.
Useful? React with 👍 / 👎.
The new FTW Cloud terms include statistics for every Cloud user. Remove the separate statistics switch and send one owner grant with the exact Cloud policy. Show fields, retention, group rules, Sourceful's access and deletion in Swedish and English. Earlier answers do not accept this version; each home requires an explicit answer, and opening the screen cannot auto-grant another home.
Choosing local use pauses Cloud on this phone, closes its connections and keeps its keys and cache. Reading the terms keeps that pause; only the explicit accept action may reconnect and finish the exact policy at the box. Another paired home remains selectable while this home is paused. The pause survives restart, foreground and network recovery. Owners can end the whole Cloud service for a home; that stops app and assistant remote access and requests deletion. Local-only statistics remain a separate Yes/No on the box, without remote access. The app waits for a compatible box and never claims that saving terms starts hourly collection. Collection still needs the reviewed C8 decision and service policy activation.
Paired with srcfl/ftw#1700, srcfl/ftw-cloud#32 and srcfl/ftw-web#23. Version 0.4.10. No App Store release, real-home consent or collection activation has occurred.
Validation: all 802 Swift package tests pass (536 FTWKit, 266 shared). iPhone 17 Pro simulator build passes. Checked the actual Swedish and English views, dark mode and maximum text. At large text sizes the actions scroll with the terms so both choices remain readable. New regressions cover one bundled grant, older-policy rejection, per-home choices, guest limits, failure persistence and no new socket after declining and restarting. The simulator uses only the local demo and sends no household reports. Existing chart actor-isolation warnings remain outside this change. Final simulator review also confirms that reading terms keeps Cloud paused, declining returns to the paused screen, and the home menu remains available. The empty local demo offers pairing there; tests cover opening another stored home without clearing the first home's pause.