| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 17s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Successful in 17s
wai-app and Create / wai-app · does this change touch it (push) Successful in 29s
WAI operation catalogue / does this change touch it (push) Successful in 28s
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Successful in 37s
wai-fleet service / does this change touch it (push) Successful in 29s
wai-audit collector and player integration / does this change touch it (push) Successful in 41s
wai-quantum for JavaScript / does this change touch it (push) Successful in 21s
wai-ledger service / does this change touch it (push) Successful in 23s
wai-key-proxy / does this change touch it (push) Successful in 35s
wai-quantum studio and desktop / does this change touch it (push) Successful in 15s
wai-sink-android native sink library / does this change touch it (push) Successful in 16s
wai-sink-swift native sink package / does this change touch it (push) Successful in 14s
WAI Studio / does this change touch it (push) Successful in 14s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Has been cancelled
WAI operation catalogue / the catalogue and every door · linux (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Has been cancelled
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Has been cancelled
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Has been cancelled
wai-fleet service / service · linux (push) Has been cancelled
wai-fleet service / service · macos (push) Has been cancelled
wai-quantum studio and desktop / desktop app · windows (push) Successful in 9m21s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Successful in 1m30s
wai-ledger service / service · macos (push) Successful in 1m0s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 4m24s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Successful in 7m3s
WAI Studio / Studio in Chromium and Firefox · macos (push) Successful in 9m34s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Successful in 14m21s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 6s
wai-audit collector and player integration / collector · linux (push) Successful in 2m6s
wai-key-proxy / proxy · linux (push) Successful in 2m9s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 1m53s
wai-ledger service / service · linux (push) Successful in 3m14s
wai-quantum for JavaScript / javascript · linux (push) Successful in 3m26s
wai-quantum studio and desktop / studio · browser (push) Successful in 6m12s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 8m52s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 4m49s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 5m3s
WAI Studio / Studio in WebKit · linux (push) Successful in 12m24s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Has been cancelled
A statement in symbols that is not an object, with a bearer_id that is not a string, or with a malformed group or index is now symbols_invalid, at plan level and as run check 7, where the reader used to return an error. Section 7.1 states the rule for group and index: 64 lowercase hexadecimal digits, and an integer from 0 to 2^53 - 1. A new reason, wanted_invalid, is the last of section 7.1's checks. It refuses a wanted that is not a list, an entry that is not an object, a malformed group and an index that is not an integer in that range. A run raises it at check 2. One object wanted twice stays plans_invalid, and an entry section 7.1 refuses names no object, so two of them alike are wanted_invalid. No case in any corpus changes. A position past 2^53 - 1, which no case carries and which read as deadline_not_stated, is now refused. Both readers derive these outcomes from the JSON, and the generator writes the forms the typed inputs cannot hold over a built case's JSON. Existing cases are byte-identical. Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| README.md | ||
| vectors.json | ||
live-conformance/timeliness — when an object is of use, and whether it was held in time
The corpus of extensions/timeliness.md §10, in one file,
vectors.json.
Provenance. Generated here by wai_timeliness_vectors gen (wai-rs, feature timeliness),
from Ed25519 keys on fixed 32-byte seeds, constant instants, and envelopes whose payloads are
opaque test bytes written by the generator; no media and no input from outside this repository.
keys names every key by its role, as 64 lowercase hexadecimal digits: the publisher's
(did:web:publisher.example#d1), another of its origin's (publisher_other,
did:web:publisher.example#d2), and three holders' (holder_a, holder_b, holder_c).
groups names the link hash of each group the cases use, all the publisher's, all starting at
2026-11-03T00:00:00.500Z: G, three bases and a layer of wai.image.int_refine (object 3);
F, a floor of each of G's objects, its manifest's derived_from.motif the content hash of G's
object at the same position; F_other, F with object 2's floor derived from G's object 1; and
H, two objects, the second a WAI2; and E, another floor of each of G's objects, derived
as F's are, the ladder's higher rung. G's entries, used throughout, have from_ms
1,793,664,000,000 (2026-11-03T00:00:00Z) and by_ms a minute later: entry 0 falls to 600,000 two
seconds after its deadline and to 0 ten seconds after, with F's object 0 at 400,000 as its
fallback; entry 1 is a hard deadline with no fallback; entry 2 holds 700,000 from one to five
seconds after, and 0 a second later, with F's object 2 at 1,000,000. The ladder cases and the runs
give entry 0 the ladder E's object 0 at 700,000, then F's object 0 at 400,000.
claims(§4.1, §4.2; jwp-receipts §3.1 steps 1 to 4) are each a claim's wire form,claim, and itsoutcome:accept, orreject step=N reason=R.values(§5) are each anentryread alone and an instantat_ms;outcomegives the entry'svalue_ppmat that instant and itsend_ms(§5.2). No value case's entry has a fallback.verdicts(§6) are each thegroupsgiven, in order, each itsgroupreceipt and itsobjects, areceiptand itsenvelopein hexadecimal ornull; theclaims, in order; the holdingsrecordsin hexadecimal; and astatementoffered (§6.4),{group, index, holder}, ornull.outcomeisrefuse reason=Rwhen a group fails jwp-receipts §3 steps 1 and 2, and otherwise gives:objects, each group's object verdicts (delivered-verified,inclusion-verified,reject reason=…);claims(accepted, orreject step=N reason=R);records(stands,set-aside reason=holdings_contradicted,reject reason=…);intents, in the order of the groups given and then ofleaf_index, each with itsgroup,leaf_index,intent(stands, orset-aside reason=timeliness_contradicted),end_ms(nullfor one set aside) andlines, in increasing order of the holder's key bytes, each itsholder,held_ms(p),fallback_ms(f: one instant ornull, and for a fallback written as an array the list of each rung's, in the ladder's order),outcomeandvalue_ppm; andstatement,{outcome, value_ppm},reject reason=deadline_not_stated, ornull.plans(§7) are each a verdict'sgroups,claims(timeliness, transmission and schedule) andrecords;loss_ppmandoverhead, both integers or bothnull;at_ms, an instant or the stringfrom_ms; thesourcesin the asker's order, each exactly{kind: "bearer", bearer_id},{kind: "holder", holder, fetch_ms}or{kind: "origin", fetch_ms}; thewantedobjects, each{group, index}; and, in a plan that states what its asker holds,symbols, each{bearer_id, group, index, held},heldone number for each source block.outcomeisrefuse reason=R, or givesclaims(accepted,declared,stands,extended,set-aside reason=…,reject step=N reason=R),recordsas a verdict's, andchoices, one for each wanted object:{outcome, object, rung, source, arrival_ms, value_ppm}, withobjectprimary,fallbackornull,rungthe rung's index in the ladder ornullunlessobjectisfallback, andsourcean index intosourcesornull, orreject reason=deadline_not_stated.runs(§7.5) are each a plan'sgroups,claims,records,loss_ppmandoverhead, shared by the run; itsplans, each{at_ms, sources, wanted}as a plan case writes them; and the sink'sarrivals, each{group, index, at_ms}, the trace of what it first held and when. A run that states when the sink first held its groups, claims or records also hasgroups_at_ms,claims_at_msorrecords_at_ms, a list with one entry for each, an instant ornull, orreceipts_at_ms, a list for each group with one such entry for each of its object receipts. A run that states what the sink held of objects on bearer instances also hassymbols, each{bearer_id, group, index, at_ms, held}, in the order of its clock. A case meant to be refused for its form writes that form: an instant, a number or a position as a string or a fraction, a hash as anything but 64 lowercase hexadecimal digits, a list or an entry as an integer ornull, or a member left out.outcomeisrefuse reason=R, or givesplans, each plan'schoicesas above, in a run that states instants of its groups, object receipts, claims or recordsread, each plan's{claims, records}labels withnot-heldfor what it did not read, anddecisionsin the order taken, each{at_ms, plan, action, group, index, object, rung, source, value_ppm}:actionisfetch,abandon,present,passedorended, and a member that does not apply isnull.
The plans' schedules are G's objects 0 to 2 on urn:example:bearer:b1 and F's objects on b1 and
on urn:example:bearer:b3, each declared unidirectional: RaptorQ, one source block of eight
symbols of 128 octets and two repair symbols a pass, advance, ten passes of a second every ten
seconds from 2026-11-03T00:00:00Z. At the plans' loss bound of 500,000 and overhead of 2 a receiver
gets 5 symbols a pass and needs 12, so it holds an object at the end of its third pass. The cases
that state symbols hold F's object 0 on b2 under a schedule of four passes, so from
2026-11-03T00:00:16Z two passes are left, too few from nothing and enough from what they state.
urn:example:bearer:b2 is declared bidirectional.
Everything is synthetic: keys attest nothing, the publisher's origin is a reserved example domain, and bearer instances use the example URN namespace. Each case states the outcome it was written to have, declared in the generator, never copied from a verifier.
wai_timeliness_vectors verify and tests/timeliness.rs check that the file regenerates byte for
byte and that wai-rs reaches every stated outcome, the runs' through timeliness::scheduler.
../timeliness_verify.py is the second implementation, written from the extension's text, which
also mutates copies of the corpus and drops each of its own checks in turn and requires each to be
caught.