# `Excessibility.Digest`
[🔗](https://github.com/lessthanseventy/excessibility/blob/v0.20.0/lib/excessibility/digest.ex#L1)

Builds the value-free `digest.json` runtime-evidence artifact from an
in-memory timeline map (the shape `Excessibility.TelemetryCapture.Timeline.build_timeline/3`
returns).

The digest is **safe by construction**: every field is built by explicit
construction from allowlisted inputs. It never copies an assigns map, a raw
query, params, or bind values. If a field cannot be derived safely it is
omitted, not guessed. See the design doc's "Privacy allowlist" section.

Crash-isolated: the whole build is wrapped in `try/rescue`. On failure it
returns a digest with `capture.status: :failed` and the exception message in
`capture.warnings`, but never raises.

# `build`

Build a value-free digest from an in-memory `timeline` map.

Options:
- `:ecto_configured?` (default `false`)
- `:enrichers_run` (default `[]`)
- `:plan_capture` (default `:disabled`)
- `:fixtures` (default `%{}`)

---

*Consult [api-reference.md](api-reference.md) for complete listing*
