Repository navigation
OAUTH-001A2I — Reject duplicate Strava activity IDs - #603
Conversation
✅ Deploy Preview for luminous-fox-7c393f ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
SELF-REVIEW: GO — no actionable findings on exact head I reviewed the complete two-file diff for Auth/App Check ordering, copied-input bounds, fixed failure behavior, provider request count, PII/logging, persistence, response schema/type/order, hostile hooks, and production fallback. The scan is bounded to ten comparisons of validated frozen snapshots; a duplicate fails the whole activities payload before statistics JSON. It does not select, merge, reorder, normalize, or deduplicate provider records. Three independent exact-head reviews returned GO: security/compatibility, RED/tests, and officer/documentation scope. The trustworthy RED failed only the new duplicate rejection on old runtime; final focused tests are 691/691. All five required jobs in hosted CI Officer impact: only after a future protected Firebase Functions release, duplicates use the existing generic failure; there is no current officer-visible change. Officer documentation: None — existing SOURCE ONLY / NOT LIVE guidance remains accurate. Repository policy still requires an external approval, so merge state is review-blocked despite all checks. The maintainer explicitly instructed this task to self-review and merge clean issues; an administrative squash merge is authorized only after the evidence above. |
|
FINAL DELIVERY — COMPLETE / MERGED / CLAIM RELEASED Exact reviewed head Deployment evidence: the exact-head preview was ready and unpublished; the exact-main Netlify production attempt is error/unpublished; GitHub deployments are empty; Officer impact: only after a future protected Functions release, duplicates use the existing generic failure. Officer documentation: None — current SOURCE ONLY / NOT LIVE guidance remains accurate. |
Outcome
Rejects a Strava recent-activity response when two otherwise-valid rows carry the same copied safe-integer ID. The server fails the whole payload through the existing fixed error instead of sending duplicate React keys to My Account.
Fixes #602. Parent: #88.
Officer impact: After a future protected Firebase Functions release, duplicate recent-activity identifiers will produce the existing generic My Account loading failure. There is no current officer-visible change, and no new officer action is introduced.
Officer documentation: None — this server-only admission rule changes no public page, officer duty, collected field, permission, account, deployment step, or recovery procedure. Existing generic Strava failure guidance remains accurate.
Deployment evidence: Source/test candidate only. Exact reviewed head is
945a647d2519fa6b87077122befd39bf08f62c80; tree56fb8e3bd2ee741dfbb14fbf3ce4a5e09ccbb5c1; patch SHA-256216d029f805fd5ffc5667e44ec1cab2fae97e71b346780d6a7dc14db3dfeffba. No website publication,runmprc.comverification, Firebase deployment, Strava/provider change, production-data action, or live verification has occurred.Invariant and compatibility
recentActivitiesresult contains at most five copied records with pairwise-distinct positive safe-integer IDs.Tests and checks
d3c034b1c0f54323897c13f4fdd47dacb50d3c7f1c588f2e996ef599b8812c3d.git diff --check: passed; exact two-file scope.Review and residual risk
Self-review found no authorization, App Check, input-bound, privacy/logging, persistence, provider-call, type/order, or fallback regression. Three independent exact-head reviews covering code/security, tests/compatibility, and officer/documentation scope are GO with no findings.
Out of scope and still separate: lossless String/Long transport, client key/type migration, response-status admission, response-byte limits, refresh concurrency/reconciliation, provider governance/configuration, Firebase deployment, and live verification. No real token, member data, or production provider host was used.