Repository navigation
draft-release
Pre-release
Pre-release
[draft-release] - 2026-10-29
Features
- Implement cwa as compiler (4daa681)
- Apply 2026-09-20 spec changes to the site (fdc0243)
- Add "Who it's for" audience cards to the landing hero (22e7b1a)
- contract: [breaking] Define canonical draft schemas, contracts, and fixtures (069ee47)
- site: Generate site validators and content from canonical contracts (64ab7ce)
- contract: [breaking] Amend budget shedding, conflict groups, and trace reasons (dce948e)
- site: Snapshot API, identity-bound sketch, and scoped conformance matrix (21c64d5)
- contract: Prior model turns in history are untrusted transcript (79320b0)
- contract: Only route policy can raise a slot's tier (9ee54ff)
- contract: Snapshot schema and first conformance case (9c020aa)
- contract: [breaking] Add route policy schema; snapshots carry raw items (243f49a)
- contract: Make reason order the admission precedence (464f934)
- site: Drive the conformance matrix from the assembler's claims (9b5d23f)
- contract: Route policy declares required slots, evidence and fitting (c0f5890)
- conformance: Assembler exclusion rows carry their slot (574fc6d)
- site: Import the assembler's M2 claims into the matrix (1eb8725)
- contract: Enforce per-item token_budget caps before shedding (d80342d)
- contract: [breaking] Define conflict resolution and route fact policy (89660ed)
- site: Import the assembler's M3 conflict claims into the matrix (c7eed69)
- contract: Define placement checks and their reason codes (16a5cca)
- contract: Define the cwa-messages/v1 render IR (35b827e)
- site: [breaking] Revise two example profiles so a message request can realize them (1a6ede5)
- contract: Define the profile registry and its lock (dcb2319)
- site: Import the assembler's M4 claims into the matrix (4f5d8a5)
- contract: Define the snapshot digest every implementation computes (52c9c5d)
- contract: Trace each included item's eligibility (ce40ef5)
- contract: Define the conformance report (c9027ec)
- site: Import the assembler's M5 claims and conformance report (d70e14b)
- contract: Cap a slot's share of the payload with max_tokens (e01eb52)
- contract: Add R-24, route-requested exact deduplication (a664ddb)
- contract: Add R-25, route-requested supersession of stale observations (a752d91)
- contract: Add R-26, route-requested source diversity (ab46b9b)
- contract: Hold a slot at the route's min_tokens floor (3856762)
- contract: Have retrievers report the near-duplicates they drop (09ea2f4)
- contract: [breaking] Start example profiles and route policies at version 1 (b91c156)
- contract: [breaking] Name the specification in every profile and trace (6ff8657)
- contract: Let a budget reserve a margin for an estimating tokenizer (77ba261)
- contract: Define estimate-utf8/v1, a portable estimating tokenizer (4b13043)
- contract: Reject invalid snapshots before assembly, without a trace (03e56b8)
- conformance: Report rejection cases beside the assembly cases (fd24188)
- site: Show both implementations' conformance reports on the Assembler page (b080702)
- spec: Enforce R-14's and R-15's producer kinds at admission (b201818)
- spec: Limit producer rows to exclusion codes and let them name superseded_by (65c7390)
- spec: Allow untrusted authority only in tool results, memory and history (3edd04f)
- spec: Gate retrieval producers to the evidence slots with the slot's authority (5a40d11)
- spec: Count an item omitted for its own cap as omitted for budget (72afd89)
- examples: Publish the illustrative route policies the profiles name (84807a5)
- spec: Admit capabilities only from the grant's producer of kind capability_policy (c3562e9)
- spec: Read every snapshot number as a double before comparing (591f7eb)
- site: Tabulate the reference implementations on the Assembler page (261dbd3)
- site: Link the implementations table to GitHub (b9da5e4)
- conformance: Show go assembler report (640e06f)
- spec: Exclude items in slots the route does not list for their producer (43d37f8)
- conformance: Mark surfaced system and tools members in their text (9f9cb88)
- site: Import the three implementations' runs against the draft (6b76d68)
- spec: Have an assembler stop on an application tokenizer under a published ID (ec600d8)
- site: Import the implementations' runs against ec600d8 (645b606)
- spec: Have an assembler stop on an application renderer under a published ID (4576fb5)
- site: Import the implementations' runs against 4576fb5 (6a3a0b2)
- site: Start migrator writes every field admission asks for (579b8bd)
- site: Producers linter checks a producer batch and qualifies its verdict (f80dbdc)
- site: Assembler page labels each implementation's commit with its tags (bbc3106)
- site: Publish llms.txt with producer, assembler and full guides (bfb39e1)
- spec: R-7 renders history in the order turns were said (7fcf8d6)
- spec: Add cwa-message-blocks/v1 as an optional renderer (4f5d65f)
- examples: Add cache-first-chat/v1, a profile ordered for prompt caches (966c4da)
- spec: Write SPEC.md as the Spec page's sections 1 to 6 (150ca6a)
- site: Export the specification to its own repository (c8f331a)
- site: Release the specification repository's tags with ours (13d3203)
- site: Show the rust assembler's report beside the other three (79da314)
- site: Show the prompt-to-slots migrator as an example, not a tool (7b5cc92)
- site: Show the Producers checks as examples, judged at a fixed time (6a55fed)
- site: Walk through each Getting started step on the Ada example (bded523)
- contract: Publish the model lists as contract/model.json (e39255f)
- conformance: Name the repository a report's cases came from (4549cf7)
- spec: Keep the specification's revision history in CHANGES.md (fe1a979)
- spec: Make SPEC.md the normative text the Spec page renders (d6397de)
- conformance: Keep implementation reports in implementations/, imported by Python (d5ef9d6)
- spec: Move the producer and assembler guides to guides/ (408c888)
- conformance: Judge spec content in Python, and export conformance/ whole (7ef1276)
- site: Take the specification from its repository (2906c7c)
- site: Hold the site to an accessibility floor (2a831e8)
- site: Route readers by task, and call pages by their job (0d59b32)
- site: Make the home page layer 1, with a glossary every page opens (46571f7)
- site: Make the home page three slides, with the demo on a page of its own (b4ad812)
- site: Reduce the nav to Home, Spec, Assembler, Placement and the Glossary (c432fc7)
- spec: Hold the Spec page to the specification's sections (080d8c1)
- assembler: Say the assemblers are released, and make the matrix a matrix (cae3384)
- assembler: Make each matrix cell answer whether a rule is proven (aaf1495)
- site: Bring the schema section back to the home page (889348a)
- placement: Remove the profile explorer (ed10f98)
- assembler: Replace the conformance matrix with the live assembly simulator (7001a9b)
- site: Remove the Demo page and the guided tour (500a522)
- site: Bring harness engineering back to the home page (6bd5ef8)
- site: Link only the pages the nav lists (8d58b34)
- site: Remove the pages the nav does not list (c9cd2fe)
- site: Use the organisation's logo in the header (af61679)
- site: Move harness engineering to the Assembler page (188f0c5)
- site: Ask before Viability leaves for the benchmark site (3aae1c7)
- site: Give the Viability notice twenty seconds (b983d28)
- site: Add Examples to the nav, before Viability (4084bb7)
- site: Ask before Examples leaves for the showcase (47c6ef4)
- site: Swap the header's GitHub button for three icons (6dbeb7b)
- site: Show the example's request code on the home page (93f0166)
- site: Say on the first slide what CWA is and show its call (8bc2f49)
- site: Show what the model receives and what was left out (a650af2)
- site: End the home page on one measured result, with its caveat (1d16b31)
- site: Set the example's two build_request()s beside the text (7a165be)
- site: Draw what the model received in the old window, from the trace (e0a3c1e)
- site: Set the measured result beside its numbers, each with a bar (dc079ae)
- site: Link terms where pages use them, not in a strip up front (da96c79)
- spec: Title every rule card, and say what the spec is up front (92fbad5)
- assembler: Cut the simulator to three requests, and say its sizes are typical (30fa392)
- assembler: Show harness engineering as the example's own handoff (08f4af3)
- placement: Show the request the published profile renders (f6ddb77)
Bug fixes
- contract: Judge trace tiers with the route's tier upgrades (8fdcf8a)
- conformance: Keep the conflicts generator from writing bytecode (72cfce5)
- site: Show the assembler's current milestone (b9461dc)
- contract: Define blank strings by the ECMAScript whitespace set (4f465ca)
- contract: Pin timestamps to a portable RFC 3339 profile (b8fd56a)
- contract: Accept R-24 in conformance report rules (d2e8bd6)
- spec: Stop the spec page naming R-23 as the last requirement (33d9a89)
- conformance: Report a rejection case that is not rejected as failed (ffcc379)
- site: Drop the footer link to llms.txt, which does not exist (5ac2cf7)
- contract: Report variant fields as invalid_structure and admit state only from state producers (f6becbe)
- schema: Record an item without a slot as missing_field:slot (a2dea4f)
- site: Name each implementation's repository from its remote (c058a85)
- site: Check items and traces the way the conformance cases do (e52fde9)
- conformance: Serialize small numbers the way RFC 8785 does (4cd248f)
- spec: Close the three gaps the re-check found in the alignment (3b360d2)
- spec: Decide moot groups first and finish the authority wording (2c278c4)
- spec: Close the eligibility predicate at the slot-level rules (389e612)
- site: Store an imported report whole beside its source and digests (12b0b26)
- site: Open the nav from a menu button on narrow viewports (709eacf)
- site: Stack the landing page grids on narrow viewports (ddb5b2f)
- site: Let the landing page's accent follow the dark theme (8b1371b)
- contract: Scope six requirements as boundary where §1 gives part to others (9a6a555)
- site: Place a user's words by speaker in the Start page migrator (e9f1c38)
- conformance: Give each corpus profile its own id and version (9ffd918)
- spec: Reject a snapshot whose batch holds a non-object entry (9062e75)
- conformance: Pin that a tier_upgrades value below the default does nothing (7f2e58e)
- conformance: Reject an integer literal beyond the double range (9916c3f)
- site: List the linter's codes in the order a trace records them (19cf428)
- conformance: Count items for min_included, and retag conflict-request-context (03b6d6a)
- schema: Pair evaluation.date's format with a pattern (501c844)
- conformance: Give the output-contract rejection its own route policy version (26521cc)
- site: Landing page agrees with the spec page and slot defaults (2968285)
- site: The landing demo refuses as the README's fitting and refusals do (a9be9b5)
- conformance: Generators tag R-17 on the three refusal cases (64fa6fe)
- spec: Record unknown_slot and unknown_authority whatever the json type (9e24a29)
- site: Say when an edit breaks the message-array sample (7edff76)
- site: Let the export command read its own commit again (a58da21)
- site: Scroll the Demo page to a plain anchor once it has rendered (9133f68)
- site: Footer on every page, Viability in the nav, a level Glossary button, and > bullets (5abf243)
- site: Stack the Placement protocol rows on phone widths (f219d55)
- site: Make the phone menu panel consistent and close like a menu (1eb57d5)
- site: Stop the Spec page scrolling sideways on phones (4a5c0be)
- site: Open the glossary scrolled to the term that opened it (b17b021)
- site: Scroll the glossary to a term the page opens with (c939c57)
- site: Wrap the home page's code instead of scrolling it sideways (d2bd73c)
- site: Say in the footer that four assemblers implement the spec (99fc3c4)
- site: Say what Viability holds now that the home page cites it (77a01d0)
- site: Wrap the published profile instead of scrolling it sideways (e8ea320)
- spec: Stack rule cards on phones, and set the profile in the site's mono (e88e14a)
- assembler: Polish the simulator note, the handoff and the phone table (7fc37bb)
- site: Wrap code-panel headers as whole labels on a phone (ee56fa2)
Refactoring
- conformance: Drop an unused constant from the conflicts generator (1986791)
- site: Drop the landing page's unrendered spec data (0ba263d)
- site: Move the Start page downloads and profile labels to site/ (7a5ea8d)
- site: Thin the home page toward three slides (69ee630)
Documentation
- landing: Rewrite fragmentary copy as full sentences (f8afd79)
- spec: Rewrite fragmentary non-normative copy as full sentences (da06ad6)
- producers: Rewrite fragmentary copy as full sentences (e1ac8e3)
- evidence: Rewrite fragmentary copy as full sentences (9590eb4)
- Add contract decisions, README, and technical brief (5de5c6f)
- contract: Specify admission edge cases the reference found (7239c57)
- contract: Size a body by its largest rendering when placements differ (3227b9a)
- contract: Order strings by UTF-16 code units (3b9bb51)
- site: Record the deferred call key and cluster mode in future work (d141663)
- site: Label the specification a draft without a version number (19e2740)
- Generate the repository changelog from the commit history (9fbde72)
- conformance: State the cost of fitting and how producers keep it low (31d4158)
- site: Show a real tokenizer in the assembler example (68972ad)
- site: Show M13 done on the Assembler page (ccc1901)
- spec: Bring the hand-written prose in line with R-1 to R-26 (c470221)
- spec: Let conflicts escalate format vs safety, and keep "refuse" for assemblies (f4359a4)
- site: Align the Assembler page with the spec's refuse, reject and exclude (4795fea)
- site: Align the Producers page with the updated spec (c9788a3)
- spec: Say chunk and evidence item, the words people already use (8fa2d6d)
- Remove the technical brief and the contract decisions log (3ed8640)
- spec: Fix the last places the prose contradicts the requirements (2598767)
- conformance: Say what escalate, surfaced shedding and promotion do (6e41cab)
- spec: State the admission and snapshot checks in the requirements (2739e98)
- spec: Make the trace fields the cases compare MUST (0cf0434)
- spec: Finish aligning the requirements with the conformance cases (4a84a57)
- spec: Let authority alone decide instructions and facts ignore trust (4c02571)
- spec: Say what the marker does to pasted material and name R-10's checks (e5ffd72)
- site: Say twenty-six numbered requirements, not twenty-three (b1854a2)
- spec: Name every reason code in the requirement that owns it (21f19c5)
- site: Describe the Assembler page's implementations in the plural (918bf56)
- site: Drop the "free" qualifier from the specification (409f19f)
- site: Add a style guide for the website (24a4b9a)
- site: Record the landing page's responsive hooks and accent fix (b710c7b)
- spec: Say what a conformance claim rests on (d8968a5)
- spec: Define a conformant application (76688a9)
- spec: Require a conformant application to render with a covered renderer (e2908ee)
- spec: Require relevance on every knowledge item in R-13 (0a7d7e1)
- spec: Give a retrieved chunk in tool results observation authority (5c7bec0)
- spec: Require a conformant assembler to provide all four tokenizers and renderers (cd5cd05)
- spec: State what backs a conformant application's tokenizer (3ac6de9)
- spec: Cite R-7 and R-16 in the handoff for what they bind (ad7280b)
- spec: List every application-only MUST in section 1 (47b7e68)
- site: Stop the landing page offering message roles as a syntax choice (cfac408)
- site: Show a real cwa-messages/v1 request on the landing page (c42019d)
- site: Route the Agents SDK seam by role, not through instructions (e5468a2)
- site: State the Apache-2.0 terms on every licence line (cd38979)
- conformance: Leave recovery.detail out of the trace comparison (1aea31d)
- schema: Bring four descriptions up to the requirements they cite (8c79f31)
- spec: Align shared page prose with R-3, R-9, R-16 and R-17 (4850517)
- Fix the READMEs' tokenizer, escaping and implementation wording (36f3c8b)
- site: Fix stale rules on the landing page and in the Payload scaffold (d819cd5)
- site: Fix stale claims on the Start, Assembler, Producers, Evidence and About pages (4168e3b)
- spec: Scope §1's producer claim, and keep "live turn" for the query (51107eb)
- examples: Name the published route in the example item's eligibility (e8276be)
- spec: Date the draft 2026-09-30 (4f32396)
- conformance: State the profile id rule as the corpus keeps it (85f5fe3)
- spec: Name each kind in R-16's published-ID clause (a835e62)
- conformance: Date validity is RFC 3339's rule, asserted through format (79d60ed)
- site: State the mcp capability code where the route decides it (bc5069a)
- contract: Scope notes, guide bullets and refusal tags match the rules (eb9bf97)
- site: Page copy matches the rules and the implementations' status (d229b74)
- site: Landing page states refusal, rejection, components and claims (641472a)
- site: Landing page drops rule-like statements nothing backs (8cb7265)
- site: Landing slot, field and stage copy follows the spec page (8a331b8)
- site: Landing page clarity edits (7c5dbe7)
- site: Start step 2 freezes a snapshot for a conformant assembler (1373d78)
- site: Start step 5 states the profile's snapshot checks (c5164d3)
- site: Start step 4, hero and Next point to the assembler and the cases (a38639f)
- contract: Start downloads cover snapshot rejection and the assembler's stages (d93cab6)
- site: Producers fit, freshness and id rows follow R-2, R-12 and the README (98cd4ef)
- site: Producers page states the batch and what a trace's stage means (ba4ba09)
- site: Producers cards state each kind's slot rule and duties (fddd8ad)
- site: Producers minimum fields and defaults say what admission reads (dbfc275)
- Name the assembler checkouts after their repositories (5e92623)
- site: Say how placement meets a prompt cache and who owns what (b5c3188)
- spec: Tighten the prompt-caching changelog group (b7b0d5c)
- site: Link the specification repository (b6bbf64)
- conformance: Say what rewrites SPEC.md now (fc51bf8)
- examples: Add the trace of the messages snapshot (7412e9d)
- style: Say less, link a term at its first use (b0914b3)
- site: Describe the four-slide home page wherever it is described (4b5f904)
- readme: Reorganize around quickstart, install, wiring and idempotency (f2a092d)
Tests
- conformance: Add admission-reasons case (a211b2f)
- conformance: Add budget fitting and refusal cases (9e40504)
- conformance: Add budget-route-tiers case (d84bbd8)
- conformance: Add token_budget cap cases (adae6e1)
- conformance: Add conflict resolution cases (271f4c3)
- conformance: Add placement cases (b303ca4)
- conformance: Add cwa-messages/v1 cases (c131acc)
- conformance: Pin the example profiles in a registry lock (ac55a4a)
- conformance: Add the ordering-astral-ids case (78a9d10)
- conformance: Add max_tokens slot-cap cases (0526686)
- conformance: Add R-24 deduplication cases (ff333f1)
- conformance: Add R-25 supersession cases (13d4ff9)
- conformance: Add R-26 source diversity cases (6ba14c0)
- conformance: Add min_tokens slot-floor cases (a8530ee)
- conformance: Add a producer-reported near-duplicate case (bc54ba0)
- conformance: Add margin and estimate-utf8 fitting cases (a3ad837)
- conformance: Add fourteen rejection cases, one per snapshot check (a50f31f)
- conformance: Pin duplicate ids, lowered tiers and producer rows in admission-reasons (7be2f49)
- conformance: Add cases for attribute escaping and margin rounding (387a3e9)
- conformance: Cover the admission codes admission-reasons skipped (7521b71)
- conformance: Cover instruction escalation, protected variants and surfaced shedding (b6ac47e)
- conformance: Reject every unrealizable profile rule, not just one (baff955)
- conformance: Check the contract's own consistency with check.py (fbb9a0c)
- conformance: Cover a missing scope key, the age limit and instruction escalation to context (1aee8f3)
- conformance: Cover repeated occurrences of a compressed item (d98758a)
- Name the sample Python report after the renamed distribution (3e03b38)
- Pin that each required component is used without an optional one (07b8581)
- spec: Show the exported specification runs alone, and a vendor of it changes nothing (b37f444)
Build
- site: Generate the landing page's sample request from its payload (ee0f256)
- site: Generate the Producers example item from the published one (92a7e5a)
- spec: Vendor spec a010650 (26b81ea)
- spec: Vendor spec c9d42bb (09a803a)
- spec: Vendor spec 4e957ab at draft-release (73304e7)
- spec: Vendor spec 16de4be at draft-release (1c0b215)
- examples: Vendor the 01-docs-qa example at examples 119b5cc (555f71f)
Continuous integration
- Run the contract and site tests on Node 22 and 24 (4694df8)
- Release each tag on GitHub once ci passes on it (b90bd6d)
Chores
- Initialize repo (d01076c)
- Add guided tour (93f20b4)
- Add CNAME (8de856e)
- Update erroneous text (b9d9f1b)
- Update website to v11 (d830fec)
- Update website to v12 (cfb4907)
- site: Pin the assembler's status to 15089ef (97acb70)
- site: Pin the assembler's status to 692eb4c (f480e79)
- site: Re-import the assembler's status at 4577d79 (ad9a975)
- site: Re-import the assembler's status at 136133c (025d08c)
- site: Re-import the assembler's status at 7817552 (f30b7b3)
- site: Re-import the assembler's status at d412843 (40bbc60)
- site: Re-import the assembler's status at 1bc277d (2942793)
- site: Re-import the assembler's status at 639ddc0 (727dc86)
- site: Re-import the assembler's status at f87b6fe (f9f45cc)
- site: Re-import the assembler's status at 7748c23 (f6fc396)
- site: Re-import the assembler's status at f53c119 (4cbb723)
- Ignore .claude/ and .idea/ (a1c32c0)
- site: Re-import the assembler's status at a935265 (d06cea4)
- site: Re-import the assembler's status at cd76680 (0002ab4)
- site: Re-import the assembler's status at 0c1d644 (fde8e30)
- site: Re-import the assembler's status at fbe1def (5fbe420)
- site: Count rejection cases in the status import's summary (7b34ce6)
- License the spec and site under Apache-2.0 (58d4e5e)
- site: Re-import the assembler's status at f6d6900 (2033f6f)
- site: Re-import the assembler's status at f4dd842 (06fa9b1)
- site: Re-import the assembler's status at cc05241 (8f962df)
- site: Re-import the assembler's status at ea57710 (5131fe8)
- site: Re-import the assembler's status at d0129db (736fbdf)
- site: Re-import the TypeScript assembler's report at 6723350 (c4f9f87)
- site: Re-import the assembler's status at 749a172 (2e5d48b)
- site: Re-import the TypeScript assembler's report at 98672b5 (4f565a7)
- site: Re-import the assembler's status at a25c304 (f116c00)
- site: Re-import the assembler's status at 6ce7260 (f839c7e)
- site: Re-import the TypeScript assembler's report at a7d6b82 (37ff123)
- Consistent header (d1b476d)
- site: Drop the milestone line from the Assembler page header (1dd0d0d)
- Set theme default to light (804e351)
- site: Re-import the implementations after their runner fixes (e8ba199)
- site: Re-import the Python assembler after its unsupported-component fix (bc2148e)
- site: Re-import the Python assembler at 10a697b (d38f218)
- site: Import the implementations vendored at d38f218 (f446b3d)
- site: Import the implementations vendored at d229b74 (9c2ded5)
- Update .gitignore (65818af)
- site: Import the implementations at their draft-release tags (f6a3407)
- site: Import the implementations at their caching branches (1a4941d)
- site: Re-import the implementations at their current caching heads (842b705)
- site: Re-import the implementations at their draft-release tags (b650b2f)
- site: Re-import the implementations at website fc51bf8 (20019de)
- site: Re-import the python assembler at website 9e24a29 (68d1d81)
- site: Re-import the TypeScript assembler at website 9e24a29 (c0f3f43)
- site: Re-import the implementations at website 79da314 (04a36e9)
- site: Re-import the Go assembler at 9a0ea57 (277b141)
- site: Re-import the python assembler at website e39255f (2d09823)
- site: Re-import the python assembler at draft-release 948c28b (5f5c03c)
- site: Re-import the implementations at website 4549cf7 (90f5958)
- site: Re-import the python assembler at draft-release f2eada2 (802ac53)
- site: Re-import the python assembler at draft-release 5ff7ee1 (3cfadd9)
- site: Re-import the python assembler at draft-release 2085b6c (5c0208e)
- site: Re-import the implementations at website 7ef1276 (cef9dec)
- site: Re-import the python assembler at draft-release 6d6514f (d6875d3)
- site: Send questions and changes about the specification to its repository (52687bd)