Skip to content

Commit ab69bb0

Browse files
feat(dotnet): model release evidence
1 parent 9c02971 commit ab69bb0

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

packages/dotnet/TraverseEmbedder/README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,10 @@ runtime-shaped harness events. Compatible-capability start, stop, and kill
88
operations return stable instance identifiers and lifecycle results. It never
99
depends on `traverse-cli serve` or server-discovery files in production.
1010

11-
The runtime-WASM bridge, event subscriptions, release evidence, and WinUI
11+
Release tooling constructs `TraverseReleaseEvidence` with the semantic package
12+
version, runtime-WASM digest, conformance version, and supported Windows host
13+
versions. `Validate` rejects incomplete evidence before publication so a
14+
downstream binary can be traced to its exact package and runtime pairing.
15+
16+
The runtime-WASM bridge, event subscriptions, evidence publication, and WinUI
1217
reference-app integration remain tracked by Traverse #649.

packages/dotnet/TraverseEmbedder/TraverseEmbedder/TraverseEmbedder.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,26 @@ public sealed record TraverseSubmission(string TargetId, string InputJson)
2222

2323
public sealed record TraverseSubmissionResult(string SessionId, string Status);
2424

25+
/// <summary>Traceability evidence published with a TraverseEmbedder package release.</summary>
26+
public sealed record TraverseReleaseEvidence(
27+
string PackageVersion,
28+
string RuntimeWasmDigest,
29+
string ConformanceVersion,
30+
IReadOnlyList<string> SupportedHostVersions)
31+
{
32+
public void Validate()
33+
{
34+
ArgumentException.ThrowIfNullOrWhiteSpace(PackageVersion);
35+
ArgumentException.ThrowIfNullOrWhiteSpace(RuntimeWasmDigest);
36+
ArgumentException.ThrowIfNullOrWhiteSpace(ConformanceVersion);
37+
if (SupportedHostVersions is null || SupportedHostVersions.Count == 0 ||
38+
SupportedHostVersions.Any(string.IsNullOrWhiteSpace))
39+
{
40+
throw new ArgumentException("supported host versions are required", nameof(SupportedHostVersions));
41+
}
42+
}
43+
}
44+
2545
/// <summary>Ordered runtime-shaped event exposed by the conformance harness.</summary>
2646
public sealed record TraverseRuntimeEvent(
2747
int Sequence,

0 commit comments

Comments
 (0)