Skip to main content

Module report

Module report 

Source
Expand description

The serializable wire contract for the Foreman pipeline (B6 wire-freeze).

The internal gate/harness/planner types stay free to evolve; THESE versioned DTOs are the stable shape the daemon JSON-RPC and the four FFI binding surfaces expose. Conversions are one-way (internal → DTO).

Wire-freeze hygiene (from the B5 review), so this can be frozen at release:

  • String discriminants on every enum (snake_case serde tags), never positional/integer — adding a variant can’t shift another’s meaning.
  • A schema_version on the top-level report.
  • Structured rejection evidence (typed containment / duplicate / build fields), not flattened prose — this is what a future post-gate replan reads.
  • A forward-compatible unknown escape variant on each externally-matched enum, so an older client doesn’t hard-fail on a newer server’s state.
  • The scheduler’s ExpandedFootprint is never representable here — only the gate’s verdict and declared (file, symbol) refs — so “scheduler output never feeds acceptance” holds on the wire, not just in Rust.

Structs§

ApplyConflictDto
A patch that failed to apply, attributed to its subtask + targeted files.
BuildTestFailureDto
The union build/test failure that rejected the merge. candidate_subtask_ids is the whole integrated set — a build failure can’t be localized further without mapping test output back to a symbol (not done).
DuplicateBlameDto
A union duplicate declaration. candidate_subtask_ids are the subtasks whose patches touched the offending file — candidates, not proven culprits (file granularity can implicate a subtask that edited the file but not the symbol).
DuplicateDto
A duplicate-declaration finding on the wire.
ForemanReport
The full report of a Foreman run.
GateEvidenceDto
The gate’s evidence — structured, so a consumer (or replan) can attribute a verdict without parsing prose.
IntegrationBlameDto
Structured attribution of why a union integration failed — the wire form of the harness IntegrationBlame. What a post-gate regional replan reads to retry the failing region, and what a UI reads to show “why did this run fail”.
IntegrationReportDto
The integrated-union outcome.
PlanReport
The decomposition plan — the SCHEDULER surface, deliberately distinct from MergeVerdictDto (the gate surface) so a consumer can never mistake a scheduling hint (levels, prefer_single_session) for a safety verdict.
PlanSubtaskDto
One planned subtask on the wire — carries only the DECLARED (file, symbol) footprint, never the scheduler’s expanded blast radius.
SubtaskReportDto
One farmed-out subtask’s outcome.
SymbolRefDto
A (file, symbol) location on the wire.

Enums§

AcceptanceBasisDto
Why a worktree was accepted.
BuildTestDto
The build/test leg outcome.
MergeVerdictDto
The gate’s verdict on a worktree (per-subtask or the integrated union).

Constants§

FOREMAN_SCHEMA_VERSION
Bump when the serialized shape changes incompatibly.