Skip to content

Surface the runtime the documentation tooling runs on#112

Merged
Reefact merged 2 commits into
mainfrom
claude/tooling-multi-target-runtime-p4fzmi
Jul 13, 2026
Merged

Surface the runtime the documentation tooling runs on#112
Reefact merged 2 commits into
mainfrom
claude/tooling-multi-target-runtime-p4fzmi

Conversation

@Reefact

@Reefact Reefact commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

The preview canary (added in #111) passed green but never printed which runtime it exercised: dotnet --list-runtimes was consumed by a silent grep, and the worker never reported its own runtime — so "ran on the .NET 11 preview" had to be inferred from roll-forward semantics rather than read off the log. This makes it visible: the GenDoc worker logs the framework it actually bound to, and the canary prints the installed runtimes and the selected major.

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring
  • Analyzer / diagnostic change
  • Tests
  • Documentation
  • Build / CI / tooling

Changes

  • FirstClassErrors.GenDoc.Worker: emit a one-line runtime banner — Documenting '<target>' on <RuntimeInformation.FrameworkDescription>.. It goes to stdout when the result is written to a file (stdout then carries no data, and the generator surfaces the line as an info: diagnostic) and to stderr in the stdout-JSON mode so the result stays pure. The worker rolls forward independently of the CLI (RollForward=LatestMajor), so this is the authoritative record of where the target was loaded.
  • canary.yml: print dotnet --list-runtimes and the highest installed major; skip neutrally unless a runtime newer than the .NET 10 build SDK is present (replacing the previous silent grep guard); and name that major in the success line. With the worker banner (via --verbose), the canary log now shows the preview version instead of leaving it to inference.

Testing

  • dotnet build FirstClassErrors.sln — Release, 0 warnings / 0 errors.
  • dotnet test FirstClassErrors.sln — Release, 609 passed, 0 failed, 0 skipped.
  • Analyzer tests pass (FirstClassErrors.Analyzers.UnitTests) — 51 passed.

Additional manual check: ran fce generate --assemblies <net8 Usage.dll> --format json --verbose locally — the worker banner surfaces cleanly as info: Documenting '…' on .NET 10.0.9. and the JSON on stdout stays intact (10 documented codes). The .NET 11 preview binding itself is exercised only by the canary in CI (installing preview runtimes is blocked by this environment's egress policy); a manual canary run on main after #111 already confirmed the tooling runs on 11.0.100-preview.5.

Documentation

  • Public API / error documentation updated
  • README / doc/ updated
  • French translation (doc/README.fr.md) updated if user-facing behavior changed
  • No documentation change required

The changes add a verbose-only diagnostic line and CI log output; no public API, README, or doc/ content changes. ADR 0002-floor-the-tooling-runtime.md already describes the canary and stays accurate.

Related issues

None.


Generated by Claude Code

claude added 2 commits July 13, 2026 16:41
The worker rolls forward independently of the launching tool (RollForward=
LatestMajor), so the runtime it documents a target on can differ from the CLI's
and was not visible anywhere. Emit a one-line banner built from
RuntimeInformation.FrameworkDescription.

It goes to stdout when the result is written to a file (stdout then carries no
data and the host surfaces it as an 'info' diagnostic) and to stderr in the
stdout-JSON mode so the result stays pure. The preview canary reads this banner
back to show which runtime fce actually used.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015HeXL6s4yGMAgZitfWijs1
The canary passed green but never printed which runtime it ran on: dotnet
--list-runtimes was consumed by a silent grep, so "ran on the preview" had to be
inferred. Print the installed runtimes and the highest major, skip neutrally
unless a runtime newer than the .NET 10 build SDK is present, and name that major
in the success line. With the worker's runtime banner (via --verbose), the log
now shows the preview version instead of leaving it to inference.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015HeXL6s4yGMAgZitfWijs1
@Reefact Reefact merged commit 9ca8119 into main Jul 13, 2026
12 checks passed
@Reefact Reefact deleted the claude/tooling-multi-target-runtime-p4fzmi branch July 13, 2026 19:23
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.

2 participants