Skip to content

chore: release Godot-MCP 0.22.0 (McpPlugin 8.1.0 -> 8.3.0) - #348

Merged
IvanMurzak merged 1 commit into
mainfrom
release/0.22.0
Aug 24, 2026
Merged

chore: release Godot-MCP 0.22.0 (McpPlugin 8.1.0 -> 8.3.0)#348
IvanMurzak merged 1 commit into
mainfrom
release/0.22.0

Conversation

@IvanMurzak

Copy link
Copy Markdown
Owner

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.cfg 0.22.0, no v0.22.0 tag) so release.yml cuts the GitHub Release + addon zip and deploy.yml publishes godot-cli 0.22.0 to npm as the terminal leg.

What ships

Deferred-from-e2 memo-interplay evidence (r4 obligation)

New test RefreshAsync_DeadFamilyVerdict_MemoBlocksRepeatNetworkCalls_UntilPeerLoginReArms (GodotAccountAuthTests): after a terminal invalid_grant verdict, the reactive rejection path (TryAccountRefreshAndReconnectRefreshAsync) 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.json confirmed 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

  • Updated the now-stale "8.1.0 has no SignInRequiredReason" comments; the reason-class rendering slot marker is retained but NOT wired (not in r4 scope — only the interplay evidence was deferred to r4 for Godot).

Local verification

  • dotnet build 0 warnings / 0 errors; dotnet test 1305/1305 (resolved com.IvanMurzak.McpPlugin/8.3.0 confirmed via deps.json)
  • cli npm ci && npm run build && npm test 550/550 (incl. addon-deps-parity + skills-addon-parity against the bumped pin)

Post-merge verification (by artifact, per DoD)

  • GH Release v0.22.0 with godot-mcp-addon-0.22.0.zip attached
  • npm godot-cli@0.22.0 live
  • assetlib-edit job outcome (isolated; red does not affect the release/publish)

🤖 Generated with Claude Code

https://claude.ai/code/session_01DVipj7Xi4HouAmmdCYSdmz

… -> 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
@IvanMurzak
IvanMurzak merged commit b91650c into main Aug 24, 2026
28 checks passed
@IvanMurzak
IvanMurzak deleted the release/0.22.0 branch August 24, 2026 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant