#[non_exhaustive]pub struct SyncReport {
pub graph: PackGraph,
pub steps: Vec<SyncStep>,
pub halted: Option<SyncError>,
pub event_log_warnings: Vec<String>,
pub pre_run_recovery: Option<RecoveryReport>,
pub workspace_migrations: Vec<WorkspaceMigration>,
}Expand description
Outcome of a run invocation.
On fail-fast termination, halted carries the error that stopped the
sync; every completed step up to that point is still in steps so
callers can render a partial transcript.
Marked #[non_exhaustive] so new report-level fields (run id, metrics)
can land without breaking library consumers who destructure the struct.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.graph: PackGraphFully-walked pack graph (present even on halted runs).
steps: Vec<SyncStep>Steps produced by the executor, in execution order.
halted: Option<SyncError>Some(e) if execution stopped before all actions ran.
event_log_warnings: Vec<String>Non-fatal manifest-append warnings (one per failed event append). Kept as a separate field because spec marks event-log write failures as non-aborting.
pre_run_recovery: Option<RecoveryReport>Some(r) when the pre-run teardown scan found orphaned backup
files or dangling Event::ActionStarted records from a prior
crashed run. Informational only — the report is still returned and
the sync proceeds. CLI renderers should surface a warning so the
operator can decide whether to run a future grex doctor verb.
workspace_migrations: Vec<WorkspaceMigration>One entry per child whose legacy .grex/workspace/<name>/ layout
was relocated (or considered for relocation) on this sync. Empty
when no legacy directory was found — the common case for any
workspace built fresh on v1.1.0+. CLI renderers should surface
the list so operators see what changed.