Repository navigation
ORB-233: Deprecate social API (part 1, deprecation) - #773
Merged
Merged
Conversation
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes Reviewed all ten changed files, the OpenAPI transformer’s framework behavior, and the affected shared client schemas; no Critical or High regressions found.
- Route deprecation: Marks all sixteen retiring social operations deprecated in both API versions while preserving their routes, authorization, rate limits, and implementations.
- Profile metadata: Marks
handleandsocialOptIndeprecated through property attributes and the schema transformer without changing response fields, types, or requiredness. - Regression coverage: Adds generated-document assertions and retains existing controller behavior tests; the focused run passed all 82 tests with zero skipped, and regeneration left both committed documents unchanged. The full suite was not rerun locally; CI Build and the OpenAPI Breaking-Change Gate have passed, with other checks still pending.
gpt-6.1-sol | 𝕏
|
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes Reviewed the merge changes since 9726d21; no new Critical or High regressions found.
- Consolidated schema handling: Retained
main’s single property-level deprecation transformer, preserving the social profile flags without duplicate transformer logic. - Combined regression coverage: Preserved both friends/profile and challenge/accountability route assertions, typed the
MemberDatasource, and reused the document reader. - Verified merged behavior: Passed all 95 focused deprecation and controller tests with zero skipped; rebuilding regenerated both OpenAPI documents without worktree changes. The full suite was not rerun locally.
gpt-6.1-sol | 𝕏
thomasluizon
added a commit
that referenced
this pull request
Oct 19, 2026
…d cancellations and the Play renewal notice (#746) (#778) * Deprecate AI memory HTTP contracts for ORB-229 (part 1) (#771) (cherry picked from commit f8abd02) * Deprecate challenge and accountability routes for ORB-212 (#772) (cherry picked from commit 572b8de) * Deprecate social API routes and required profile fields (ORB-233 part 1) (#773) (cherry picked from commit 9c414c7) * fix: exclude retired notifications from inbox counts (#774) (cherry picked from commit f5df366) * fix: retain owed cancellations after account erasure (#775) * fix: retain provider cancellation obligations after account erasure * fix: preserve erasure for accounts without billing obligations * fix: claim owed cancellations before provider calls * fix: alert owed cancellation exhaustion only after a failed attempt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit c369535) * fix: notify returning Play subscribers about renewal (#776) * fix: explain Play renewal recovery on account reactivation * test: register reactivation service in sign-in retry fixture * fix: verify Play renewal before reactivation notice (cherry picked from commit 96023f9) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.




Part of thomasluizon/orbit-tickets#239 (ORB-233).
Publish the deprecation contract before the social API is removed.
FriendsController,PublicProfileControllerand the three social actions inProfileControllernow use the existing[Obsolete]operation transformer from #660 and #753.ProfileResponse.HandleandProfileResponse.SocialOptInuse property attributes, with a schema transformer inServiceCollectionExtensions.Infrastructure.csthat publishes their deprecation flags. Both OpenAPI documents are regenerated. Existing controller tests retain their behavior assertions and identify their deprecated calls, following #753.The only generated changes are 16 operation flags and two required profile-property flags per document. Routes, fields, handlers, scopes, tools, jobs, achievements, moderation, database schema and runtime behavior are retained for part 2.
Deprecated routes
The following operations are marked
deprecated: truein both API versions:/api/friends/api/friends/{userId}/profile/api/friends/invite-preview/api/friends/feed/api/friends/cheers/api/friends/requests/api/friends/requests/{friendshipId}/accept/api/friends/{friendUserId}/api/friends/cheers/api/friends/block/api/friends/block/{blockedUserId}/api/friends/report/api/u/{slug}/api/Profile/handle/api/Profile/social-opt-in/api/Profile/publicProperty removal audit
The workflow pins oasdiff-action commit
b9325c9e0a27ab65b0da3b766522cedec6be81dc. Its Dockerfile selects oasdiff v1.33.0. I built that version from its release source and ranchecks changelog --id <check>for each rule below; its rule registry confirms the levels.ProfileResponse.handle,socialOptInresponse-required-property-removedProfileResponse.publicProfileresponse-optional-property-removedPublicProfileSettings.enabled,slug,shareUrl,showStreak,showLevel,showAchievements,showTopHabitspublicProfile;response-optional-property-removedSendFriendRequestBody.handle,referralCoderequest-property-removedSendCheerBody.recipientId,habitId,noterequest-property-removedBlockUserBody.blockedUserIdrequest-property-removedReportUserBody.reportedUserId,reason,details,cheerIdrequest-property-removedSetHandleRequest.handlerequest-property-removedSetSocialOptInRequest.enabledrequest-property-removedUpdatePublicProfileRequest.enabled,showStreak,showLevel,showAchievements,showTopHabits,regeneraterequest-property-removedOther social success responses and the GDPR export have no typed response schema in the committed documents. There are no additional generated response properties to annotate. No oasdiff exclusions or severity overrides were added. Required response-field removal remains an ERR in this oasdiff version even after deprecation; part 2 must account for that separately.
External interface evidence
The schema transformer uses
context.JsonTypeInfo.Properties, property metadata andschema.Properties, following the actual traversal in ASP.NET Core v10.0.13 OpenApiSchemaService. I checked the installed OpenAPI package XML interfaces and compiled against Microsoft.AspNetCore.OpenApi 10.0.13 and Microsoft.OpenApi 2.12.2. The real build output containsdeprecated: trueon exactlyProfileResponse.properties.handleand.socialOptIn; the generated-document tests read that output rather than a mocked external response.Test evidence
dotnet test tests/Orbit.Infrastructure.Tests --filter 'FullyQualifiedName~FriendsControllerTests|FullyQualifiedName~PublicProfileControllerTests|FullyQualifiedName~ProfileControllerTests' --nologopassed all 48 existing tests unchanged.dotnet test tests/Orbit.Infrastructure.Tests --filter FullyQualifiedName~SocialDeprecationTests --nologofailed all 34 new document cases on missing deprecation flags. The cases cover every retiring route in each document and the required profile fields. The final property test follows the verified ERR classification and checks optionalpublicProfileremains available.deprecated: truekeys in each generated document and no other contract differences.breaking <parent>:src/Orbit.Api/openapi.json src/Orbit.Api/openapi.json --fail-on ERR, repeated foropenapi_v2.json: both exited 0 with no breaking changes.dotnet build Orbit.slnx --nologo: exit 0, zero errors. Existing NU1608 package-version warnings remain; full compilation also reports existing API-versioning, Firebase deprecation and unrelated test warnings. No suppression or dependency changes were made.dotnet test tests/Orbit.Infrastructure.Tests --filter FullyQualifiedName~SocialDeprecationTests --nologo: 34 passed, zero skipped after commit.dotnet test tests/Orbit.Domain.Tests --nologo: 736 passed, zero skipped, exit 0.dotnet test tests/Orbit.Application.Tests --nologo: 5,556 passed, zero skipped, exit 0.dotnet test tests/Orbit.Infrastructure.Tests --nologo: 3,713 passed, zero skipped, exit 0.dotnet test tests/Orbit.Analyzers.Tests --no-build --no-restore --nologo: 32 passed, zero skipped, exit 0.SuppressMessageentries. Both generated documents remain unchanged after rebuilding.Both locales passed with exit code 0:
Zero failed or skipped. Tests used
dotnet test tests/Orbit.<Project>.Tests --no-build --no-restore --nologo.xUnit1042was not emitted locally, so no failing analyzer reproduction was observed.Assumptions
SocialDeprecationTests, since its Google-auth tests were deleted by Remove deleted Supabase sign-in path (#1528) #752; the rejected alternative was restoring unrelated auth tests.The opening “This round” instructions govern this revision; the embedded deletion phase was not executed.
Manual steps
None for this revision. The commit is ready for the orchestrator to push to the existing PR.
tokens used
71.893
Committed merge as
67237b303a98673b069e904434e35ac77311412e.Kept
main’s single schema transformer, combined both test sets without losing routes, typed theMemberDatasource, and regenerated both OpenAPI documents. Working tree is clean. Nothing pushed.