Repository navigation
chore: retire the prober for ValueRanges' oracle kit - #99
Closed
CaffeinatedCoder wants to merge 2 commits into
Closed
CaffeinatedCoder wants to merge 2 commits into
CaffeinatedCoder wants to merge 2 commits into
Conversation
FaultResponse.WithoutFaultName() answers a member without naming it, for causes a client must not tell apart: a sign-in's unknown user and wrong password, mapped to 401 and withheld, answer alike without a mapping to one member at the boundary. The problem has no fault and no rule, and a fault set member's description no longer stands in as its detail, since it names the member as surely; the occurrence's own detail is kept. IFaultFeature gains NameWithheld, a default member, so the host still logs the fault and sees that the client is not told. The document's problem schema is shared and keeps fault optional; a response whose every fault withholds its name ends its description with "The problem names no fault." The startup warning for two fault types that write one name counts only the members that write it (Found-By: VA, the sibling of the problem's fault member). Decision 111 records it; decision 64's index row points to it. Stacked on feat/catch-async-valuetask for the record's number. Seven probe seeds that patch the changed lines are regenerated: C03 shared-status-types, C05 stays-the-errors, C06 description-as-detail and no-description-no-detail, C08 leave-one-out-fixes, C14 declared-describes- fault and declared-problem. Closes #85 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The prober cost more than it paid: a release's `prober seeds --all` built the probe harness once per seed, 170 seeds at about four minutes, and one change to the fault responses staled 23 seeds of five probes. The replay, the footprints, the ledger, the covering arrays and the gate carried the same weight. Removed: tools/Prober and its tests, the corpus under tools/probe/ with its 38 probes and 170 seeds, the probes and probe-status jobs of dotnet.yml, the replay and gate steps of release.yml, .claude/probe-axes.md, the probe-triage skill, the probe conventions tests, and DocsQuery's check of the facts the corpus cited. The verified facts and their fixtures stay. Added, after CodoMetis.ValueRanges (test/oracles/README.md): - claims.json: the prober's 169 obligations as 150 claims, one per distinct sentence, each quoted verbatim, 112 held by a named test class; - surface-waivers.json: every public member of the run-time libraries is claimed or waived; the documents never read for claims are waived as unread (#98); - oracles.json and seeds/: five oracles that already existed (JsonParityTests, NullDelegateTests, AsynchronousContextTests, NotWireTypeTests, KeyGenerationVariantTests), each with a seed; all five caught by `oracles seeds`, about ten seconds each; - candidates.json and axes.md; - test/CodoMetis.TypeKit.Oracles.Tests, which holds the catalogue in CI, and tools/Oracles, the local `seeds` and `status`. Decision 112 supersedes decisions 96, 99 to 104 and 108, decision 107 but for its fixture rule, and decision 97's gate. AGENTS.md, CONTRIBUTING.md and design/plan.md describe the kit. Stacked on #96 for the decision's number. Closes #97 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CaffeinatedCoder
changed the base branch from
feat/withheld-fault-name
to
release/2.3.0
October 28, 2026 20:40
Owner
Author
|
Superseded by #108: the branch was renamed to |
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.
Closes #97
Stacked on #96 (and through it on #94), for the decision record's number: 0110 and 0111 are theirs, and this record is 0112. Once they merge, this PR's base becomes
release/2.3.0.Problem
The prober cost more than it paid.
prober seedsbuilt the probe harness once per seed, 170 seeds at about four minutes each, so a release'sseeds --alltook about eleven hours. One change to the fault responses (#85) staled 23 seeds of five probes, about 90 minutes. A checkout whose ledger had never recorded a catch wanted all 170. The replay, the footprints, the ledger, the covering arrays and the release gate carried the same weight.Change
Retired:
tools/Proberand its tests;tools/probe/: 38 probes, their rows, 170 seeds;probesandprobe-statusjobs ofdotnet.yml, and the replay and gate steps ofrelease.yml;.claude/probe-axes.md, theprobe-triageskill and the five probe conventions tests;Added, CodoMetis.ValueRanges' kit ported to xunit (
test/oracles/README.mdis the manual):claims.json: the prober's 169 obligations as 150 claims, one per distinct sentence, each quoted verbatim. 112 are held by a named test class; the 38 with an emptyheldByare the worklist.surface-waivers.json: every public member of the five run-time libraries is claimed or waived. Members of documents the prober never read are waived asunread:, and Oracle catalogue: read the documents the prober never read for claims #98 reads them.oracles.jsonandseeds/: five oracles that already existed (JsonParityTests,NullDelegateTests,AsynchronousContextTests,NotWireTypeTests,KeyGenerationVariantTests), each with a seed insrc/.candidates.json(empty) andaxes.md(hand-written).test/CodoMetis.TypeKit.Oracles.Testsholds all of it in CI without building anything else. It is a project of its own because the surface is read by reflection, and the conventions project references no library.tools/Oracles, run locally:seeds [filter]copies the tree, applies one seed, builds one project and runs one class;statusprints the worklist.Decision 112 supersedes decisions 96, 99 to 104 and 108, decision 107 but for its fixture rule, and decision 97's gate. AGENTS.md (commands, workflow step 7, Releasing), CONTRIBUTING.md (release steps, label legend),
design/plan.md, the PR template and theverify-the-guardskill follow.Tests
oracles seeds: all five seeds caught, about 10 s each.json-key-written-by-to-string: 71 of 157JsonParityTestsfail.ushort-key-not-generated: 19 of 547KeyGenerationVariantTestsfail.result-reads-as-json: 15 of 99NotWireTypeTestsfail.patch-traverse-takes-a-null-selectorandtraverse-async-resumes-on-the-caller-s-context: one row each ofNullDelegateTestsandAsynchronousContextTests.docs/json.mdfailsEvery_claim_quotes_its_source_verbatim;Every_public_member_is_claimed_or_waived.main's required checks name no probe job, so nothing waits on a check that no longer runs.Merge notes:
tools/probe/; resolve those as deletions.Fault.*,OptionAssertions.*).🤖 Generated with Claude Code