Typed read-path for RunReport: consumers need a non-serde handle on the {manifest, metrics} shape #17

Closed
opened 2026-06-04 20:55:44 +02:00 by Brummel · 0 comments
Owner

Fieldtest 0010 (#8) found that confirming the documented {manifest, metrics} JSON nesting from a zero-dependency consumer requires hand-walking the to_json() string (find(""key":")), since RunReport exposes only to_json() -> String and no typed accessor.

context: the C14 'machine-readable' framing implies a consumer can inspect the report's structure, not only re-stringify it. Today shell/jq consumers are fine, but a Rust consumer asserting against the shape must pull in serde_json or re-parse. A minimal typed read-path (the struct fields are already there; exposing the structured values, or a tiny documented parse helper) would close it without forcing a serde dep. Low priority — the JSON is correct and jq-parseable.

depends on: nothing — additive read-side ergonomics on the cycle-0009 report surface.

Fieldtest 0010 (#8) found that confirming the documented {manifest, metrics} JSON nesting from a zero-dependency consumer requires hand-walking the to_json() string (find(\"\"key\":\")), since RunReport exposes only to_json() -> String and no typed accessor. context: the C14 'machine-readable' framing implies a consumer can inspect the report's structure, not only re-stringify it. Today shell/jq consumers are fine, but a Rust consumer asserting against the shape must pull in serde_json or re-parse. A minimal typed read-path (the struct fields are already there; exposing the structured values, or a tiny documented parse helper) would close it without forcing a serde dep. Low priority — the JSON is correct and jq-parseable. depends on: nothing — additive read-side ergonomics on the cycle-0009 report surface.
Brummel added the idea label 2026-06-04 20:55:44 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Aura#17