Skip to content

Fix the 5.2.0-beta.1 findings: Npgsql floor, ConnectionBoundSchemes builder, CS0436 - #82

Merged
windischb merged 1 commit into
developfrom
claude/beta1-findings
Sep 26, 2026
Merged

windischb merged 1 commit into
developfrom
claude/beta1-findings

Conversation

@windischb

Copy link
Copy Markdown
Collaborator

Why

amZettel tested 5.2.0-beta.1 on all clients and reported three findings. One of them blocks it: the Postgres backplane.

What

1. Postgres backplane demanded Npgsql 10 on net10.0 (blocking)

  • The central Npgsql version follows the target framework (8.0.6 / 9.0.4 / 10.0.3), and the backplane package inherited it as its minimum. A net10.0 app held on Npgsql 9 by Marten therefore got NU1605.
  • The backplane now builds against Npgsql 8.0.6 on every framework (VersionOverride). The nuspec asks for Npgsql >= 8.0.6 in all three groups. The code only needs NpgsqlDataSource and LISTEN/NOTIFY.

2. ConnectionBoundSchemes unreachable from the options builder

  • AddSignalARRR hands out the builder, which had no way to reach the list, so the documented options.ConnectionBoundSchemes.Add(...) did not compile.
  • New: WithConnectionBoundSchemes(params string[]). It de-duplicates names and rejects empty ones. The authorization guide uses it.

3. CS0436 in test projects with the API's InternalsVisibleTo

  • The generator emitted referenced-assembly ("Ref") proxies even when the referenced assembly had generated the same proxy itself and that proxy is visible through InternalsVisibleTo.
  • It now skips a contract whose proxy exists in the referenced assembly and is accessible from the current compilation. The referenced assembly already registers it in its own module initializer.

Verification

  • Unit tests: 290/290 on net8.0, net9.0 and net10.0, including new builder tests.
  • Integration tests on net10.0: 108/108. The backplane integration tests (Redis + Postgres, via Docker) pass 46/46 on both net10.0 and net8.0.
  • Regression for item 3: Tests.SharedModels now grants InternalsVisibleTo to the integration tests. Without the generator fix that build fails with three CS0436 errors; with the fix it is clean.
  • Consumer check for item 1: a packed backplane in a net10.0 app pinned to Npgsql 9.0.4 restores and builds cleanly, and Npgsql resolves to 9.0.4.

🤖 Generated with Claude Code

The Postgres backplane is built against Npgsql 8.0.6 on every target
framework, so the package asks for Npgsql >= 8.0.6 instead of the newest
version per framework; a net10.0 application on Npgsql 9 (Marten) can add it
without NU1605.

WithConnectionBoundSchemes(...) on SignalARRRServerOptionsBuilder: the list
lived on the options, but AddSignalARRR hands out the builder, so the
documented example did not compile.

The generator leaves out a referenced contract whose proxy the referenced
assembly already contains and that is visible here, instead of generating a
second copy that clashes with it (CS0436) in test projects with the API's
InternalsVisibleTo. Tests.SharedModels now grants InternalsVisibleTo to the
integration tests, which breaks the build without the fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@windischb
windischb merged commit 74cfd3d into develop Sep 26, 2026
13 checks passed
@windischb
windischb deleted the claude/beta1-findings branch September 26, 2026 13:15
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