Report what an application says about how it is served - #2422
Conversation
Chronicle tags observers, read models and event types alike, and only the event had somewhere to put them - so the reading lived where the event was read. Nothing about it is particular to events. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VRa2Z1cA6D3Fuw9TAo6m2p
The generator reports everything it cannot express, so that a reader can tell an application that does not do something from a generator that could not say it. Three things broke that and were passed over without a word: a query the host pages or sorts, a route template declared with [Path], [Route] or on an HTTP verb, and the tags a read model carries - while an event's tags are printed, which makes their absence read like the application's own. Paging, sorting and routes share SP0041: all three say how a caller reaches the application rather than what it is, so a reader who does not want to hear about it suppresses one code. Tags take SP0042, because the reason differs - a read model is named in the document only as what a query answers with, so what it carries beyond its shape has nowhere to go at all. The plumbing a host fills in of its own - a cancellation token, a query context - is still passed over silently. Neither says anything about the application. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VRa2Z1cA6D3Fuw9TAo6m2p
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VRa2Z1cA6D3Fuw9TAo6m2p
|
Reviewer context — deliberately kept out of the description. This is agent-authored and no human has read it yet. Green CI is not sign-off. Closes the three silent drops in #2415. Codes are allocated in one range from this branch alone: SP0041 and SP0042, above the previous high of SP0040, with SP0029 still the deliberate gap. One code or threeThe issue left this open. Paging, sorting and route templates share SP0041: all three say how a caller reaches the application rather than what it is, and a reader who does not want to hear about how the application is served wants to suppress all of it at once. Tags take SP0042 because the reason is different — a read model is named in the document only as what a query answers with, so what it carries beyond its shape has nowhere to go at all. That is also why tags read as the more surprising omission: an event's tags are printed, so their absence on read models reads like the application's own. Both are Information, so neither changes an exit code. Verified against source MSBuild compilesAda declares none of these — no query takes So the behaviour was exercised on a purpose-built application compiled through MSBuild, not only on source strings — a read model that is tagged, routed with
A bare Judgment calls worth checking
VerificationRelease 0/0 on |
|
CI note — the red check here is not a defect in this branch. Two separate non-results stacked on run 30458066898:
I have not re-run again, because doing so cancels that branch's in-progress build while its author is iterating. This needs one maintainer re-run at merge time. What stands on its own meanwhile: Release build 0 warnings / 0 errors on |
|
Consolidated into #2425 so the open work ships as one release. Every commit from this branch is contained in |
Added
SP0041reports a query the host pages or sorts, and a route template declared with[Path],[Route]or on an HTTP verb — all previously dropped without a word (Screenplay generation: query paging, sorting, routes and read model tags are dropped silently #2415)SP0042reports the tags a read model carries, which the document has nowhere to hold while an event's tags are printed (Screenplay generation: query paging, sorting, routes and read model tags are dropped silently #2415)