Repository navigation
Remove the Donut server integration - #456
Merged
Ekwav merged 1 commit intoOct 2, 2026
Merged
Conversation
6 tasks done
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.
Summary
I removed the Donut server integration from SkyModCommands. On the base commit the regression test fails with the same error as the production trace; with the patch it passes. The review's only blocking point, the missing regression manifest, is now fixed.
Why: in trace 580d464f255283c1ea07947e09102f2f,
/cofl flipfailed in SkyBFCS.FlipCommand.ExecutecallsModSessionLifesycle.UpdateConnectionTier, which looked upIDonutFlipSubscriptionServiceon every connection. SkyBFCS never registers that service, so the lookup threw "No service for type … has been registered". The lookup is now gone.Donut behaviour removed
Services/Donut/is deleted (DonutFlipSubscriptionService,IDonutFlipSubscriptionService,DonutServerContext), along with its registration inStartup.cs.ModSessionLifesycle.UpdateConnectionTier:ModSessionLifesycle.GetAuthLink: thehttps://donut.coflnet.comauth link is gone. The choice betweensky-commands.coflnet.comandsky.coflnet.combased on the trusted host is unchanged.MinecraftSocket:server=donutquery parameter is no longer read (NormalizeServerContextis removed).AddNonConnectionis no longer skipped for donut sessions.OnCloseandRemoveMySelfare removed.gameServerparameter andFakeDonutFlipSubscriptionServiceare removed.Hypixel behaviour is unchanged.
UpdateConnectionTieris the same as before; the only calls removed from the Hypixel path were donut calls.GameServerstays on the socket and inSessionInfo, and now always reads"skyblock". It is required byIFlipConnectionin SkyBackendForFrontend and still feeds the existingserverspan tag.Regression test:
UpdateConnectionTier_AddsConnectionWithoutDonutService(renamed fromUpdateConnectionTier_UsesSkyblockFlipperOnSkyblock). No donut service is registered in the test setup. The test callsUpdateConnectionTier(PREMIUM)for an ordinary connection and checks that it is added toFlipperService.Verification: the manifest command is
dotnet test SkyModCommands.csproj --filter "FullyQualifiedName~ModSessionLifesycleTests.UpdateConnectionTier_AddsConnectionWithoutDonutService". I ran it locally with the sibling repos cloned as the Dockerfile does. The full Docker build was not run; that is left to the host gate.System.InvalidOperationException : No service for type 'Coflnet.Sky.ModCommands.Services.Donut.IDonutFlipSubscriptionService' has been registered.ModSessionLifesycleTests|MinecraftSocketpasses 35/35 with the patch, and there are no new warnings in the changed files.The temporary
.coflnet-regression.jsonsits uncommitted at the repository root.Production evidence (bounded, no identifiers):
observe tracereturned only a summary forsky-commands-mod: counts per operation, includingFlip/flipandcommand, plus onereportspan flagged as an error without a message.observe logs --contains IDonutFlipSubscriptionServicereturned no entries.sky-commands-mod, not SkyBFCS, so I could not see the exception text in production logs. The diagnosis rests on the source code (the base version always looks up the donut service) and on the regression test reproducing the exact reported exception.lastSentdata was relevant to this change.Validation: 6/6 checks passed · reviewed in a separate codex session.
Checks and provenance
container_buildregression_sibling_clone_devregression_sibling_clone_SkyFilterregression_sibling_clone_SkyBackendForFrontendregression_sibling_clone_websocket-sharpregression_base_fail_patch_passReview notes:
Task:
task_egtdlw5zkrnsa3b5uprqBase:
mainat7bce2f2f4e793a022346e802d7265a0ec24f39de