Skip to content

v1.5.0: harden private context and verified email delivery - #11

Closed
Alex0158 wants to merge 3 commits into
mainfrom
codex/production-email-delivery-p0
Closed

v1.5.0: harden private context and verified email delivery#11
Alex0158 wants to merge 3 commits into
mainfrom
codex/production-email-delivery-p0

Conversation

@Alex0158

@Alex0158 Alex0158 commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • hard-off private-derived controls in shared/formal mediation until per-owner compiler and consent exist; keep formal shared output on evidence-only Decision Core
  • revalidate AI stream participant and exact-scope entitlement for every payload
  • replace plaintext OTP flow with HMAC challenges, provider-accepted delivery, one-time registration proof, verified-user creation, legacy unverified-account recovery, and CITEXT email safety
  • redesign Web/App registration around the same server-timed proof-first flow and add accessible recovery UI
  • fail closed on Production SMTP startup/readiness, redact email/OTP/proof/JWT logs, add authenticated TLS CI sink and mandatory provider canary evidence

Verification

  • Backend: build + lint; 200 passed suites / 2470 passed tests (2 suites and 39 tests skipped)
  • Web: build + lint; 179 files / 2018 tests
  • Admin: build + lint; 16 files / 52 tests
  • App: typecheck and contract checks; 36 suites / 214 tests
  • API client: 6 suites / 40 tests
  • migration/release/redaction focused: 7 suites / 71 tests
  • email release contract: 9 / 9
  • backend npm audit: 0 critical/high/moderate; 1 low transitive dev-tool advisory
  • GitHub CI: 7 / 7 passed on run 29260520865
  • docs:check and docs:audit:dry-run:current passed
  • fresh PostgreSQL migrations, CITEXT compatibility, production-like true-service registration/claim smoke, and browser registration flow passed locally

Production stop condition

Do not merge or deploy until Railway Production has all required values: EMAIL_DELIVERY_MODE=smtp, EMAIL_FROM, EMAIL_OTP_PEPPER, SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_SECURE or SMTP_REQUIRE_TLS, and EMAIL_CANARY_RECIPIENT. The new backend intentionally fails startup/readiness without them.

The provider canary runs on the GitHub runner using Production Railway variables. Combined evidence proves exact deployed startup readiness plus provider acceptance using the same Production configuration; it does not prove the exact deployed process sent the message or that the inbox received it.

Residual boundaries

  • deployment intentionally invalidates legacy plaintext OTPs; users with a code issued in the previous five minutes must resend
  • password reset response is content/status neutral, but synchronous provider timing remains a documented P2 side channel until a durable outbox exists
  • per-owner Strategy Compiler, adaptation consent, Safety Router, cross-case memory, live two-party and native-device evidence remain tracked work; this PR is containment, not full private-memory completion

@Alex0158

Copy link
Copy Markdown
Owner Author

Superseded by consolidated PR #12, which includes this complete change set plus the private-context and Safety P0 slice and has exact-head CI 7 of 7 green. The Production SMTP stop condition is unchanged, so #12 remains Draft and unmerged.

@Alex0158 Alex0158 closed this Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant