35 lines
5.1 KiB
Markdown
35 lines
5.1 KiB
Markdown
# P7-09 — Settings, Connections and data lifecycle
|
||
|
||
Follow the exact [Phase 6 handoff](../../phase-6/p6-05/PHASE7_HANDOFF.md#migration-order-and-commit-boundaries) and [implementation plan](../../IMPLEMENTATION_PLAN.md). P7-08 is implemented **CONDITIONAL GO** and normally pushed as **`c5176e3251c869e13284b994b59b2f7aa9220eb1`**. Direct verification at **2026-10-17T02:03:53.815275 UTC** proves clean HEAD = origin = live development; local/origin/live main remains **`27657f31131cd95d42f0e1290853ec9c9b3959a4`**. The exact receipt is `.artifacts/phase7/p7-08/operations-push-receipt.json`.
|
||
|
||
## Approved boundaries and preservation
|
||
|
||
| Boundary | Existing owners / required preservation |
|
||
|---|---|
|
||
| Preferences and Connections | Existing Settings tabs/mobile selector/panel associations, parent Rules draft session, local theme/table preferences, account language owner, notification preference, Profile/security links and mailbox-provider owners |
|
||
| Data/privacy/plan/backup | Existing independent General subcards, privacy, usage/entitlement, import/export and backup/deletion owners; preserve formats, counts, recent-auth and server availability/admission |
|
||
|
||
An independently reviewable [OAuth sender repair](OAUTH_SENDER.md) precedes presentation because two live callback listeners accept uncorrelated messages. It hardens the existing client handshake; it does not add a phase, provider, backend protocol, grant or route. Preferences/Connections presentation follows its verified publication, then data/privacy/plan/backup. Do not redo accepted Settings navigation, Rules ownership or P7-01 security presentation.
|
||
|
||
Keep Rules' six fields, saved baseline, validation, submitted-snapshot acknowledgement, internal-tab draft retention and explicit discard. Notification preferences are a separate one-boolean account save scope; in-app reminders and email delivery remain distinct. Preserve local preferences versus server-owned settings, dirty retry/discard behavior, explicit writes and account/session disposal.
|
||
|
||
No billing, deletion, restore, provider sync/send/grant, worker/model or other withheld capability is activated. Actual provider interoperation and destructive operations retain separate evidence/authority requirements.
|
||
|
||
## Fresh entry evidence
|
||
|
||
Fresh frontend **23 cases / 3 suites PASS**, **2026-10-17 02:05:04.985979–02:05:19.337394 UTC**, `p709-entry-20261017T020504Z`: Settings14, Connections3 and job-correspondence Gmail import6. The contemporaneous 15-input snapshot `.artifacts/phase7/p7-09/entry/source.json` and `post.json` prove held bytes matching committed c5176e3 canonical source; its capture is not represented as occurring before the command started.
|
||
|
||
Fresh unchanged-binary backend **40/40 PASS**, **02:05:30.082119–02:05:33.187997 UTC**, `p709-oauth-entry-20261017T020530Z`, covers ExternalOrigin/Gmail/Microsoft controller cases using `--no-build`. This is finite existing server-contract evidence, not new tests, a Release rebuild, real OAuth or production acceptance. The [portable entry](evidence/entry.json) records raw reports, commands and source/runtime identities.
|
||
|
||
Entry inventories are **frontend 791/95, browser 323, backend 1,054**, derived from completed bounded additions. Latest whole frontend573/89, backend1,033 and sidecar49 remain inherited until P7-12. Do not substitute affected subsets for an integrated run.
|
||
|
||
## Findings to validate in the presentation boundaries
|
||
|
||
Notification reads depend on locale callbacks and can replace an unsaved choice; failed initial reads lack GET recovery, state-only saves permit duplicates, and late acknowledgements replace newer edits. Provider status failures currently resemble disconnection. Privacy/data lifecycle owners require truthful read/retry/pending states and disposal checks; partial import must report completed writes honestly without inventing transactions or resume semantics. These are bounded source findings, not completed repairs.
|
||
|
||
All **57 groups remain 56 PARTIAL / C11 DEFERRED**, with **33 current routes**. RD11 language, RD12 notification and RD13 Rules failures remain independently diagnosed; successful reruns do not close them. F20/RD21, other reliability/scaling debt, human screen-reader, physical touch/software keyboard, real zoom and production fonts/photos/print remain qualified. P5-13 is withheld; followMode is deferred. Production remains **NO-GO**, main is unchanged and Phase 8 implementation has not started.
|
||
|
||
The [separate sender repair](OAUTH_SENDER.md) now has final39/3, four type/lint/build gates and nine ordinary browser cases passing, including P2-D01. [Finite results](evidence/oauth-results.json) retain the actual REDs,39/3 final source, three new client-guard cases and all qualifications. Derived inventories become807/95 frontend and326 browser; backend1054 unchanged. Sender repair final hygiene/publication remain pending; preferences/Connections then data/privacy/plan/backup are still the two approved presentation boundaries.
|
||
|
||
**P7-09 acceptance: PENDING.** Each repair/presentation boundary needs meaningful regression, applicable native/visual evidence, preservation reconciliation, hygiene, commit and normal push/direct verification.
|