Skip to main content

CheckOutput

Struct CheckOutput 

Source
pub struct CheckOutput {
Show 16 fields pub schema_version: SchemaVersion, pub version: ToolVersion, pub elapsed_ms: ElapsedMs, pub total_issues: usize, pub entry_points: Option<EntryPoints>, pub summary: CheckSummary, pub results: AnalysisResults, pub baseline_deltas: Option<BaselineDeltas>, pub baseline: Option<BaselineMatch>, pub baseline_staleness: Option<BaselineStaleness>, pub regression: Option<RegressionResult>, pub gate_outcomes: Option<GateOutcomes>, pub request_outcomes: Option<RequestOutcomes>, pub meta: Option<Meta>, pub workspace_diagnostics: Vec<WorkspaceDiagnostic>, pub next_steps: Vec<NextStep>,
}
Expand description

Envelope emitted by fallow dead-code --format json (plus the check block inside the combined and audit envelopes).

The body is the full AnalysisResults flattened into the envelope so every issue array (unused_files, unused_exports, …) lives at the top level, matching the existing wire shape. entry_points lifts the otherwise #[serde(skip)]’d AnalysisResults::entry_point_summary back into the JSON output. summary carries the per-category counts the JSON layer always emits.

Fields§

§schema_version: SchemaVersion

Dead-code output schema version; currently CHECK_SCHEMA_VERSION.

§version: ToolVersion

Fallow CLI version that produced this output.

§elapsed_ms: ElapsedMs

Wall-clock analysis duration in milliseconds.

§total_issues: usize

Total findings across all issue arrays; excludes next_steps.

§entry_points: Option<EntryPoints>

Entry-point totals per source, when the analysis recorded them.

§summary: CheckSummary

Per-category finding counts.

§results: AnalysisResults

Full analysis results, flattened so each issue array sits at the envelope root.

§baseline_deltas: Option<BaselineDeltas>

Count deltas against the matched baseline, in baseline runs.

§baseline: Option<BaselineMatch>

Which baseline snapshot was matched, in baseline runs.

§baseline_staleness: Option<BaselineStaleness>

This run’s view of the loaded baseline, present only in baseline runs. Carries the staleness counts, the advisory verdict and gate_trips, the same boolean --fail-on-stale-baseline exits on, so a CI integration reads one field instead of restating the rule. Read change_scoped before dividing matched_entries by baseline_entries: a narrowed run can report matched_entries: 0 on a healthy baseline.

§regression: Option<RegressionResult>

Regression verdict against the baseline, in --fail-on-regression runs.

§gate_outcomes: Option<GateOutcomes>

Every gate this run ARMED, keyed by name, absent when it armed none. Each entry is the same rule that decides the exit code, so a CI integration reads the verdict instead of guessing from a process status it usually cannot see. A gate fails the build when status is fail AND enforced is true. Armed, not evaluated: fallow’s default severity rules fail a run with no flag at all, so an absent object means “no gate was asked for”, never “nothing failed”. See crate::GateOutcomes.

§request_outcomes: Option<RequestOutcomes>

Every narrowing or shaping request this run RECEIVED, keyed by name, absent when it was asked for nothing. An entry whose status is not applied means the run could not do what it was asked and reported something WIDER instead, so what follows is a valid report of a scope nobody requested. Honoured requests are published too, with status: "applied", so an absent object means “nothing was asked for”, never “nothing failed”. See crate::RequestOutcomes.

§meta: Option<Meta>

_meta block with docs and rule definitions, when --explain was passed.

§workspace_diagnostics: Vec<WorkspaceDiagnostic>

Non-fatal diagnostics about the project itself, from all three stages that record them (issue #473):

  • workspace discovery, at config load: undeclared-workspace, malformed-package-json, glob-matched-no-package-json, malformed-tsconfig, tsconfig-reference-dir-missing;
  • source discovery, during the file walk: skipped-large-file, skipped-minified-file, skipped-source-dotdir, excluded-by-default-ignore, source-read-failure, source-parse-degraded;
  • dead-code analysis, from the dependency-catalog and override detectors: malformed-pnpm-workspace-yaml, bun-lockb-override-resolution-skipped;
  • framework plugins, while they read their own build configs: plugin-config-unreadable, plugin-effect-not-modeled.

Analysis-stage and plugin-stage kinds therefore reach only the envelopes whose run includes a dead-code analyze pass, never a standalone fallow dupes --format json. path is project-root-relative with forward slashes; the array is omitted when empty. The same list is repeated on each top-level command’s envelope so single-command consumers see it without having to look at a separate top-level field.

A diagnostic here is advisory and never withholds a finding. Where an entry reports a source file this run never fully analyzed (source-parse-degraded, source-read-failure, skipped-large-file, skipped-minified-file, skipped-source-dotdir) it can distort a verdict, so the affected unused_files[], unused_exports[], and dependency entries additionally carry the caveat themselves in their own optional reachability_caveats[] array, and a reader who never scrolls back up to this list still sees it. fallow fix reads the same array and withholds the removal while a caveat stands.

excluded-by-default-ignore is the one source-discovery kind that reports unseen files WITHOUT raising a caveat. It names a built-in ignore pattern (**/dist/**, **/build/**, **/coverage/**, or one of the four minified-bundle globs) that removed candidate source files from the walk, which is designed behavior on generated output rather than a degraded run, so it is advisory only and no finding inherits it. One entry per pattern, never per file, so the array stays bounded on a project of any size. Gitignored trees are pruned before the walk sees them and count zero, and **/node_modules/** is never reported: installed dependencies are not the first-party source the kind is about.

§next_steps: Vec<NextStep>

Read-only follow-up commands computed from this run’s findings, emitted at the JSON root so an agent acting on the output is pointed at fallow’s adjacent verification capabilities (trace, complexity breakdown, audit, workspace scoping). Each command is runnable as-is and never mutating; see NextStep for both contracts. Omitted when empty or when FALLOW_SUGGESTIONS=off; does NOT contribute to total_issues.

Trait Implementations§

Source§

impl Clone for CheckOutput

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CheckOutput

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Serialize for CheckOutput

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more