MEMBERS-IDENTITY-001F: define provider-link lifecycle reconciliation#446
Merged
Conversation
✅ Deploy Preview for luminous-fox-7c393f ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
daliu
commented
Jul 22, 2026
daliu
left a comment
Contributor
Author
There was a problem hiding this comment.
Self-review completed against exact head e11e44a. No actionable findings remain. Reviewed the four-path diff for authority leakage, strict input bounds, PII/secrets/raw provider evidence, canonical digest verification, revision/sequence ordering, duplicate and out-of-order results, uncertain outcomes, provider-account replacement, immutable outputs, source isolation, migration impact, officer continuity, and deployment-state accuracy. Three independent adversarial passes were also clean after fixes. Awaiting all hosted checks before merge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outcome: define and exhaustively test one unused, provider-neutral lifecycle contract for ordered link, unlink, relink, uncertain outcomes, collision evidence, and safe provider-account replacement.
Closes #445.
Parent #81 remains open; this is one source-only dependency-clearing child.
Officer impact: None yet. Signup, membership, discounts, email/password, Google, WhatsApp, Strava, officer screens, provider accounts, and live website behavior remain unchanged.
Officer documentation:
SYSTEM_DESIGN.md;docs/officers/EVENTS_SHOP_MEMBERS.mdDeployment evidence: Source commit
e11e44aeb2d70524e83ba1562acfeed17348c354and local Node 20.19.5 / Java 17 qualification are verified below. Website publication: not performed.runmprc.comverification: not performed. Firebase deployment/readback: not performed. Outside-provider configuration: not performed. Production data or migration: not performed. Production behavior: not verified. A green workflow will prove source/tests only.Contract and invariants
unlinkedbut records provider observation asunknown; no external fact is invented.grantsAuthority: false.unlinked, clears binding, and resets per-account observation/reconciliation.Failure and migration impact
Verification
RED:
membershipProviderLinkLifecycle.jsdid not exist.GREEN on Node 20.19.5:
demo-rules-test: 378/378.demo-pay002b2-test: 63/63.git diff --check: passed.Self-review
Three independent adversarial reviews covered state ordering/idempotency, security/privacy, and officer/acceptance documentation. Review-found blockers—unverified caller hashes, raw value-shaped references, unresolved-intent reversal, revision-1 forgery, and inaccurate diagrams/wording—were fixed and re-reviewed. Final result: no actionable findings.
Security review covered authorization, input bounds, PII/secrets, canonical digest verification, impossible state transitions, retries, uncertainty, replacement, source isolation, and production fallback.