From 2e8348826f3984ac35ce49fd8cf7d423a09d5852 Mon Sep 17 00:00:00 2001 From: Joshua Date: Tue, 17 Feb 2026 12:15:41 -0800 Subject: [PATCH] Align web repo to app-channel member communication --- README.md | 4 ++ docs/app-channel-spec.md | 43 ++++++++++++++++++++ docs/implementation-mapping.md | 2 +- docs/legal-copy-matrix.md | 2 +- docs/localization-qa-matrix.md | 2 +- docs/platform-spec-alignment-review.md | 2 +- docs/security-hardening-checklist.md | 2 +- public/downloads/android/index.html | 54 ++++++++++++++++++++++++++ public/downloads/desktop/index.html | 54 ++++++++++++++++++++++++++ public/downloads/ios/index.html | 54 ++++++++++++++++++++++++++ public/index.html | 6 +-- translations/ar.json | 5 --- translations/de.json | 5 --- translations/en.json | 5 --- translations/es.json | 5 --- translations/fr.json | 5 --- translations/he.json | 5 --- translations/hi.json | 5 --- translations/ja.json | 5 --- translations/ko.json | 5 --- translations/pt.json | 5 --- translations/ru.json | 5 --- translations/zh.json | 5 --- 23 files changed, 217 insertions(+), 68 deletions(-) create mode 100644 docs/app-channel-spec.md create mode 100644 public/downloads/android/index.html create mode 100644 public/downloads/desktop/index.html create mode 100644 public/downloads/ios/index.html diff --git a/README.md b/README.md index 8f265a9..8e015bc 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,9 @@ Public-facing EDUT web surfaces and deployment specs. ```text public/ index.html + downloads/desktop/index.html + downloads/ios/index.html + downloads/android/index.html store/index.html store/offers.json trust/index.html @@ -45,6 +48,7 @@ docs/ migration-policy-v1-to-v2.md issuer-onboarding-pack.md release-gate.md + app-channel-spec.md review-notes.md platform-spec-alignment-review.md contracts/ diff --git a/docs/app-channel-spec.md b/docs/app-channel-spec.md new file mode 100644 index 0000000..b74f9e4 --- /dev/null +++ b/docs/app-channel-spec.md @@ -0,0 +1,43 @@ +# App Channel Communication Spec + +## Principle + +Member communication is delivered through EDUT app channels after wallet sign-in. + +## Why + +1. Avoids email deliverability and spam filtering constraints. +2. Avoids SMS compliance overhead. +3. Keeps communication tied to wallet-authenticated entitlements. + +## Channel Model + +1. Membership mint unlocks app download. +2. App sign-in with wallet activates member channel. +3. Push/in-app notifications are scoped to member ownership state. +4. Web never becomes a long-term broadcast channel once membership is active. + +## Notification Classes + +1. Offer availability relevant to owned memberships/entitlements. +2. License activation and entitlement state updates. +3. Platform updates and required migration actions. +4. Publisher updates for offers a member owns. +5. Membership policy changes that affect purchase or activation behavior. + +## Gate Rule + +No active membership -> no app access channel. + +## Deterministic Delivery Rules + +1. Notification eligibility is computed from wallet-authenticated entitlement state. +2. Delivery payloads must include deterministic event ids for dedupe and audit. +3. Membership revocation/suspension immediately suppresses member-channel delivery. +4. No marketing list fan-out disconnected from entitlement state. + +## Non-Goals + +1. Marketing blast lists detached from wallet state. +2. SMS-first member notification flows. +3. Email-first member notification dependency. diff --git a/docs/implementation-mapping.md b/docs/implementation-mapping.md index ff2536b..752dd80 100644 --- a/docs/implementation-mapping.md +++ b/docs/implementation-mapping.md @@ -8,7 +8,7 @@ ## Backend Responsibilities -1. Intent/verify/quote/confirm/notify endpoints. +1. Intent/verify/quote/confirm/status endpoints. 2. Deterministic state transitions and persistence. 3. Chain verification and policy hash enforcement. diff --git a/docs/legal-copy-matrix.md b/docs/legal-copy-matrix.md index 1646b96..4906146 100644 --- a/docs/legal-copy-matrix.md +++ b/docs/legal-copy-matrix.md @@ -7,7 +7,7 @@ This matrix prevents drift between public surfaces and legal posture. | Landing (`public/index.html`) | Wallet signature + paid membership unlocks access | Investment, yield, appreciation claims | | Store (`public/store/index.html`) | Membership required for purchasing offers | "Membership includes all products forever" | | Terms (`public/terms/index.html`) | Membership is utility access; licenses separate | Equity/ownership implications | -| Privacy (`public/privacy/index.html`) | Wallet/signature processing and optional notify email | Hidden collection claims inconsistent with implementation | +| Privacy (`public/privacy/index.html`) | Wallet/signature processing and app-channel member communication model | Hidden collection claims inconsistent with implementation | | Vision/spec docs | Deterministic governance and fail-closed controls | Speculative financial framing | ## Hard Rules diff --git a/docs/localization-qa-matrix.md b/docs/localization-qa-matrix.md index b2844c5..78a3fa4 100644 --- a/docs/localization-qa-matrix.md +++ b/docs/localization-qa-matrix.md @@ -24,7 +24,7 @@ Validate membership-flow strings and legal-critical labels across all locale bun 1. core identity support keys (`definition`, `descriptor`, `acknowledged`, `privacy`, `terms`) 2. wallet flow keys (`continue_label`, `wallet_intro`, `wallet_connecting`, `wallet_signing`, `wallet_verifying`, `wallet_failed`) 3. membership flow keys (`membership_quoting`, `membership_minting`, `membership_confirming`, `membership_active`) -4. notify keys (`notify_me`, `notify_placeholder`, `notify_submit`, `notify_saved`, `notify_failed`) +4. delivery keys (`download_heading`, `download_desktop`, `download_ios`, `download_android`, `app_notifications_note`) ## QA Checks diff --git a/docs/platform-spec-alignment-review.md b/docs/platform-spec-alignment-review.md index ca58aeb..4e57125 100644 --- a/docs/platform-spec-alignment-review.md +++ b/docs/platform-spec-alignment-review.md @@ -28,7 +28,7 @@ The revised web copy is aligned with core platform direction on: - Revised copy avoids hard claims that can conflict with evolving licensing rails. 3. Secret system spec correctness fixed. -- Mailgun signing verification now references signing key. +- Legacy email/SMS designation path removed from active flow. - Failure handling now avoids silent acceptance on processing failure. ## Deliberate Neutrality Choices diff --git a/docs/security-hardening-checklist.md b/docs/security-hardening-checklist.md index 6287a84..4f97769 100644 --- a/docs/security-hardening-checklist.md +++ b/docs/security-hardening-checklist.md @@ -19,7 +19,7 @@ ## API Controls -1. Rate limits on intent, verify, quote, confirm, notify. +1. Rate limits on intent, verify, quote, confirm, and status. 2. Request size limits. 3. Structured error responses without sensitive internals. 4. Correlation ID logging for all transitions. diff --git a/public/downloads/android/index.html b/public/downloads/android/index.html new file mode 100644 index 0000000..a2f4d8e --- /dev/null +++ b/public/downloads/android/index.html @@ -0,0 +1,54 @@ + + + + + +EDUT Platform - Android + + + + +
+

back

+

EDUT Platform Android

+

membership channel acknowledged

+
+

This endpoint is bound to wallet-authenticated membership access.

+

When Android distribution is staged for your designation era, this channel delivers current install instructions.

+

Member updates and entitlement notices are delivered inside the EDUT app after wallet sign-in.

+
+
+ + diff --git a/public/downloads/desktop/index.html b/public/downloads/desktop/index.html new file mode 100644 index 0000000..522ed18 --- /dev/null +++ b/public/downloads/desktop/index.html @@ -0,0 +1,54 @@ + + + + + +EDUT Platform - Desktop + + + + +
+

back

+

EDUT Platform Desktop

+

membership channel acknowledged

+
+

This endpoint is bound to wallet-authenticated membership access.

+

When desktop installers are staged for your designation era, this channel delivers them directly.

+

Member updates and entitlement notices are delivered inside the EDUT app after wallet sign-in.

+
+
+ + diff --git a/public/downloads/ios/index.html b/public/downloads/ios/index.html new file mode 100644 index 0000000..9d4544d --- /dev/null +++ b/public/downloads/ios/index.html @@ -0,0 +1,54 @@ + + + + + +EDUT Platform - iOS + + + + +
+

back

+

EDUT Platform iOS

+

membership channel acknowledged

+
+

This endpoint is bound to wallet-authenticated membership access.

+

When iOS distribution is staged for your designation era, this channel delivers current install instructions.

+

Member updates and entitlement notices are delivered inside the EDUT app after wallet sign-in.

+
+
+ + diff --git a/public/index.html b/public/index.html index f455e8d..78fa822 100644 --- a/public/index.html +++ b/public/index.html @@ -251,7 +251,7 @@ color: #7a3a3a; } - .notify-panel { + .delivery-panel { display: flex; flex-direction: column; gap: 10px; @@ -259,7 +259,7 @@ opacity: 0; transition: opacity 500ms ease; } - .notify-panel.visible { + .delivery-panel.visible { opacity: 1; } @@ -415,7 +415,7 @@
-
+

download your platform