Skip to content

[compass] Anode 0.11.3 candidate: ship the merged fixes, and move the registry off 0.11.0 - #47

Merged
skulitom merged 3 commits into
mainfrom
compass/followup-2026-10-15-C-058
Oct 15, 2026
Merged

skulitom merged 3 commits into
mainfrom
compass/followup-2026-10-15-C-058

Conversation

@skulitom

@skulitom skulitom commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

The 0.11.3 release candidate (Compass C-058): main holds the fixes merged since v0.11.2 that users don't have yet. Version, runtime patch and release text only; no tool, command or behaviour change.

What changes

Not changed: bucket/anode.json and packaging/winget/* describe a published release, so they change after the tag (CONTRIBUTING step 7), as in #30.

Checks

  • scripts\build.ps1 -QuickTest -Package -Mcpb on the candidate with .NET 10.0.13: 108 quick self-tests passed, the documentation check passed (41 documents, 41 tools), anode version prints anode 0.11.3, and the exe embeds the 10.0.13 runtime.
  • The release workflow's own package steps (registry-entry.ps1 -Tag v0.11.3, the bundle checksum, test-distribution.ps1 -Release): all distribution checks passed.
  • scripts\test-release-check.ps1 passed; scripts\release-check.ps1 -DryRun passed and names the commit that sets 0.11.3.
  • Real client on the MCPB bundle (a rehearsal, see below): Claude Code 2.1.280 (-p --mcp-config --strict-mcp-config) ran the extracted bundle's server/anode.exe mcp with ANODE_CHANNEL set to a throwaway channel, so it could not reach an installed Anode. It listed 41 tools, and seat_status answered daemonRunning: false. Nothing started.
  • Windows CI on the final head 13c340b (run 38706632329): build (with packaging, installation and distribution checks) and the environment self-test pass.
  • Second review (a fresh Claude subagent; Codex is out until 20 Oct): one P1, fixed in eaa7ad6: the candidate still bundled .NET 10.0.12, though 10.0.13, a security update, shipped on 13 Oct. One P2 (the readiness record had no coverage limits) and five P3 wording, scope and link fixes, all applied. Its re-check found no credible problem; its last P3 (B-040's wording) is fixed in 13c340b.

After merge

  1. The owner's live check (steps): build the candidate, install it, start the seat, then run powershell -NoProfile -ExecutionPolicy Bypass -File scripts\release-check.ps1. When it passes, its last line is the tag command for exactly the tested commit; run it and git push origin v0.11.3, or say "tag it".
  2. The release is the tag's Release workflow. It builds the MCPB bundle as a workflow artifact.
  3. The registry moves off 0.11.0 after that, not in this PR: the tag's own bundle is checked with a real MCP client, uploaded to the release, and publish-registry.yml is dispatched for v0.11.3 (Compass C-058 item 3, in place of the Claude Desktop test PUBLISHING.md names). The registry entry hashes that tag's bundle, so the pre-merge bundle check below is a rehearsal, not that gate.

🤖 Generated with Claude Code

- Version 0.11.3 in Anode.csproj, server.json, the MCPB manifest and the
  Claude Code plugin, and in INSTALL.md's pinned installer example.
- CHANGELOG: Unreleased becomes 0.11.3, with one line for the docs and
  release-tooling changes (#35, #40, #43, #45, #46).
- .github/RELEASE_NOTES.md: what's new in 0.11.3 (#34, #36 to #44),
  known issues and upgrade.
- docs/RELEASE-READINESS.md: a 0.11.3 section with the scope, the checks
  run without a seat, and a place for the owner's release-check summary.

Package manifests (Scoop, winget) change after the release, as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T08:23:33.507900Z 5fc2771 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

skulitom and others added 2 commits October 15, 2026 09:31
- RuntimeFrameworkVersion and System.ServiceProcess.ServiceController
  move to 10.0.13, Microsoft's security update of 2026-10-13
  (CONTRIBUTING: the current patch before each release). CHANGELOG,
  release notes and the readiness record say so.
- The log-times entries say exactly what changed: log lines read
  2026-10-13 23:34:16; screenshot names and backup dates use the
  Gregorian calendar.
- RELEASE-READINESS 0.11.3: scope by group, including #19 (the Business
  licence terms, first released here); the live-check summary is recorded
  on main after the run; coverage limits and known issues.
- RELEASE_NOTES links the 0.11.3 section of the validation record.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… change that reconnects the viewer

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@skulitom
skulitom merged commit fe46d69 into main Oct 15, 2026
2 checks passed
@skulitom
skulitom deleted the compass/followup-2026-10-15-C-058 branch October 15, 2026 08:38
skulitom added a commit that referenced this pull request Oct 15, 2026
From the second reviews: the 0.11.3 release notes and validation record
(#47) now include this fix, drop B-040 from the known issues and say the
candidate's quick suite is 109 checks after it; a probe that throws now
reads "could not check this machine's seat prerequisites", since the probe
reads more than Remote Desktop's settings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
skulitom added a commit that referenced this pull request Oct 15, 2026
…isplay reconnects answer "stopped" and the next disconnect drops the seat (#48)

* Fix: a refused Reconnect leaves a running seat alone (B-040)

ReconnectAsync cancelled the bring-up before it checked the machine's
prerequisites, then set the seat to error when one was missing. A running
seat kept its host, but every later seat_display reconnect got the
cancelled token and answered "The seat was stopped while its display was
changing", and the next viewer disconnect, seen in state error, dropped
the seat host as a failed startup.

The prerequisites are now read before anything changes. With the seat's
host serving, a refusal only logs and tells the user in the viewer; a
failed or stopped seat still reports error as before. New quick check
"refused reconnect keeps the seat"; the #44 case it supersedes moved in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Review: read prerequisites only for a press that can act; clearer refusal text

From #48's second review: a press during a reconnect, a display change, a
stop or a quit returns before the prerequisite probe (up to about 1.5 s on
the UI thread); the viewer's refusal puts the missing setting first; the
quick check drops two counts an ok reply already proves; the CHANGELOG
names the listener and says "a" display reconnect, since a password seat's
is refused earlier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Review: a prerequisite probe that throws refuses Reconnect and says why

From the Codex connector's review of f348f49: the probe had moved out of
ReconnectAsync's try/catch, and the toolbar discards the task, so a probe
that threw (an unreadable registry key, say) failed silently. Its failure
is now logged and treated as a missing prerequisite: a running seat keeps
its state, a seat that isn't running reports error with the reason. The
quick check covers both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Review: list #48 in the 0.11.3 record; name the probe failure accurately

From the second reviews: the 0.11.3 release notes and validation record
(#47) now include this fix, drop B-040 from the known issues and say the
candidate's quick suite is 109 checks after it; a probe that throws now
reads "could not check this machine's seat prerequisites", since the probe
reads more than Remote Desktop's settings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
skulitom added a commit that referenced this pull request Oct 15, 2026
From #49's second review: the 0.11.3 candidate's record (#47) now names
this fix, its stand-in coverage limit and the 110 quick checks after #48
and #49.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
skulitom added a commit that referenced this pull request Oct 15, 2026
…g, so the next set or tap sends it (#49)

* Fix: a refused gamepad_set leaves part of its change for the next report (B-041)

GamepadManager.Apply set each button, axis and trigger as it read them.
The pads run with AutoSubmitReport off, so when a later name was unknown
the call threw before SubmitReport and the earlier changes stayed in the
pending report, for the agent's next gamepad_set or gamepad_tap to send.
Every name is now resolved first; the changes are set and submitted
together.

A trigger passed as a button got "Unknown gamepad button 'lt'. Use ...
lt or rt."; it is now told it is a trigger. gamepad_tap recognises the
trigger names the triggers take (l2, r2). The stand-in pad in the quick
checks now keeps what was set until a report sends it, and the new check
"gamepad set all or nothing" covers all three.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Review: simpler stand-in pad with its report history; CLI-true trigger message

From #49's second review: ViGEm's Equals(object) compares type and index,
so the stand-in keys by control alone; it keeps each sent report so the
check proves a tapped trigger was pulled to 255, and counts reports instead
of an Unsent test that is always false after a submit; the trigger error
says gamepad_set's triggers are an MCP option.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Review: list #49 in the 0.11.3 release notes and validation record

From #49's second review: the 0.11.3 candidate's record (#47) now names
this fix, its stand-in coverage limit and the 110 quick checks after #48
and #49.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Review: the release note names triggers among what a refused set left behind

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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