@openvtc/trust-tasks 0.28.13 → 0.28.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -11,6 +11,85 @@ The package versions over **its own API** — what a consumer compiles against
11
11
  not over `SPEC.md`. Below 1.0 a breaking change bumps the leading non-zero
12
12
  component.
13
13
 
14
+ ## 0.28.14 — 2026-11-04
15
+
16
+
17
+ ### Added
18
+
19
+ - **trust-task-discovery**: Publish 0.4, a responder advertises the horizon up to which it honours a stated expiresAt (#1030)
20
+
21
+ SPEC §7.2 (Bounding the record) applies a consumer's maximum age only where a
22
+ document states no expiresAt, and since trust-tasks-rs 0.37 (#1021)
23
+ validate_freshness does so, honouring a stated expiry up to the policy's
24
+ expiry_horizon. discovery 0.3 cannot describe that: its window "governs
25
+ issuedAt only" and its responder refuses any document past
26
+ issuedAt + maxAgeSeconds + clockSkewSeconds, whatever expiresAt it states. A
27
+ responder that honours an expiry could only advertise a narrower window than
28
+ it applies, and a producer could not learn that stating an expiry keeps a long
29
+ delivery acceptable.
30
+
31
+ - specs/trust-task-discovery/0.4: acceptanceWindow gains an optional
32
+ expiryHorizonSeconds (whole seconds, at least 1), and the spec defines a
33
+ document's acceptance end: issuedAt + maxAgeSeconds without an expiresAt;
34
+ the earlier of expiresAt and issuedAt + expiryHorizonSeconds with one; and,
35
+ where the window carries no horizon, the earlier of expiresAt and
36
+ issuedAt + maxAgeSeconds, which is what a 0.3 window says.
37
+ - Responder: MUST NOT advertise a horizon wider than it applies, nor one at
38
+ all if it applies its maximum age whatever expiresAt states.
39
+ - Discoverer: send bounds follow the acceptance end. MAY state an expiresAt
40
+ within the horizon, no later than it will pursue delivery, instead of
41
+ issuing a chain of new attempts; a new attempt carries it unchanged.
42
+ Absent a horizon, it MUST assume the maximum age applies to every
43
+ document.
44
+ - AcceptanceWindow is closed in 0.3, so an added optional member is a MINOR
45
+ increment (§5.2): a new version, not an edit.
46
+ - Response-side invalid examples: a zero horizon, a duration string, and a
47
+ fractional entry-level horizon.
48
+ - trust-tasks-rs: DiscoveryRegistry::respond_to_v0_4 is the current answer.
49
+ acceptance_window_from reads the policy's expiry_horizon, and
50
+ expiry_horizon() sets one by hand. respond_to_v0_3 moves to
51
+ discovery/superseded.rs and states the window without the horizon (narrower
52
+ than applied, which 0.3 permits).
53
+ - trust-tasks-https: enable_discovery answers 0.4, and 0.3 beside 0.2 and 0.1.
54
+ - trust-tasks-dart-https: enableDiscovery answers 0.4. Dart's FreshnessPolicy
55
+ has no horizon, so its window states none, which says the maximum age
56
+ applies to every document. 0.3 moves to the superseded block.
57
+ - Examples and tests that named the 0.3 types use 0.4.
58
+ - Bindings regenerated (Rust, TS, Go, Dart). 0.3 is superseded.
59
+
60
+ Follows from #1021 and trustoverip/dtgwg-vti-spec#96 (VTI-OPS-024,
61
+ VTI-OPS-028, VTI-TRN-048), whose implementation in
62
+ OpenVTC/verifiable-trust-infrastructure states delivery deadlines as expiresAt.
63
+
64
+
65
+
66
+ ### Specifications
67
+
68
+ - **process-attestation**: Label WritersProof as the Holder, and check that an implementation's role names a party (#1029)
69
+
70
+ Follow-up to #994 and #997.
71
+
72
+ - process-attestation/0.1 lists WritersProof in the { url, role, name } form
73
+ #997 added, so the spec page shows which party it plays.
74
+ - The outcome-evidence rule says "a relying party MUST NOT", not "a consumer":
75
+ the rule binds whoever relies on the citing artifact, and "consumer" means a
76
+ document's recipient (SPEC §7.2).
77
+ - build-registry fails a knownImplementations role that names none of the
78
+ specification's parties and is not "both". The meta-schema can only bound it
79
+ as a string, and a typo would put an undefined party on the page.
80
+
81
+ - **process-attestation**: Declare outcome evidence, bind receipts by digest, add the CPoE profile (#994)
82
+
83
+ * spec(process-attestation): declare outcome evidence, bind receipts by digest, add the CPoE profile
84
+
85
+
86
+
87
+ ### Website
88
+
89
+ - Show a task's outcome evidence and size bound, and which party an implementation plays (#997)
90
+
91
+ * site: show a task's outcome evidence and size bound, and which party an implementation plays
92
+
14
93
  ## 0.28.13 — 2026-11-04
15
94
 
16
95
 
package/dist/index.d.ts CHANGED
@@ -1929,6 +1929,7 @@ export * as TrustTaskControl_v0_1 from "./trust-task-control/0.1/payload.js";
1929
1929
  export * as TrustTaskDiscovery_v0_1 from "./trust-task-discovery/0.1/payload.js";
1930
1930
  export * as TrustTaskDiscovery_v0_2 from "./trust-task-discovery/0.2/payload.js";
1931
1931
  export * as TrustTaskDiscovery_v0_3 from "./trust-task-discovery/0.3/payload.js";
1932
+ export * as TrustTaskDiscovery_v0_4 from "./trust-task-discovery/0.4/payload.js";
1932
1933
  export * as TrustTaskError_v0_1 from "./trust-task-error/0.1/payload.js";
1933
1934
  export * as TrustTaskError_v0_2 from "./trust-task-error/0.2/payload.js";
1934
1935
  export * as TrustTaskError_v0_3 from "./trust-task-error/0.3/payload.js";