chore: release Godot-MCP 0.22.0 (McpPlugin 8.1.0 -> 8.3.0) - #348
Merged
Conversation
… -> 8.3.0 oauth-client-error-hygiene r4. Ships the e2 panel/ladder work (#347) compiled against McpPlugin 8.3.0, which carries the shared-lib OAuth error-hygiene fixes (dead-family memo a2, coordinator stop/resume a3, terminal-classification a1). - Pin bump 8.1.0 -> 8.3.0 in lockstep across the addon csproj, both test csprojs, the CLI installer pin (cli/src/utils/addon-deps.ts), the hardcoded parity assertion, the Asset-Library surfaces, and the line-scoped pin docs (README, CLAUDE.md, ARCHITECTURE, RELEASING, SUBMISSION, Godot-Tests/README) - the same file set as the 8.0.0 -> 8.1.0 bump (#342). ReflectorNet stays 5.4.0 (8.3.0 depends on ReflectorNet 5.4.0 - verified from the nuspec). - Deferred-from-e2 memo-interplay evidence (new test RefreshAsync_DeadFamilyVerdict_MemoBlocksRepeatNetworkCalls_UntilPeerLoginReArms): after a terminal invalid_grant verdict, both the reactive rejection path (TryAccountRefreshAndReconnect -> RefreshAsync) and the connection loop's per-attempt credential resolution settle with no further token-endpoint calls; a peer login re-arms the family (03 F3.5 adopt-without-network on the in-lock re-read) and network refresh resumes with the peer's token. Measured plant note: the fixture is green against 8.1.0 too (fail-closed state already settles one process) - recorded in the test doc; the memo's marginal mechanisms are proven by the upstream a1-a3 suites (#211-#213). - Stale "8.1.0 has no SignInRequiredReason" comments updated; the reason-class rendering slot marker retained (not wired - not in r4 scope). - Version 0.21.0 -> 0.22.0 via scripts/bump-version.mjs (plugin.cfg, cli/package*.json, both FallbackPluginVersion constants, SUBMISSION.md). Verified locally: dotnet build 0 warn/0 err; dotnet test 1305/1305 (resolved com.IvanMurzak.McpPlugin/8.3.0 confirmed via deps.json); cli npm ci+build+test 550/550 incl. addon-deps + skills parity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DVipj7Xi4HouAmmdCYSdmz
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.
oauth-client-error-hygiene r4 — Release Godot-MCP (consumes r1, carries e2)
Owner-gated release (G-release OPEN, full-wave GO; e2 verified). Merging this PR opens the tag gate (
plugin.cfg0.22.0, nov0.22.0tag) sorelease.ymlcuts the GitHub Release + addon zip anddeploy.ymlpublishesgodot-cli0.22.0 to npm as the terminal leg.What ships
cli/src/utils/addon-deps.ts(the installer pin), the parity assertion, Asset-Library surfaces, and the line-scoped pin docs — same file set as chore: bump McpPlugin to 8.1.0 #342. ReflectorNet stays 5.4.0 (8.3.0's nuspec depends on ReflectorNet 5.4.0).scripts/bump-version.mjs.Deferred-from-e2 memo-interplay evidence (r4 obligation)
New test
RefreshAsync_DeadFamilyVerdict_MemoBlocksRepeatNetworkCalls_UntilPeerLoginReArms(GodotAccountAuthTests): after a terminalinvalid_grantverdict, the reactive rejection path (TryAccountRefreshAndReconnect→RefreshAsync) AND the connection loop's per-attempt credential resolution settle — no further token-endpoint calls for the dead family; a fake peer login rewriting the store re-arms it (03 §F3.5: the in-lock re-read adopts the peer rotation without network) and the expired adopted credential then refreshes on the network with the peer's token. Same-fixture positive control included.Measured plant finding, recorded honestly: the fixture is GREEN against the 8.1.0 pin as well (verified by running it with the Tests csproj pin reverted to 8.1.0 —
deps.jsonconfirmed 8.1.0 resolved). Within one provider instance, 8.1.0 already fails closed after a terminal verdict, so process-local settling is not the 8.3.0 discriminator at this seam; the memo's marginal mechanisms (store-keyed re-arm, SignInRequired peer wake-up re-check, coordinator stop/resume) are proven by the upstream MCP-Plugin-dotnet a1–a3 suites (PRs #211–#213). The test pins the addon-consumed contract so a regression in either layer reddens here. The test doc-comment carries this note.Also
Local verification
dotnet build0 warnings / 0 errors;dotnet test1305/1305 (resolvedcom.IvanMurzak.McpPlugin/8.3.0confirmed viadeps.json)npm ci && npm run build && npm test550/550 (incl.addon-deps-parity+skills-addon-parityagainst the bumped pin)Post-merge verification (by artifact, per DoD)
v0.22.0withgodot-mcp-addon-0.22.0.zipattachedgodot-cli@0.22.0liveassetlib-editjob outcome (isolated; red does not affect the release/publish)🤖 Generated with Claude Code
https://claude.ai/code/session_01DVipj7Xi4HouAmmdCYSdmz