[Dreaming] dreaming: clarify RenderImmediateMessage as the correct path for immediate TerminalLogger output#14381
Open
github-actions[bot] wants to merge 1 commit into
Conversation
rainersigwald
approved these changes
Jul 15, 2026
| * Must handle terminal width changes, very narrow terminals, and non-TTY output (piped to file). | ||
| * Concurrent project builds must render without corruption. | ||
| * ANSI escape sequences must be cross-platform compatible. | ||
| * Use `RenderImmediateMessage` (not direct terminal writes) for any message that must appear immediately outside the normal node-status rendering cycle — for example, messages with a null `BuildEventContext` or `IsAuthProviderMessage` events. Direct terminal writes bypass the node-display logic and corrupt the rendered output. |
Member
There was a problem hiding this comment.
Suggested change
| * Use `RenderImmediateMessage` (not direct terminal writes) for any message that must appear immediately outside the normal node-status rendering cycle — for example, messages with a null `BuildEventContext` or `IsAuthProviderMessage` events. Direct terminal writes bypass the node-display logic and corrupt the rendered output. | |
| * Use `RenderImmediateMessage` (not direct terminal writes) for any message that must appear immediately outside the normal node-status rendering cycle, like messages that require user intervention or explain long delays. Direct terminal writes bypass the node-display logic and corrupt the rendered output. |
(null BEC is not an interesting part of the problem IMO).
ViktorHofer
approved these changes
Jul 15, 2026
ViktorHofer
pushed a commit
that referenced
this pull request
Jul 16, 2026
…itten member) (#14383) ## Context: validating the reviewers + multi-PR change After #14373 merged, I triggered a live Dreaming run ([29432875878](https://github.com/dotnet/msbuild/actions/runs/29432875878)) to validate the new behavior. Results: - ✅ **Multi-PR worked** — the run opened **two atomic PRs**, each touching a single file with a distinct theme (#14381 logging instructions, #14382 expert-reviewer agent). Exactly the intended one-pattern-per-PR shape. - ✅ **Reviewer section rendered** on both, with the softened "please assign" wording. - ❌ **One reviewer was wrong.** #14382 listed `@baronfel`, who is **not** on the `@dotnet/kitten` roster (`gh api orgs/dotnet/teams/kitten/memberships/baronfel` → 404) **and** was not in that PR's cited discussion (only `@jankratochvilcz` was). The agent invented a plausible-sounding name instead of strictly filtering. (#14381's `@rainersigwald` was correct — active kitten member and the actual reviewer.) ## Fix Tighten Step 5b so a reviewer qualifies **only if the login is in BOTH**: 1. the fetched `orgs/dotnet/teams/kitten/members` output, **and** 2. that pattern's actual discussion-participant list. Plus explicit guardrails: - **Never** add a name from memory / general knowledge of "who works on MSBuild" / because it seems plausible. - A **pre-emit self-check**: before emitting each PR, verify every `@`-mention on the reviewers line is in both lists; drop any that fail. - When in doubt, prefer the `@dotnet/kitten` fallback over guessing an individual. ## Scope Only the Dreaming workflow prompt + recompiled lock (1-line lock change: the embedded prompt hash/text). Compiles clean (0/0). This directly closes the gap the validation run exposed. --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jankratochvilcz <2202487+jankratochvilcz@users.noreply.github.com>
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.
What changed
Added one bullet to
.github/instructions/logging.instructions.md(Terminal Logger section):Why (recurring evidence)
@rainersigwaldexplicitly flagged that the change should useRenderImmediateMessageinstead of a direct terminal write, explaining it "is designed for exactly this case."RenderImmediateMessage.Two independent PRs triggered the same correction from the same reviewer.
Duplication check
The existing
Terminal Logger (FancyLogger)section inlogging.instructions.mdlists corruption concerns but does not mentionRenderImmediateMessage. No other instruction or skill file covers this API contract.Reviewers (core MSBuild team)
Suggested reviewers — core-team members who discussed this pattern (please assign):
@rainersigwaldWarning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
awmgmcpgSee Network Configuration for more information.