# doc-engine coverage baseline Measured by `tools/test-doc-engine-coverage.sh`, which runs the crate's unit tests plus `tests/materialize.rs` under `-C instrument-coverage` in a fully isolated, self-deleting environment (own toolchain, own cargo home, everything under one `mktemp` directory removed by a shell trap). Baseline (2026-08-17, toolchain 1.97.1, llvm-cov **lines** percent): | File | Lines | Regions | Notes | |---|---|---|---| | `src/controller.rs` | 98.68% | 93.45% | remaining lines are defensive: batch-compensation arms that only fire on mid-batch op-application failure | | `src/crdt/document.rs` | 97.63% | 95.13% | remaining arms are split-replay RGA link guards and CRDT-tolerance skips (ops whose anchors never arrive) | | `src/crdt/operations.rs` | 100% | 100% | | | `src/crdt/version_vector.rs` | 100% | 100% | | | `src/history.rs` | 92.00% | 88.34% | the honest floor: `Compensation::inverse` arms unreachable through the public controller API (undo/redo expand groups before materializing) plus one `unreachable!` | | `src/projection/text.rs` | 100% | 94.19% | | | **TOTAL** | **99.00%** | **97.54%** | | `src/lib.rs`, `src/session.rs`, `src/crdt/mod.rs` and `src/projection/mod.rs` carry no executable lines (module roots and re-exports), so the report never lists them and the floor table deliberately has no entries for them — a floor on an unmeasured file fails the run loudly, by design. ## What is NOT measured, and why - **Widget-level consumers.** This crate is UI-free by construction (serde + serde_json only); the `CrdtDocEditor` surface in nigig-build is exercised by its own 800+-test lib suite, not here. Reading 99% as "the doc feature is 99% tested" would be wrong in exactly the way the CAD baseline warns about: it is the *engine* that is. - **Defensive CRDT arms.** A handful of match arms exist so that ops arriving before their anchors (or after duplicate ids) degrade silently instead of corrupting order. Some are constructible only by forging op ids below the controller API; they are reported as uncovered rather than hidden. ## Floors Total 96% lines; per-file floors a couple of points under the table above, enforced by the script and the `coverage` job in `.forgejo/workflows/doc-engine.yml`. Lowering a floor is a reviewable edit to the script, not something to do quietly. ## Regenerating ``` ./tools/test-doc-engine-coverage.sh # gated run KEEP_COVERAGE=1 ./tools/test-doc-engine-coverage.sh # keeps the env and writes # an uncovered-line listing ```