Skip to content

Spec 018 phase 5: S3, Darker; Understanding Brighter - #204

Merged
iancooper merged 7 commits into
masterfrom
spec/018-phase5
Oct 22, 2026
Merged

iancooper merged 7 commits into
masterfrom
spec/018-phase5

Conversation

@iancooper

Copy link
Copy Markdown
Member

Summary

Spec 018 phase 5, S3: Darker, and Understanding Brighter (ten pages). This changes the published site, so it needs your sign-off.

  • The ten pages now hold 144 C# blocks: 114 BUILT, 19 FAILED, 11 SKIPPED. At the start, 8 were BUILT. Three fences were split; five lists of query names were retagged text. The 19 that stay FAILED are all same-page (they name types that another block on their page declares) and each is listed. Seven scaffold units are new.
  • API defects repaired (ledger 52–59):
    • A V9 handler factory shown as current.
    • Dead-letter parameters on Subscription<T> (only RmqSubscription takes them).
    • ConfigurationCommandType.StopChannel (it's CM_STOPCHANNEL, sent with Post).
    • IQueryHandler implemented with two of its five members.
    • Swashbuckle in a Darker setup.
    • The message pump's private calls misquoted.
  • D21, your R8 ruling: a fourth skip reason, "a line quoted from Brighter's source, calling a private member or reading the pump's own state". It's allowed only where the block cites the file and line it quotes, and that line matches the tag. HowServiceActivatorWorks.md sphinx-ify "Usage Documentation" #1–Adds documentation for Feature Switches. Fix for #272 and fix for other non-raised issue. #6 carry it; all eight cited lines match 10.8.0.
  • Running the blocks overturned five claims (ledger 60–64), each repaired:
    • 60: QueryPipeline.md said a [FallbackPolicy] handler without FallbackAsync fails. It returns null, with no exception.
    • 61: pitfall 3's ✅ Good block failed at startup. AddPolicies requires Darker's two default policies, and the registry held only the custom one.
    • 62: HowServiceActivatorWorks.md said the Command Processor takes its options from AddBrighter. With AddConsumers alone, AddConsumers' options configure both. With AddBrighter first, handlers must be registered on AddBrighter's builder: registered on AddConsumers' builder, they are never found. No page shows that shape.
    • 63: ImplementAQueryHandler.md's manual registration used Activator.CreateInstance on a handler that takes a repository, which throws MissingMethodException.
    • 64: a domain exception named UnauthorizedAccessException hid the BCL's.
  • Probes: spec/018-compile_residual/probe/s3/darker-pipeline (Darker 4.1.1, 22 rows) and probe/s3/dispatcher-instrumentation (Brighter 10.8.0, 4 cases). Each runs against the released packages, with its case and its control (tasks.md § Behaviour (5.4), Second pass (5.5)).

Gates

Gate Result
blockcheck --report 992 blocks: 642 BUILT, 323 FAILED, 27 SKIPPED — 0 findings, exit 0. 553 assemblies on each pin, 67 units, 0 violations
pagelint 0 errors / 271 warnings (was 346); --changed strict, 0 errors; --plant 5 / 5
symbolcheck 0 — 24 entries, 14 silenced
linkcheck · shape · redirects · --verify · versioncheck · optioncheck unmoved: 168 / 0 · 161 · 77 · 161 = 161 · 0 of 18 · 0 / 59 / 529

pagelint, units and assemblies are inside the bands task 5.1 predicted. Corpus, BUILT, FAILED and SKIPPED are outside them, and one account covers all four: five unpredicted retags, 19 same-page stays rather than 3–8, and ten new skips rather than 0–3, six of them under D21. Making fragments whole on one running example per page moved blocks from page-type to same-page (tasks.md § Phase 5 closed).

For you

  1. Sign-off: this changes the published site, on S3's ten pages: CQRSWithBrighterAndDarker.md, DarkerBasicConfiguration.md, EFCoreQueryIntegration.md, HowConfiguringTheCommandProcessorWorks.md, HowServiceActivatorWorks.md, ImplementAQueryHandler.md, QueriesAndQueryObjects.md, QueryPatterns.md, QueryPipeline.md and ReactorAndProactor.md. No page outside S3 changed.

    May I merge?

  2. After the merge, may I delete the head ref spec/018-phase5?

🤖 Generated with Claude Code

https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy

iancooper and others added 7 commits October 18, 2026 19:28
… API defects, off-group 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
…; ledger 52–55, R8 asked

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
…, 5 retagged; ledger 56–60

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
…orks.md #1–#6 skipped with their 10.8.0 lines cited

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
…ledger 61–62

- probe/s3/darker-pipeline (Darker 4.1.1): pitfalls 1-4, decorator ordering and logging, both base
  classes' fallbacks, the interfaces. Pitfall 3's Good registry lacked the two defaults AddPolicies
  requires (ledger 61); pitfall 2 now names MissingHandlerDecoratorException
- probe/s3/dispatcher-instrumentation (Brighter 10.8.0): AddConsumers' options configure the Dispatcher
  and, alone, the Command Processor too (ledger 62); with AddBrighter first, handlers belong on its builder
- --report 992 / 642 / 323 / 27, as predicted

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
…ps clean; ledger 63–64

- ImplementAQueryHandler.md #16: Activator.CreateInstance cannot build a handler that takes a
  repository (MissingMethodException, run in probe/s3/darker-pipeline); the factory now constructs it,
  and the undeclared GetPersonQueryHandler is gone (ledger 63)
- #22/#23: the domain exception hiding System.UnauthorizedAccessException is OrderAccessDeniedException
  (ledger 64); #23's listed diagnostic completed
- no symbolwatch rows earned; --report 992 / 642 / 323 / 27, unmoved

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
…onciled against 5.1

- baseline.tsv: every BUILT block on the ten S3 pages, 114 rows replacing 8; three keep their ref,
  the rest at b9183b0. --report 992 / 642 / 323 / 27, exit 0, 0 findings
- readings: 100 changed C# blocks, all S3; 17 added '// ...' lines in 9 blocks, each BUILT or a D21 skip
- gates: corpus, BUILT, FAILED, SKIPPED outside 5.1's bands, one account (5 retags, 19 same-page stays,
  10 new skips); pagelint 271, units 67, assemblies 553 in band
- tools/README.md rows 2 and 9 at the close

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
@iancooper
iancooper merged commit f4d965f into master Oct 22, 2026
10 checks passed
@iancooper
iancooper deleted the spec/018-phase5 branch October 22, 2026 22:51
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