Skip to content

Pin the historical Wizard receiver to its legacy template feed (Refs FS-GG/.github#4709) - #736

Merged
EHotwagner merged 1 commit into
mainfrom
routine/typed-receiver-pin-4709-20261022
Oct 22, 2026
Merged

EHotwagner merged 1 commit into
mainfrom
routine/typed-receiver-pin-4709-20261022

Conversation

@EHotwagner

Copy link
Copy Markdown
Contributor

Refs FS-GG/.github#4709. Fixes the pre-existing "Installed typed SDD package receivers" drift. It also failed on #728 and will fail on main.

Cause. Wizard 0.11.1 scaffolds through SDD 1.7.0, which runs dotnet new install FS.GG.Workspace.Template::0.11.0 and then a best-effort dotnet new update. Unlike the direct receivers, the Wizard passes no --no-update. Once Workspace.Template 0.19.1 was published (2026-10-22 08:29Z), the Wizard hive registered 0.19.1, and historical-receiver-maintenance.py wizard-guard correctly refused "actual installed template registry mismatch" against LEGACY_VERSION 0.19.0. Evidence: run 39827412802, wizard-pre-adoption/registry.json. It would drift again at 0.19.2 and every later release.

Decision: pin, don't track. This is a historical receiver. Its guard binds the exact 0.19.0 archive, source commit, manifest/lock and SignalR identities, so following "newest" would break the guard at every release and change what is being maintained. Instead, the Wizard hive's NuGet user config is closed (<clear /> plus one local source) to exactly the two hash-verified public archives the original qualification observed: descriptor 0.11.0 (41fa91ba…) and newest-at-qualification 0.19.0 (187c9958…).

Local evidence.

  • With only DOTNET_CLI_HOME pointing at such a hive, dotnet new install …::0.11.0 followed by dotnet new update registers 0.19.0.
  • A full local run of the real Wizard 0.11.1 / SDD 1.7.0 scaffold (--ref fs-gg-templates/v0.11.0 --pinned …) with this hive registered 0.19.0. The real wizard-guard then returned phase exact-original-before-adoption with no first cause.
  • New control test_actual_wizard_hive_is_closed_to_the_two_verified_legacy_archives executes the actual closing block. The exact case is accepted; an extra or newer archive, or a wrong current or legacy hash, is refused before any config is written. Removing the hash refusal or <clear /> makes it fail.
  • test-historical-receiver-maintenance.py: 20 OK.

Also: tests/knowledge-receiver/test_inventory.py now binds the five owned providers' self-pins to the csproj <Version> instead of the stale 0.18.1 literal (10 OK; a mismatched descriptor fails). The Rendering 0.32.3 external identity stays explicit.

No release, tag, package or default effect.

🤖 Generated with Claude Code

…S-GG/.github#4709)

"Installed typed SDD package receivers" broke after Workspace.Template 0.19.1 was published:
SDD 1.7.0's scaffold under Wizard 0.11.1 runs `dotnet new install <descriptor source>` then a
best-effort `dotnet new update` (the Wizard passes no --no-update, unlike the direct
receivers), so the historical receiver adopted whatever Workspace.Template was newest and
historical-receiver-maintenance.py correctly refused the 0.19.1 registry. It would refuse
again at every release.

Pin rather than track: the guard binds exact 0.19.0 archive/source/SignalR identities, so a
moving target cannot be maintained. The Wizard hive's NuGet sources are now closed to exactly
the two hash-verified public archives the original qualification observed (descriptor 0.11.0,
newest-at-qualification 0.19.0). A local run of the real Wizard 0.11.1/SDD 1.7.0 scaffold with
this hive registered 0.19.0 and the real wizard-guard reached exact-original-before-adoption.
A new control executes the actual closing block (exact accepted; extra/newer archive and wrong
hashes refused before any config is written).

Also binds tests/knowledge-receiver/test_inventory.py's owned-provider self-pin expectation to
the csproj <Version> instead of a stale literal (0.18.1).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@EHotwagner
EHotwagner merged commit 963d576 into main Oct 22, 2026
16 checks passed
@EHotwagner
EHotwagner deleted the routine/typed-receiver-pin-4709-20261022 branch October 22, 2026 19:14
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