Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A version's heading reads `## <version> — Unreleased` until the release is pre
the release date. The release workflow refuses a tag whose section still says `Unreleased`, and the
section is the GitHub release's notes.

## 2.2.0 — Unreleased
## 2.2.0 — 2026-10-18

### Fixed

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
Date: 2026-10-17
Status: accepted

The gate passed on release/2.2.0 on 2026-10-18 (#62: declarations citing this record and KB-042, exclusions with reasons and rows for the 17 refusals; #63: the fix for F4, a nullable value object as a component losing its null, which C21's regenerated rows raised and the code-analyst confirmed).

Context: 2026-10-16 and 2026-10-17, the second workstream (WS2, the harness) of the concept for finding issues with
agents, which set out to make the probe corpus (`tools/probe/corpus`) and the prober (`tools/Prober`) find defects
mechanically. The gate round of 2026-10-16 that preceded it had written 18 probes and found two product defects and about
Expand Down
2 changes: 1 addition & 1 deletion design/adr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,4 +114,4 @@ per area ([design](../plan.md)) link to the records they rest on.
| [0105](0105-every-tool-is-built-in-the-session-s-checkout.md) | SessionStart builds the guard in `$CLAUDE_PROJECT_DIR` and every other tool, through `tools/AgentTools.slnf`, in the session's own checkout; a hook, the prober, the smoke test and the verdict fall back to the SDK installer's `dotnet` when the one on PATH lacks the pinned SDK, and a session start that builds nothing tells the agent; the guard lets `dotnet msbuild -getProperty/-getItem` without a target through | 2026-10-17 | accepted |
| [0106](0106-a-parameter-of-a-value-object-over-a-described-type-is-inlined.md) | A value object over a type the JSON options describe is written inline as a route, query, header or form parameter and as an element of a query or header array, where value objects are components: the component is its JSON positions'; every other value object keeps its reference; the schema below a parameter is asked for with the parameter's source and type alone | 2026-10-17 | accepted |
| [0107](0107-a-cited-fact-is-executable-and-seeds-run-by-footprint.md) | A fact that prunes or excuses a row is executable: `docs-query check` fails `fact-not-executable-cited` where a refused entry, a not-promised entry, an obligation's declaration or the harness cites a fact without its test; a fact's measured answer is `KBNNN.fixture.json` beside its test, named by `fixture:`, read by a BCL-only reader the harness will use; `prober seeds` runs only the probes whose seeds identity or product footprint changed since every seed was caught, and a release runs `--all` | 2026-10-17 | accepted |
| [0108](0108-a-probe-check-earns-credit-against-a-baseline-and-ws2-closes.md) | A probe row runs a check per obligation, each against a baseline, and the ledger credits checks; an excuse is a closed citation, applicability is declared on the obligation, the http, json and text harness compares three sides by exception type and stage, decision 99's refused document among them, and the twins and the context are generated with the shapes; `NoteKeys` keeps its pass keys and `framework-refuses`; `prober fix`, a covering array that places no blocked pair, and `gaps` listing the pairs no passing check read both axes of; WS2 closes, and WS3 to WS6 are dropped | 2026-10-17 | accepted |
| [0108](0108-a-probe-check-earns-credit-against-a-baseline-and-ws2-closes.md) | A probe row runs a check per obligation, each against a baseline, and the ledger credits checks; an excuse is a closed citation, applicability is declared on the obligation, the http, json and text harness compares three sides by exception type and stage, decision 99's refused document among them, and the twins and the context are generated with the shapes; `NoteKeys` keeps its pass keys and `framework-refuses`; `prober fix`, a covering array that places no blocked pair, and `gaps` listing the pairs no passing check read both axes of; WS2 closes, and WS3 to WS6 are dropped | 2026-10-17 | accepted; the gate passed on release/2.2.0 on 2026-10-18 (#62, with the fix #63 for the finding F4 the regenerated C21 rows raised) |
2 changes: 2 additions & 0 deletions src/CodoMetis.TypeKit.Analyzers/AnalyzerReleases.Shipped.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,5 @@ CMTK0003 | Usage | Error | Usage | Warning | IgnoredOutcomeAnalyzer, raised in a
Rule ID | Category | Severity | Notes
--------|----------|----------|-------------------------------------------------------------
CMTK0014 | Usage | Warning | UndefinedEnumValueAnalyzer, a FaultKind or ConstructorAccessibility that names no member

## Release 2.2.0
5 changes: 4 additions & 1 deletion src/CodoMetis.TypeKit.AspNetCore/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,10 @@ app.MapDelete("/orders/{id}", (OrderId id) => orders.Cancel(id).ToHttpResult());
- **The document shows it too.** The endpoint's return type is ASP.NET's own
`Results<Ok<OrderDto>, FaultProblem<OrderFault>>`, so the operation describes the value.
`AddTypeKit()` adds a problem response for every status the error type is mapped to, as
`ProducesProblem` would. An MVC action returning the same type is described the same way.
`ProducesProblem` would. An MVC action returning the same type is described the same way. A
response you declare yourself at one of those statuses, with `Produces(404)` or
`[ProducesResponseType(404)]`, is kept as you declared it: the document doesn't add the problem
schema there, though the wire still answers a problem.
- **It's not a wire format.** The `Result` is matched to a response, not serialized. Returning the
`Result` itself from a handler is still rejected, and the document would promise a `Result`.
- **It changes every error response of the host, not only these.** `AddFaultResponses` calls
Expand Down
Loading