OAUTH-001B2: redact ambiguous Strava disconnect browser failures#253
Merged
Conversation
✅ Deploy Preview for luminous-fox-7c393f ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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.
Closes #252
Parent: #88
Outcome
A rejected Strava disconnect request is now treated as an unknown outcome. My Account shows one fixed refresh-before-retry alert without inspecting, rendering, or logging the rejected value. It preserves the connected athlete and activity view until a refresh re-reads authoritative state.
A dedicated disconnect warning outranks a later activity-load failure, so concurrent failures cannot erase the safer instruction. Cancel and successful disconnect behavior remain unchanged.
Safety invariant
Verification
Red proof on old source:
messagegetter executed and prevented a safe alertFinal local proof on Node 20:
git diff --check: passed9ad38d66778169e150264eebce0a9934912b2f3e8c58b987bbeb2662a277f035Review-driven correction
Initial independent review found a race in which a pending stats rejection could overwrite the ambiguous-disconnect warning. The issue claim was amended before that area was edited. The final source uses a dedicated disconnect-error state and explicit precedence while leaving the #250 stats catch byte-for-byte unchanged. A deferred-stats regression test proves the correction.
Scope
Only:
src/pages/account/StravaSection.tsxsrc/pages/account/Account.test.tsxdocs/officers/EVENTS_SHOP_MEMBERS.mdOpen commerce #249/#246 paths are disjoint and untouched.
Officer impact: Members and officers see one plain refresh-before-retry instruction when a disconnect result cannot be confirmed; the page does not expose technical/provider detail or guess the result.
Officer documentation:
docs/officers/EVENTS_SHOP_MEMBERS.md, sectionStrava disconnect failure privacy — SOURCE ONLY, NOT LIVE.Deployment evidence: None yet. This PR changes source/tests/docs only. No release workflow, website,
runmprc.com, Firebase, Strava/provider, production-data, migration, revoke, or live-behavior action occurred.Residual risk
This slice does not make revoke/delete retry-safe, add durable lifecycle audit, confirm provider revocation, deploy Firebase or the website, or prove live behavior. Those remain under canonical #88.