Repository navigation
build(deps): bump TimeWarp.State 12.0.0-beta.17, Mediator 15.0.0-beta.5, OTel 1.20.2 - #648
Merged
StevenTCramer merged 4 commits intoNov 7, 2026
Conversation
….5, OTel 1.20.2 Task 484. Bump every outdated pin (State x7, Mediator x2, OpenTelemetry instrumentation x2, libphonenumber-csharp 9.0.43); ganda nuget outdated is clean. Fix the new TWS0013 at the source: web-spa StateJsonContext lists all 25 states (flag-gated entries under grpc/api) and both DevTools snapshot registrations resolve through it before the reflection fallback. A test serializes every web-spa state through the context alone. Typed-id generator emits its JsonConverter public (EditorBrowsable Never) so a System.Text.Json source-gen context can use it (SYSLIB1220/1030). Feedback contract types that share short names get TypeInfoPropertyName (SYSLIB1031). Boy-scout: ganda repo audit --fix untracks the per-machine .vscode/settings.json (vscode-settings-gitignore). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
StevenTCramer
deleted the
task/484-update-all-nuget-pins-to-latest-timewarpstate-1200
branch
November 7, 2026 08:03
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.
Summary
Pins
ganda nuget outdated -u -f, then a re-run reports "All packages are up to date". The tool added a UTF-8 BOM toDirectory.Packages.props, which I removed.12.0.0-beta.17
The other OpenTelemetry pins (Exporter, Extensions.Hosting, Instrumentation.Runtime) stay at 1.20.1, which is their
latest. The Aspire CLI is 13.6.4, which matches
<AspireVersion>. The pin comments still hold. The TWA0022 test stubcomment now says Mediator 15.0.0-beta.5:
ISender,IMediatorandIPublisherhave the same members as in beta.4(checked against both packages' XML docs).
New State diagnostics
must be listed on a
JsonSerializerContext. web-spa really does turn snapshots on (Debug, Development, StateDevTools), so this is not noise. Fix:
source/container-apps/web/projects/web-spa/state-json-context.cs: a publicStateJsonContextthat lists all25 web-spa states.
SuperheroStateis inside#if grpcandWeatherForecastsStateinside#if api, the samesymbols as the template.json excludes for their folders.
Program.AddStateDevToolsExportAsync, web-serverWebServerStateDevTools.AddExport) now resolve throughJsonTypeInfoResolver.Combine(StateJsonContext.Default, new DefaultJsonTypeInfoResolver()). That is source-gentype info first, with reflection kept only for a state the context does not list (TimeWarp.State.Plus).
NestedDispatchProbeStategets aNestedDispatchProbeJsonContextnext to it.CredentialId/PrincipalId: the typed-id generator emitted itsJsonConverterasprivate, so no source-gen context could use it.TypedIdEmitternow emits it aspublic sealedwith[EditorBrowsable(Never)]and<inheritdoc/>on its overrides. The TypeConverter staysprivate. The Design region in
typed-id-source-generator.csrecords why, and the generator test assertspublic sealed class OrderIdJsonConverter.GetFeedback.Response/SubmitFeedback.Response,ListFeedback.Item/ListMyFeedback.Item). Each one, plus itsIReadOnlyList<>, gets an explicitTypeInfoPropertyNameon the context.[Reducer](task 483).tests/container-apps/web/web-spa-integration-tests/serialization/state-json-context-tests.cstakes everyconcrete web-spa
IStatefrom a real store and serializes it throughStateJsonContextalone, with no reflectionfallback. It passes.
Gates
dev build: 0 warnings, 0 errors.dev test --group fast: 14/14 projects passed. That includes timewarp-architecture-sourcegenerator-tests andanalyzers-tests.
dotnet test -c Release): 579/579, including the new snapshot test. The first two runsfailed one test,
Update_WeatherForecastState_With_WeatherForecasts_From_Server, for an environmental reason: theingress → api-server TLS handshake failed because the current HTTPS dev certificate (2674D1…, created 2026-11-06)
had never been trusted on this machine.
dotnet dev-certs https --trust(user-level) fixed that, and the rerunpasses.
dev template-smoke(default): passed after the dev-cert trust (web 464/464, api 9/9, testing 14/14, co-located5/5, 5/5, 2/2). The first run failed 18 HTTPS tests on
UntrustedRootfor the same certificate reason.dev template-smoke --matrix: "Template smoke SUCCEEDED" for all six variants (Default, NoPostgres, NoApi, NoWeb,NoGrpc, NoYarp), with 0 failed tests. This covers the new
#if grpc/#if apilines inStateJsonContext.dev check-version: source 2.0.0-beta.32 vs NuGet 2.0.0-beta.31, "safe to release". No further version bump needed.ganda repo audit: exit 0. Boy-scout fix:vscode-settings-gitignorewas an Error, because.vscode/settings.jsonwas tracked with per-machine Peacock colors.
ganda repo audit --fixremoved the!.vscode/settings.jsonre-include from
.gitignoreand untracked the file. Remaining warnings predate this task: kanban-landed staleclaims and source-file-line-cap on EF migration designers.
Test plan
Smoke:
Expect:
ganda nuget outdatedprints "All packages are up to date";dev buildreports 0 Warning(s) 0 Error(s); theweb-spa integration run includes
Serialize_Every_State_Without_Reflectionpassing (the Aspire HTTPS facts need a trustedHTTPS dev certificate); template smoke ends without "Template smoke FAILED"; audit exits 0.
Kanban task 484
Session: 66368815-cdd5-46be-bde8-a09d94e1cdc8