Skip to content

orchestrator: Add the ReportSink seam for the Report effects - #447

Merged
rusty1968 merged 1 commit into
OpenPRoT:mainfrom
9elements:add-report-sink
Sep 3, 2026
Merged

orchestrator: Add the ReportSink seam for the Report effects#447
rusty1968 merged 1 commit into
OpenPRoT:mainfrom
9elements:add-report-sink

Conversation

@chrysh

@chrysh chrysh commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

The four Effect::Report* variants have no consumer seam. This adds a #[non_exhaustive] Report enum and a single ReportSink::report instead of a method or a trait per variant, so a new report is one variant rather than a trait break and a sink routes only what it recognises.

report returns nothing: a report names something that already happened, so an undeliverable one costs information, not containment, and reporting stays off the driver's fail-closed path. Payloads stay Copy and lifetime-free, like the effects they mirror.

The seam lives in driver/src/board.rs rather than orchestrator-capabilities, because Report carries a ComponentId and that crate is a dependency-free leaf. Same split the driver already makes for Verifier.

Composing a sink into the board follows in the next PR.

References 9elements#3.

The four Effect::Report* variants had no consumer seam. Add a
non_exhaustive Report enum and one ReportSink::report, not a method or a
trait per variant, plus a unit impl for a board with no management side
to tell.

report returns nothing: an error channel would put reports on the
driver's fail-closed path, letting the act of reporting a contained
failure escalate it.

Trait only, composing a sink into the board follows.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Christina Quast <christina.quast@9elements.com>
Comment thread services/orchestrator/driver/src/board.rs Outdated
Comment thread services/orchestrator/driver/src/board.rs Outdated
@rusty1968
rusty1968 merged commit 5384e71 into OpenPRoT:main Sep 3, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants