nordisk/edda
README.md
<!-- ⚠ GENERATED by nornir from .nornir/README.md — DO NOT EDIT this file -->
# edda
> The nordisk **shared-lib samling** — the collected corpus (Norse *Edda*) of
> reusable, NON-facett library crates extracted from nornir so they release on
> their own cadence and are shared by nornir, korp, holger, skade, znippy, …
edda is a library repo, not an app. facett stays its own repo (it is the egui
component framework); edda is everything else that is a library. Each crate is a
lean leaf with a tiny dep set, so a consumer pulls only what it needs and no crate
drags nornir's warehouse / embedder / server tree behind it.
<!-- Write any intro prose here. Anything outside the marker blocks below
is preserved verbatim on every render. -->
## The crates
| crate | what it is |
|-------|-----------|
| **autonom** | the completeness / anti-drift subsystem — the constellation home for *coverage* (wiring-surface gate + test-matrix), and the runnable `autonom coverage <repo>` feeder that emits the code-that-lacks-tests worklist |
| **jera** | the shared infra runtime: durable **job ledger** (redb), a **no-shell container** runtime (bollard REST, delegated to draupnir's OCI backend), and **KVM boot** via draupnir. No `Command` shell-out on the tracked path |
| **nornir-testmatrix** | the portable core of the multi-aspect **test matrix** — runner (nextest/cargo), the pure discover/coverage engines, the UI-plane model. Tiny dep set so any leaf repo can run the same matrix |
| **nornir-robotui** | a reusable **robot-UI testing framework** for egui apps: drive real interactions (egui_kittest/AccessKit), observe via `state_json`, replay recorded scenarios, optional wgpu PNG snapshots |
| **nornir-saga** | capture a user's navigation as toolkit-neutral events → warehouse → **replay the path as a generated robot test**. The production sibling of nornir-testmatrix. `saga_to_ui(events)` is the event-model → UI-movement bridge (the inverse of `to_saga_events`) that folds a stored `SagaEvent` stream back into a replayable `Saga` |
| **nornir-bench** | the project-agnostic **bench harness**: a uniform run/result envelope + append-only JSONL history; repo metrics live in a free-form JSON object |
| **nornir-coverage** | source-based **line/region coverage** (cargo-llvm-cov), the JaCoCo-style report that answers "what fraction of source lines did the run execute?" |
| **nornir-git** | pure-Rust git helpers over **gix** (gitoxide) — inspection + history rewriting with no `git` shell-out and no libgit2/C |
| **nornir-cli-outcome** | the uniform CLI command result `{command, ok, data, human}` — the CLI twin of a Facet's `state_json` |
| **nornir-hash** | the shared **content-hash** primitive — lowercase-hex SHA-256 of bytes/files/streams (`sha256_hex`, `sha256_file`, `Sha256Hasher`) + a dependency-free `hex_encode`/`hex_decode` round-trip. `sha2`-only; consumed by every content-addressed store instead of re-rolling `Sha256::new();hex(...)` |
| **nornir-xtask-support** | the std-only **xtask primitives** toolbox (`publish=false`) four repos' `cargo xtask` crates hand-rolled identically: `which`/`run`/`copy_dir`/`target_dir` (`$CARGO_TARGET_DIR`-aware)/`short_rev` + the wasm bootstrap trio (`ensure_wasm_target`/`ensure_wasm_bindgen`/`locked_wasm_bindgen_version`, the blank-canvas-mismatch fix). Boxed `Send+Sync` error so every caller style adapts |
| **nornir-pages** | the parameterized **gh-pages demo/deploy flow** (`publish=false`) — `demo_wasm` (release wasm → wasm-bindgen → cache-busted static site into `dist/`) + `deploy_pages` (orphan-worktree force-push to the `pages` branch). All per-repo divergence is `PagesConfig`'s 11 knobs; builds on nornir-xtask-support |
| **nornir-humanize** | the shared **human-readable formatter** (`publish=false`, std-only, zero runtime deps) eight+ `human_bytes`/`human_count`/`fmt_elapsed` twins across nornir + facett drifted on: byte sizes (`bytes`→`1.5 KiB` IEC, `bytes_si`→`1.5 KB`), compact counts (`count`→`3.4M`), grouped digits (`thousands`→`1,234,567`), durations (`duration`/`duration_ms`/`duration_secs`→`2m 03s`), binary throughput (`throughput`→`3.5 MiB/s`) and ratios (`percent`/`percent_of`→`12.3%`). Canon = IEC-binary majority; SI dissenters documented |
| **nornir-escape** | the shared **markup-escaping** primitive (`publish=false`, std-only, zero runtime deps) — `xml(&str) -> Cow<str>` escapes the four XML/SVG entities (`&`→`&`, `<`→`<`, `>`→`>`, `"`→`"`), borrowing with no allocation when the input is clean. Seven byte-identical `xml_escape`/`svg_escape` copies across nornir/edda/Skidbladnir collapse into it; every repoint is byte-safe (apostrophe deliberately left unescaped, as every twin does). `xml_attr(&str)` is the **five-entity** sibling that ALSO escapes `'`→`'` — for a single-quoted attribute value, where a bare apostrophe is not legal; byte-identical to `xml` on apostrophe-free input. Domain-coupled typst/markdown/slug escapers stay in their conductor |
| **nornir-appshell** | the two PURE, **egui-free** app-shell MODELS (`publish=false`, serde + serde_json only) every suite app's *About* + *Tools* menu hand-rolled: the **`Identity`** card (name/display_name/version/tagline/subtitle/`logo_png: Option<Vec<u8>>` LFS-tolerant/logo_alt/repository/links/framework/engines) + `state_json(open)` oracle, and the generic **`ToolMenu`**/**`ToolEntry`** (title/hover/effect_key/view_target/needs_container + `keys`/`find`/`state_json(last_picked)`). Lifts modgunn's `struct Identity`; korp/holger const-blobs + korp↔modgunn Tools shell collapse onto it. Each app KEEPS its `ToolEffect` enum + demo/container specs; the egui About *widget* is a later `facett-about` leaf |
### The auth provider family
The **modern-auth** stack: each method is its OWN feature-gated leaf implementing
the shared `nornir_service::AuthProvider` seam, so a server links only the
providers its build pinned (an embedded/mini tier ships one bearer provider and
nothing heavier). Consumed by holger (reference impl), korp, dwarves.
| crate | auth method |
|-------|-------------|
| **nornir-auth-oidc** | OIDC / OAuth2 — validate a bearer JWT with the relying party's checks (algorithm allow-list, key fit, `iss` exact, `aud` required, `exp`/`nbf`) against a pre-provisioned JWKS (airgap) or the issuer's discovered `jwks_uri` (online); a JWT that does not verify is refused by name, never sent to `/userinfo`; an opaque token only through the opt-in, audience-bound introspection; plus the device-authorization-grant (RFC 8628) flow for interactive CLI login. One protocol covers Entra ID / Okta / Auth0 / Google / Keycloak / Zitadel |
| **nornir-auth-bearer** | static Bearer token / API-key — the tiny machine-to-machine method (CI runners, agents, headless clients); reuses the shared bearer-secret resolution ladder + constant-time compare |
| **nornir-auth-sshsig** | per-call SSH-signature credentials for a gRPC control plane, product-neutral: method-bound, single-use, time-boxed; one verifier + replay guard; each product brings its own metadata key and sshsig namespace (gunnar's wire format, now shared with monetize) |
| **nornir-auth-oauth2** | OAuth 2.0 / 2.1 — verify an access token via RFC 7662 introspection (SP side) + drive the client-credentials + authorization-code + PKCE flows. REUSES the `oauth2` crate; HTTP egress behind the `online` feature |
| **nornir-auth-apikey** | hashed static API-key — verify a presented key against SHA-256-HASHED keys at rest (rotating / multi-tenant stores); REUSES `nornir-hash::sha256_hex` + `nornir_service::token_matches`, no crypto/HTTP of its own |
| **nornir-auth-mtls** | mTLS — map a mutual-TLS leaf-cert Common Name (ALREADY extracted by the rustls transport) to an identity via `verify_client_cert`; consumes the CN, does NOT itself path-validate the CA |
| **nornir-auth-saml** | SAML 2.0 (enterprise SSO) Service Provider in pure Rust (`sp` feature): XML-DSig verification of a browser-posted Response (HTTP-POST binding) against the configured IdP certificate only, XSW-proof; issuer, audience, Destination, Recipient, InResponseTo, time window (skew at most 300 s); the AuthnRequest and both metadata documents. No samael, no C |
| **nornir-auth-webauthn** | WebAuthn / FIDO2 / passkey (passwordless human login), pure Rust (p256, no C) — `pure` (default): RP-side assertion checks (signature, challenge, origin, UP/UV flags, counter) and the MAC'd session token; `ceremony`: the server-held per-client challenge store and the assertion/attestation checks. The webauthn-rs path is deleted (A34-32) |
| **nornir-auth-client** | the shared CLIENT-side login — the missing `<app> login`: OIDC device-grant login (reusing nornir-auth-oidc's device helper), token acquire + silent refresh, and a `TokenStore` seam (default 0600 file store; pluggable to the dwarves Vault) |
nornir re-exports these (`nornir::bench`, `nornir::cli_outcome`, …) so its existing
call sites resolve unchanged after the extraction. Leaf repos consume
`nornir-testmatrix` + `nornir-robotui` from the crates.io registry by version.
## Benchmarks
One `nornir bench run edda` covers every leaf that carries a bencher: `autonom`'s
source-scan fold, `nornir-flight`'s Arrow-Flight put/get round-trip, and
`nornir-saga`'s replay fold. The arms live inside the leaves (each behind that
leaf's off-by-default `bench` feature); `bench/` is the single repo-level
entrypoint that links them all — see `bench/examples/nornir-bench.rs`.
<!-- nornir:gen:start:benches winner=row -->
**v0.1.4 · oden · 32 cores · 2026-07-22**
| workload | batches | fns_per_sec | folds_per_sec | functions | gap | get_mib_per_sec | get_rows_per_sec | mib | movements | put_mib_per_sec | put_rows_per_sec | reps | rows | telem_cores_busy_avg | telem_cores_busy_max | telem_cpu_pct_avg | telem_cpu_pct_max | telem_elapsed_ms | telem_mem_pct_max | telem_mem_peak_mb | telem_n_cores |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| autonom.function_scan | | 151268 | | 600 | 200 | | | | | | | 30 | | 2 | 2 | 10.21 | 10.21 | **119.05** | 4.80 | 9.55 | 32 |
| nornir-flight.put_get_throughput | 20 | | | | | 1452 | 67.31M | 21.57 | | 762.58 | 35.36M | | 1.00M | 2 | 2 | 6.72 | 6.72 | 176.95 | 4.80 | 89.92 | 32 |
| saga-replay-fold | | | 149557 | | | | | | 2200 | | | 50 | | 2 | 2 | 6.45 | 6.45 | 735.54 | 4.80 | 89.92 | 32 |
<!-- nornir:gen:end:benches -->
## Tests
<!-- Unit / integration / doc tests, enumerated from source via syn. -->
<!-- nornir:gen:start:tests -->
**Unit tests** (1113)
| file | tests |
|---|---|
| `crates/app-heartbeat/src/lib.rs` | `the_app_alive_line_round_trips_through_serial_text`, `first_app_alive_is_deploy_ok_and_beats_are_counted`, `a_generic_non_korp_app_drives_one_verdict_per_declared_function`, `no_app_alive_line_means_down_and_no_function_verdicts`, `deployed_but_beats_stopped_reads_degraded`, `a_failure_marker_sinks_a_function_even_with_the_expected_marker_present`, `korp_is_just_a_reference_manifest_the_generic_probe_parses` |
| `crates/autonom/src/allowlist.rs` | `absent_file_is_empty_allowlist`, `path_is_under_dot_nornir`, `save_then_load_round_trips` |
| `crates/autonom/src/bench.rs` | `scan_fold_bencher_runs_and_reports_throughput`, `generated_source_parses_and_has_a_gap` |
| `crates/autonom/src/feeder.rs` | `scans_fns_and_flags_test_roots`, `reachability_finds_the_orphan_as_needing_a_test`, `method_calls_resolve_and_cover`, `unparseable_source_is_skipped_not_fatal`, `integration_test_file_marks_all_fns_as_roots`, `module_prefix_reframes_crate_and_flags_tests` |
| `crates/autonom/src/report.rs` | `report_lists_only_unreached_functions`, `allowlist_excuses_a_function_from_the_list`, `markdown_is_deterministic_and_grouped`, `all_covered_reports_clean`, `groups_split_by_crate_head` |
| `crates/autonom/src/sentinel.rs` | `clean_blob_has_no_hit`, `case_insensitive_match_with_context`, `multibyte_haystack_does_not_panic` |
| `crates/eid-app/src/lib.rs` | `signs_and_verifies` |
| `crates/eid-core/src/lib.rs` | `challenge_distinguishes_auth_from_sign`, `assertion_debug_redacts_bytes` |
| `crates/eid-core/src/verify.rs` | `ed25519_round_trip_and_tamper`, `ed25519_weak_key_forgery_is_rejected`, `ecdsa_p256_round_trip` |
| `crates/jera/src/agent.rs` | `scheduler_matches_group_and_caps_then_runs_to_done`, `no_eligible_agent_returns_none_never_a_silent_drop`, `kill_handle_terminates_work_as_killed`, `agent_going_offline_kills_inflight_work`, `busy_agent_is_not_rescheduled_until_idle`, `grpc_agent_is_offline_skeleton_never_scheduled`, `grpc_agent_over_loopback_transport_runs_to_done`, `grpc_agent_over_loopback_transport_kill_propagates`, `work_payload_round_trips_through_json`, `payload_less_unit_still_decodes_and_legacy_path_unchanged`, `payload_carrying_unit_dispatches_and_reaches_the_runner`, `resource_req_round_trips_and_heavy_floors_the_cores`, `heavy_resource_req_never_places_on_a_nuc_class_node`, `exclusive_group_units_do_not_run_concurrently_across_the_fleet`, `non_exclusive_unit_is_never_gated`, `dispatched_units_result_round_trips_back_and_records_against_its_node`, `state_json_exposes_the_fleet_as_data` |
| `crates/jera/src/agent/roster.rs` | `stale_node_is_dead_after_the_window_and_heartbeat_revives_it`, `evict_dead_removes_only_the_stale_nodes`, `roster_saves_and_loads_durably`, `state_json_exposes_live_and_dead_as_data` |
| `crates/jera/src/agent_grpc.rs` | `grpc_dispatch_runs_to_done_over_the_wire`, `grpc_dispatch_carries_payload_over_the_wire`, `wire_auth_rejects_unauthenticated_dispatch_and_admits_the_authed_one`, `grpc_kill_propagates_to_killed_over_the_wire` |
| `crates/jera/src/boot.rs` | `mode_selection_maps_target_type_to_mode`, `press_boot_creates_a_running_job`, `poll_tracks_running_then_death_terminates_job`, `killing_the_job_kills_the_boot_and_marks_killed`, `spawn_failure_opens_and_immediately_fails_the_job`, `boot_jobs_with_reports_wires_reporter_and_state_json_carries_reports`, `boot_jobs_without_reports_state_json_has_no_reports_key`, `container_boot_through_manager_uses_boot_container_kind`, `vm_boot_through_manager_uses_boot_vm_kind_and_terminates`, `real_exe_boot_spawns_and_reaches_terminal` |
| `crates/jera/src/container.rs` | `container_spec_maps_onto_a_draupnir_container_spec`, `zone_offset_port_map_threads_distinct_host_container_onto_draupnir`, `resources_and_zone_reach_draupnir_and_default_is_all_cores`, `net_mode_renders_network_arg_and_default_is_byte_identical`, `container_net_reaches_draupnir`, `bind_mounts_render_bind_strings_and_empty_is_unchanged`, `draupnir_runner_boots_through_draupnir_streams_logs_and_kills`, `draupnir_runner_maps_container_state_to_terminal_status`, `draupnir_runner_boot_failure_is_reported`, `draupnir_runner_emits_health_starting_alive_then_gone`, `proc_exec_forwards_machine_and_argv_to_draupnir_and_returns_outcome`, `default_boot_proc_exec_is_honest_not_wired`, `stub_container_runner_reports_honest_not_wired`, `run_container_routes_through_draupnir_and_records_a_done_row`, `run_container_nonzero_exit_is_ok_but_records_a_failed_row`, `submit_container_job_records_knobs_and_waits_until_running`, `run_container_boot_failure_is_err_and_records_a_failed_row` |
| `crates/jera/src/jobs.rs` | `start_finish_fail_and_drop_zombie_guard`, `running_then_done_overwrites_in_place_no_duplicate`, `prune_drops_aged_terminal_and_caps_count_but_keeps_running`, `classify_bench_exclusive_others_parallel`, `daemon_job_reports_phase_and_stops_without_ever_failing`, `daemon_resumes_the_same_ledger_row_across_a_restart`, `daemon_phase_is_durable_across_a_fresh_read_only_store`, `start_or_resume_daemon_dedups_multiple_leftover_rows`, `exclusive_bench_jobs_serialize_second_observes_queued`, `parallel_job_not_blocked_by_running_exclusive`, `job_record_vec_json_round_trips`, `child_jobs_carry_parent_id_and_persist`, `job_records_its_node_and_persists_it`, `job_emits_progress_and_ledger_snapshot_reflects_current_and_total`, `workspace_sink_writes_a_job_into_the_env_resolved_ledger`, `workspace_sink_noops_on_unwritable_and_blank_env_falls_through` |
| `crates/jera/src/jobs/report.rs` | `report_key_gives_gauges_independent_slots`, `reporter_progress_lands_in_registry_latest_wins`, `reporter_health_transitions_are_recorded_in_order`, `reports_snapshot_shape_round_trips_through_serde`, `progress_fraction_and_meta_bridge_for_a_ui_row`, `reporter_phase_and_progress_coexist_latest_phase_wins`, `noop_reporter_never_panics_and_touches_nothing` |
| `crates/jera/src/policy.rs` | `policy_round_trips_with_boot_mode`, `vm_and_container_delegate_to_draupnir_process_does_not`, `draupnir_backend_maps_vm_to_kvm_and_container_to_oci`, `labels_are_stable` |
| `crates/jera/src/vm.rs` | `stub_vm_runner_reports_honest_not_wired`, `bootspec_kernel_rootfs_defaults`, `maps_onto_a_draupnir_kvm_spec` |
| `crates/korp-installer/src/banner.rs` | `banner_carries_the_korp_wordmark_and_raven_flavour`, `plain_banner_has_no_escape_codes`, `framebuffer_logo_paints_a_rich_branded_mark`, `framebuffer_logo_refuses_a_too_small_surface`, `rgbx_and_bgrx_place_the_red_channel_correctly` |
| `crates/korp-installer/src/bootorder.rs` | `hd_node_is_a_spec_shaped_gpt_harddrive_path`, `load_option_decodes_back_to_its_description_and_device_path`, `writing_a_boot_entry_puts_it_first_in_bootorder`, `re_running_does_not_duplicate_the_entry_in_bootorder`, `efivars_writable_is_false_when_absent` |
| `crates/korp-installer/src/cpu.rs` | `detects_amd_and_selects_amd_ucode_not_intel`, `detects_intel_and_selects_intel_ucode`, `an_unknown_vendor_still_installs_and_is_reported_honestly`, `a_cpuinfo_with_no_vendor_line_is_other_not_a_guessed_intel`, `a_missing_cpuinfo_file_is_not_fatal` |
| `crates/korp-installer/src/esp.rs` | `formats_a_fat32_esp_and_places_the_boot_payload`, `small_esp_falls_back_to_a_valid_fat_and_still_holds_files`, `rejects_a_partition_too_small_for_fat` |
| `crates/korp-installer/src/firststage.rs` | `the_esp_contract_matches_what_the_esp_builder_lays_down`, `recognises_a_uefi_pe_and_refuses_anything_else`, `the_first_stage_source_is_in_tree` |
| `crates/korp-installer/src/gpt.rs` | `writes_a_valid_two_partition_gpt`, `writes_a_third_korp_data_partition_when_requested`, `no_data_partition_is_byte_identical_to_the_two_partition_table`, `a_data_partition_too_big_for_the_rootfs_is_a_hard_error`, `backup_header_sits_at_the_last_lba_and_points_back`, `deterministic_for_a_fixed_seed`, `rejects_a_disk_too_small`, `rejects_an_esp_that_does_not_fit` |
| `crates/korp-installer/src/gpu.rs` | `nvidia_gets_nouveau_in_image_and_flags_proprietary_recommended`, `amd_and_intel_get_their_in_tree_drivers_with_no_flag`, `no_gpu_is_headless_and_never_blocks_the_install`, `an_unknown_adapter_falls_back_to_the_firmware_framebuffer`, `multiple_gpus_are_each_recorded` |
| `crates/korp-installer/src/hwdetect.rs` | `picks_the_nvme_over_sata_and_skips_loop_and_removable`, `an_empty_pin_is_auto_select`, `a_name_pin_selects_that_disk_not_the_auto_favorite`, `a_pin_that_matches_nothing_fails_closed_and_never_wipes_the_wrong_drive`, `a_size_pin_disambiguates_two_same_class_disks`, `a_wwn_pin_matches_by_stable_identity`, `reads_the_disk_model_from_sysfs_and_targets_the_nvme_node`, `detects_uefi_and_gpu_and_renders_the_finding_line`, `no_gpu_renders_none_and_bios_is_rejected`, `no_disk_is_an_honest_error`, `drm_connectors_and_render_nodes_are_not_counted_as_gpus` |
| `crates/korp-installer/src/install.rs` | `full_install_lays_gpt_esp_and_rootfs_and_reaches_install_ok`, `hardware_survey_records_land_on_the_esp`, `a_failed_step_prints_a_loud_failed_line_and_errors` |
| `crates/korp-installer/src/loader.rs` | `blake3_verify_accepts_the_pinned_image_and_refuses_a_flipped_byte`, `parse_blake3_hex_round_trips`, `exec_from_memory_runs_a_ram_only_binary` |
| `crates/korp-installer/src/mdraid.rs` | `superblock_carries_the_magic_level_and_bootable_data_offset`, `super_offset_is_8kib_from_the_end_and_4kib_aligned`, `the_checksum_is_self_consistent_and_covers_the_roles`, `two_members_share_the_array_uuid_but_differ_in_dev_number` |
| `crates/korp-installer/src/payload.rs` | `streams_payload_raw_onto_the_partition_offset`, `refuses_a_payload_larger_than_the_partition`, `embedded_source_opens_and_s3_is_an_honest_seam`, `human_bytes_render` |
| `crates/korp-installer/src/raid.rs` | `two_equal_ssds_are_paired_and_a_lone_disk_is_not`, `disks_without_a_model_are_never_auto_paired_on_size_alone`, `policy_off_never_mirrors_and_require_fails_without_a_pair`, `mdadm_examine_recognises_the_member_as_a_raid1_mirror`, `a_raid1_install_lays_identical_bootable_members_with_superblocks` |
| `crates/korp-installer/src/secureboot.rs` | `the_authenticode_digest_skips_the_checksum_and_cert_directory_only`, `a_signed_image_still_hashes_to_the_unsigned_digest`, `enrolling_a_certificate_writes_pk_kek_and_db`, `the_uefi_guids_are_byte_exact`, `refuses_to_sign_something_that_is_not_a_pe` |
| `crates/korp-installer/src/selftest.rs` | `a_good_payload_reports_every_leg_it_actually_ran`, `a_byte_flipped_on_the_installed_disk_fails_the_install_selftest`, `a_tampered_signature_fails_only_the_signature_leg`, `an_unsigned_payload_is_refused_and_the_verdict_names_the_signature_leg`, `an_unenrolled_anchor_is_reported_honestly_and_never_as_a_pass`, `a_small_order_enrolled_pubkey_fails_rather_than_verifying_everything`, `a_failed_earlier_leg_stops_the_startup_chain_before_extraction`, `the_verdict_renders_a_parseable_line_and_its_reasons` |
| `crates/korp-installer/src/serial.rs` | `every_line_carries_the_installer_tag_and_crlf`, `failed_line_is_loud_and_structured`, `install_ok_emits_the_exact_gate_marker`, `try_line_surfaces_a_write_error` |
| `crates/korp-installer/src/trust.rs` | `default_verifier_trusts_and_default_key_source_is_plaintext`, `ed25519_root_verifier_accepts_a_valid_signature_and_refuses_the_rest`, `a_custom_verifier_can_refuse` |
| `crates/nornir-appshell/src/lib.rs` | `identity_state_json_carries_name_version_framework_and_logo`, `identity_round_trips_through_serde`, `logo_option_handled_none_and_lfs_pointer`, `toolmenu_enumerates_and_resolves_selected_entry`, `toolmenu_round_trips_through_serde`, `emits_honest_rows_for_appshell_surfaces` |
| `crates/nornir-auth-apikey/src/lib.rs` | `matching_hashed_key_authenticates_wrong_is_not_mine`, `store_holds_hash_not_plaintext`, `multi_key_store_and_empty_store_fail_closed` |
| `crates/nornir-auth-bearer/src/lib.rs` | `matching_key_authenticates_wrong_is_not_mine`, `empty_secret_provider_is_disabled_fail_closed`, `resolves_secret_via_shared_ladder_env_and_file` |
| `crates/nornir-auth-client/src/lib.rs` | `bundle_validity_honours_expiry_and_skew`, `from_response_stamps_expiry_and_preserves_refresh`, `cached_token_returns_fresh_hides_expired`, `file_store_round_trips_and_is_owner_only`, `for_app_path_convention`, `login_against_the_stub_yields_and_persists_a_token`, `no_refresh_token_and_a_stale_access_token_means_log_in_again`, `display_jwt_carries_its_claims_in_a_decodable_payload` |
| `crates/nornir-auth-mtls/src/lib.rs` | `cn_becomes_identity_bearer_is_not_mine`, `principal_for_cn_handles_absent_cn`, `ca_trust_warning_only_when_ca_declared` |
| `crates/nornir-auth-oauth2/src/lib.rs` | `active_token_with_subject_verifies`, `active_token_falls_back_to_username`, `inactive_token_is_rejected_as_not_mine`, `active_but_subjectless_token_is_rejected`, `disabled_provider_authenticates_nothing`, `authorize_url_pkce_builds_a_valid_redirect` |
| `crates/nornir-auth-oidc/src/lib.rs` | `valid_jwt_verifies_offline_against_inline_jwks`, `jwt_scopes_are_surfaced`, `bad_jwts_are_authoritatively_rejected`, `fully_offline_preprovisioned_jwks_file_succeeds`, `opaque_token_is_not_mine_when_offline`, `device_code_parse_and_user_uri`, `token_response_parse_success_pending_and_error`, `a34_1_the_key_set_comes_from_discovery_not_a_guess`, `a34_1_a_cold_jwks_cache_refuses_and_never_falls_through`, `a34_29_an_oct_key_never_verifies_an_hmac_bearer`, `jwks_fetched_once_then_cached` |
| `crates/nornir-bench/src/api.rs` | `an_empty_filter_value_means_no_filter_not_match_nothing`, `a_preview_stamp_is_never_the_real_host_and_never_doubles`, `registry_includes_demo`, `registered_bench_ids_lists_linked_benchers_sorted`, `single_core_pass_relabels_and_sets_flag`, `pass_request_env_parsing` |
| `crates/nornir-bench/src/assets.rs` | `ensure_returns_existing_without_download`, `ensure_creates_missing_cache_dir`, `default_cache_dir_env_override_then_home_fallback` |
| `crates/nornir-bench/src/diff.rs` | `throughput_drop_is_a_regression_rise_is_not`, `latency_rise_is_a_regression_and_tolerance_absorbs_wobble`, `neutral_and_static_metrics_never_gate`, `a_red_test_gates_even_with_no_scalar_drop`, `added_and_removed_benches_are_surfaced_not_regressions` |
| `crates/nornir-bench/src/history.rs` | `legacy_line_parses_without_timestamp_or_tests`, `new_line_roundtrips_with_tests`, `append_writes_committable_jsonl_receipt` |
| `crates/nornir-bench/src/legacy.rs` | `mbs_basic`, `missing_tool_is_none`, `comparison_pairs_metrics_and_speedup`, `comparison_without_legacy_is_ours_only` |
| `crates/nornir-bench/src/lib.rs` | `static_and_measured_are_distinguishable`, `measured_tag_is_omitted_on_the_wire_but_static_survives_roundtrip`, `legacy_line_without_source_reads_as_measured`, `unit_and_direction_from_name`, `explicit_override_wins`, `empty_history_is_red_not_silently_green`, `real_runs_are_sannr_newest_first_and_limited` |
| `crates/nornir-bench/src/progress.rs` | `mode_labels`, `starting_line_names_suite_and_mode`, `done_line_includes_summary_and_elapsed`, `telem_suffix_and_done_line`, `failed_line_carries_error`, `actionlog_append_matches_viz_format` |
| `crates/nornir-bench/src/selftest.rs` | `emits_honest_rows_for_bench_surfaces` |
| `crates/nornir-bench/src/telemetry.rs` | `proc_stat_parses_aggregate_and_cores`, `interval_utilisation_counts_busy_cores`, `zero_interval_is_ignored`, `metrics_roundtrip`, `sampler_runs_and_reports_on_a_busy_workload` |
| `crates/nornir-build-thing/src/analyze.rs` | `default_analyzer_is_noop` |
| `crates/nornir-build-thing/src/assemble.rs` | `each_kind_dispatches_and_output_kind_matches`, `lineage_has_provenance_dep_artifact_and_content_id_is_the_hash`, `precheck_missing_when_target_not_installed`, `composite_threads_lib_content_id_into_parent_dep_row`, `cycle_in_embeds_errors`, `idempotent_second_assemble_is_a_cache_hit`, `container_without_injected_builder_errors`, `dispatch_runs_injected_analyzer_keyed_by_content_id` |
| `crates/nornir-build-thing/src/build_info.rs` | `manifest_rows_cover_provenance_dep_and_artifact`, `feed_rows_carry_step_log_and_metrics`, `in_mem_sink_round_trips_rows`, `null_sink_is_a_noop`, `arrow_schema_has_f3_columns_in_order`, `arrow_batch_matches_schema_and_values`, `emits_functional_rows_for_build_info` |
| `crates/nornir-build-thing/src/capability_probe.rs` | `a_present_literal_reads_present`, `the_stub_marker_with_no_proof_reads_hollow`, `neither_proof_nor_stub_is_unknown_never_present`, `contains_literal_is_a_plain_substring_scan`, `gate_binary_fails_on_hollow_and_passes_once_the_capability_is_present`, `an_unreadable_path_is_a_failure_not_a_pass` |
| `crates/nornir-build-thing/src/container.rs` | `containerfile_materializes_deterministically`, `build_args_carry_tags_and_format`, `variant_deps_lists_chained_cargo_builds`, `validate_catches_missing_base_and_layer_source`, `descriptor_and_content_id_round_trip`, `image_format_parses_and_round_trips_all_spellings` |
| `crates/nornir-build-thing/src/elm.rs` | `three_holger_exes_become_three_cards`, `build_emits_a_run_effect_and_marks_building`, `success_feeds_back_a_provenance_summary`, `invalid_variant_refuses_to_build`, `model_state_json_round_trips` |
| `crates/nornir-build-thing/src/feature_axis.rs` | `an_offered_feature_no_variant_names_is_the_gap`, `declaring_the_variant_closes_the_gap`, `a_required_features_bin_no_variant_satisfies_is_named`, `an_unread_manifest_is_reported_as_unmeasured_not_as_clean`, `an_unconstrained_repo_is_still_measured_against_its_manifest`, `a_manifest_scan_that_missed_a_sub_workspace_says_so`, `manifest_features_reads_a_workspace_and_drops_default`, `state_json_carries_the_gap_for_a_pane`, `the_gate_catches_korps_real_orphaned_features`, `documenting_the_debt_in_allow_unbuilt_passes_the_gate`, `an_undocumented_orphan_beside_documented_debt_still_fails`, `a_stale_allowlist_entry_fails_the_gate`, `the_real_constellation_feature_rot_gate`, `gate_all_names_every_rotting_repo_at_once` |
| `crates/nornir-build-thing/src/gating.rs` | `real_constellation_gating_report`, `cfg_forms_parse_and_undecidable_ones_say_so`, `compiled_in_gated_out_and_undecided_are_three_different_answers`, `an_unscanned_repo_never_reads_as_nothing_gated`, `required_features_targets_are_found_and_are_the_headline_rot`, `augmenting_a_graph_never_creates_a_dangling_edge`, `the_file_cap_keeps_the_gated_out_ones` |
| `crates/nornir-build-thing/src/image_build.rs` | `build_container_seals_over_the_produced_image_digest`, `target_attestation_round_trips_and_tamper_is_detected`, `build_vm_seals_over_the_produced_kernel_and_rootfs_hashes`, `prebuilt_vm_builder_errors_when_no_artifact_present`, `prebuilt_vm_builder_stages_and_seals_the_from_variant_artifact`, `build_container_seal_with_dev_sealer_is_verifiable`, `build_vm_uses_the_builders_engine_label`, `build_container_propagates_builder_error_on_failed_outcome`, `build_iso_seals_over_the_produced_iso_and_from_variant_payload`, `pure_rust_builder_masters_a_real_bootable_iso`, `pure_rust_builder_errors_when_efi_boot_image_missing`, `build_container_default_engine_label_is_bollard`, `tar_context_stages_from_variant_artifacts`, `tar_context_errors_when_variant_not_staged` |
| `crates/nornir-build-thing/src/installer.rs` | `masters_a_uefi_installer_iso_chaining_the_pid1_variant`, `kvm_disk_args_attach_a_blank_target_and_optional_gpu`, `success_marker_and_disk_size_are_stable`, `validate_and_content_id_round_trip`, `empty_name_and_zero_disk_are_rejected`, `payload_kind_defaults_to_embedded_and_labels_s3`, `lean_carries_no_backend_and_bakes_the_lean_selector`, `each_fat_backend_bakes_its_selector_and_is_distinctly_content_addressed`, `container_backend_label_round_trips_and_knows_daemonless`, `declared_appliance_boot_param_is_not_double_stamped`, `installer_from_toml` |
| `crates/nornir-build-thing/src/iso.rs` | `master_args_carry_volume_output_and_boot_image`, `qemu_args_boot_the_iso_as_a_firmware_cdrom`, `variant_deps_lists_the_chained_cargo_build`, `validate_requires_a_bootable_payload`, `descriptor_and_content_id_round_trip`, `iso_format_parses_and_round_trips_all_spellings`, `iso_build_from_toml`, `iso_cell_boot_logo_override_parses_and_surfaces_on_the_same_wire`, `iso_cell_boot_logo_wins_over_the_from_variant_boot_logo` |
| `crates/nornir-build-thing/src/iso_writer.rs` | `masters_iso9660_structures_and_reads_payload_back`, `mastering_is_deterministic`, `unstaged_boot_image_errors` |
| `crates/nornir-build-thing/src/linkage.rs` | `an_unmeasured_linkage_audit_never_passes`, `a_thin_declaration_is_failed_by_what_it_links`, `a_fat_variant_is_not_failed_for_being_fat`, `an_embedded_variant_that_embeds_nothing_makes_the_thin_check_vacuous`, `a_declared_inapplicable_axis_holds_but_silence_is_audited_as_fat`, `the_forbidden_list_names_entry_points_not_products`, `a_missing_artifact_is_no_audit_at_all`, `object_reads_a_real_binary_and_extra_families_are_honoured`, `human_bytes_reads_like_a_size` |
| `crates/nornir-build-thing/src/output.rs` | `service_kind_outputs_service_spec`, `exe_and_lib_output_binary_artifact`, `wasm_kind_outputs_pages_bundle`, `container_kind_outputs_image_ref`, `vm_kind_outputs_vm_ref` |
| `crates/nornir-build-thing/src/plugin.rs` | `the_default_validate_applies_the_declared_rules`, `an_apps_own_artifact_rule_runs`, `dispatch_answers_every_op_in_json`, `a_malformed_argument_is_refused_not_trapped`, `the_abi_pack_round_trips`, `a_refusal_can_never_be_silent` |
| `crates/nornir-build-thing/src/plugin_host.rs` | `a_module_asking_for_a_capability_is_refused_by_name`, `a_module_speaking_another_abi_is_refused`, `a_module_without_memory_is_refused`, `an_infinite_loop_exhausts_fuel_instead_of_hanging_the_host` |
| `crates/nornir-build-thing/src/progress.rs` | `a_channel_is_an_observer_and_a_closed_one_is_harmless`, `a_failure_keeps_the_compilers_own_words`, `only_a_real_observer_asks_cargo_for_the_diagnostics`, `events_round_trip_through_json_for_a_panes_state` |
| `crates/nornir-build-thing/src/provenance.rs` | `attestation_captures_variant_inputs_host_and_hashes`, `record_round_trips_through_json`, `attestation_digest_is_stable_and_round_trips`, `tampering_the_record_breaks_the_digest` |
| `crates/nornir-build-thing/src/selftest.rs` | `emits_honest_rows_for_build_surfaces` |
| `crates/nornir-build-thing/src/service.rs` | `fat_variant_maps_to_service_spec_with_user_and_exec`, `thin_variant_maps_to_thin_agent`, `bridges_to_the_real_skidbladnir_spec`, `plain_variant_without_member_degrades_gracefully` |
| `crates/nornir-build-thing/src/sink.rs` | `null_sink_is_a_noop`, `json_file_sink_appends_a_line_per_record` |
| `crates/nornir-build-thing/src/spec.rs` | `an_emitted_spec_round_trips_into_the_same_declaration`, `the_source_prefers_the_apps_own_emission_over_a_hand_written_toml`, `an_undeclared_repo_resolves_to_a_finding_not_an_error`, `the_drift_guard_names_which_kind_of_drift_it_found`, `describe_prints_all_four_axes_per_variant` |
| `crates/nornir-build-thing/src/surface.rs` | `surface_enumerates_variants_with_commands_and_actions`, `surface_flags_an_invalid_variant_with_a_reason`, `state_json_exposes_the_surface_shape`, `launch_action_maps_per_artifact_kind`, `state_json_carries_the_per_kind_launch_action`, `state_json_launch_axis_spans_container_and_vm_kinds`, `surface_projects_container_builds`, `surface_projects_vm_builds`, `surface_flags_a_vm_booting_a_missing_variant`, `surface_flags_an_image_chaining_a_missing_variant` |
| `crates/nornir-build-thing/src/variant.rs` | `a_variant_declares_its_own_boot_logo_and_it_resolves_against_the_repo_root`, `valid_variant_yields_correct_cargo_args`, `profile_and_target_and_no_default_features_render`, `feature_not_offered_is_rejected`, `mutually_exclusive_features_are_rejected`, `required_features_for_bin_are_enforced`, `holger_three_exes_plus_gui_parse`, `holger_fixture_file_parses`, `round_trips_through_toml`, `profile_parses_and_round_trips_all_spellings`, `variant_optional_fields_deserialize`, `empty_offers_is_unconstrained`, `require_unknown_variant_lists_known_names`, `require_vm_empty_set_reports_none_declared`, `require_vm_unknown_name_lists_known_vms`, `require_vm_returns_declared_descriptor`, `fat_downstream_embed_and_thin_are_valid`, `inverted_embed_upstream_member_is_rejected`, `thin_standalone_may_not_embed`, `embeds_and_reaches_must_be_disjoint`, `service_shape_parses_and_round_trips`, `nornir_own_build_variants_discovers`, `every_constellation_build_space_validates_and_names_its_defaults`, `artifact_kind_parses_and_round_trips`, `kind_defaults_to_exe_and_is_omitted_when_serialized`, `wasm_kind_requires_wasm32_target`, `service_kind_requires_member_and_is_native`, `lib_kind_forbids_bin_and_emits_lib_flag`, `not_applicable_linkage_is_distinguishable_from_silence`, `exactly_one_default_per_role_or_it_says_which_role`, `embeds_requires_service_kind`, `exe_may_reach_but_not_embed`, `container_delegating_node_resolves`, `artifacts_and_kind_of_span_all_collections` |
| `crates/nornir-build-thing/src/vm.rs` | `qemu_args_carry_machine_mem_cores_kernel_and_cmdline`, `variant_deps_lists_the_chained_cargo_build`, `validate_catches_missing_kernel_rootfs_and_zero_size`, `descriptor_and_content_id_round_trip`, `vm_format_parses_and_round_trips_all_spellings`, `microvm_boot_from_toml` |
| `crates/nornir-claude/src/lib.rs` | `credential_precedence_is_api_key_then_bearer_then_session`, `resolve_credential_reads_env_in_order`, `credential_maps_to_the_right_headers`, `offline_echo_reflects_the_last_user_turn_and_records_requests`, `offline_canned_and_failing_paths`, `send_wire_matches_the_facett_pane_seam_shape`, `assemble_text_concatenates_only_text_blocks` |
| `crates/nornir-claude/src/selftest.rs` | `emits_honest_rows_for_claude_surfaces` |
| `crates/nornir-cli-outcome/src/cli_outcome.rs` | `ok_outcome_with_real_data_is_sannr`, `empty_or_failed_or_errored_is_not_sane`, `exit_code_maps_semantic_verdict_to_process_status`, `sannr_exit_code_is_strict_empty_is_red`, `finish_returns_the_exit_code` |
| `crates/nornir-cli-outcome/src/selftest.rs` | `emits_honest_rows_for_command_outcome_surfaces` |
| `crates/nornir-config/src/lib.rs` | `home_root_is_home_dot_nornir_for_any_user`, `registry_and_warehouse_compose_under_home`, `warehouse_root_default_is_home_derived`, `repo_dir_for_honors_path_override_relative_and_absolute`, `discover_honors_workspace_root_env_from_a_worktree_cwd` |
| `crates/nornir-coverage/src/diff.rs` | `delta_signs_and_regression_threshold`, `between_matches_crates_and_flags_add_remove`, `regression_gate_verdict_and_worst`, `markdown_table_renders_overall_and_flags_regression` |
| `crates/nornir-coverage/src/lib.rs` | `classify_finds_ui_grpc_emitter_boundaries`, `parse_real_llvm_cov_export_shape`, `demangle_unwraps_v0_and_passes_plain_through`, `pct_full_when_no_lines`, `pct_i64_clamps_garbage_and_handles_empty`, `region_pct_wrappers_agree_across_fn_file_crate_report` |
| `crates/nornir-coverage/src/selftest.rs` | `emits_honest_rows_for_coverage_diff_surfaces` |
| `crates/nornir-depgraph/src/funcgraph.rs` | `stable_id_matches_nornir_synthesis`, `crate_with_symbols_yields_nonempty_nodes_and_edges`, `qualified_callees_and_multiple_crates`, `output_is_deterministic` |
| `crates/nornir-depgraph/src/layout.rs` | `transitive_closure_is_correct`, `direct_mode_classifies_every_edge_direct`, `deep_mode_synthesises_only_genuinely_transitive_edges`, `deep_mode_does_not_duplicate_an_existing_direct_edge`, `layout_places_deps_right_of_consumers`, `state_json_exposes_positions_and_edge_classes`, `collapsing_a_node_hides_its_exclusive_subtree`, `collapsing_keeps_a_node_with_an_alternate_open_path` |
| `crates/nornir-depgraph/src/lib.rs` | `parallel_map_equals_serial_map`, `manifest_facts_capture_diamond_edges`, `private_member_produces_nothing`, `duplicate_produced_name_is_ambiguous_not_fatal`, `broken_manifest_member_is_skipped_not_fatal`, `to_rows_group_snapshots_round_trip`, `group_snapshots_separates_ids_and_preserves_first_seen_order`, `empty_via_edge_round_trips`, `distinct_kinds_are_not_merged`, `empty_rows_yield_no_snapshots`, `dependents_of_is_reverse_of_dependencies`, `transitive_closures`, `affected_by_change_is_blast_radius_in_build_order`, `dep_path_finds_shortest_route`, `external_deps_and_users` |
| `crates/nornir-depgraph/src/selftest.rs` | `emits_honest_rows_for_snapshot_persistence_surfaces` |
| `crates/nornir-escape/src/lib.rs` | `each_entity_exact_spelling`, `apostrophe_passes_through`, `clean_input_borrows`, `empty_and_mixed`, `matches_replace_chain_exactly`, `unicode_clean_borrows`, `attr_each_entity_exact_spelling`, `attr_escapes_apostrophe_where_xml_does_not`, `attr_clean_borrows_dirty_owns`, `attr_superset_of_xml`, `attr_matches_replace_chain_exactly` |
| `crates/nornir-escape/src/selftest.rs` | `emits_honest_rows_for_escape_surfaces` |
| `crates/nornir-flight/src/bench.rs` | `throughput_bencher_reports_positive_put_get` |
| `crates/nornir-git/src/deploykey.rs` | `the_four_states_are_four_states`, `no_data_is_not_good_news`, `a_minted_key_is_not_a_used_key_and_not_a_missing_one`, `a_partial_green_reports_both_numbers`, `a_rejection_and_a_reset_are_told_apart`, `the_ladder_names_every_rung_and_flags_the_legacy_ones`, `relabelling_the_identity_does_not_touch_the_key_material`, `the_identity_is_the_comment_and_a_nornir_one_reads_as_stale` |
| `crates/nornir-git/src/gitclean.rs` | `scan_reports_big_blob_as_largest`, `scan_path_filter_narrows`, `dry_run_mutates_nothing_and_reports`, `purge_removes_blob_from_all_history`, `purge_is_idempotent`, `glob_match_basics` |
| `crates/nornir-git/src/gitio.rs` | `https_rewrites_to_scp_like_ssh_and_is_recognised`, `non_https_or_pathless_urls_do_not_rewrite`, `dep_clone_base_default_is_ssh`, `push_local_fast_forwards_and_a_fresh_clone_sees_it`, `push_local_refuses_non_fast_forward`, `push_local_rejects_network_remotes`, `worktree_edit_changes_digest_and_dirty_but_not_head_sha`, `changed_paths_lists_uncommitted_and_tracks_dirty`, `clean_digest_is_stable_and_matches_sentinel`, `tag_resolves_points_at_head_and_stays_pinned_when_head_advances`, `tag_lightweight_refuses_to_repoint_an_existing_tag_to_another_commit`, `tag_lightweight_rejects_a_non_hex_sha`, `head_sha_and_branch_agrees_with_the_split_readers`, `set_head_and_checkout_repoints_branch_and_reverts_the_worktree` |
| `crates/nornir-git/src/gitops.rs` | `resolve_and_branch_exists`, `commit_paths_stages_only_matched_and_skips_empty`, `branch_create_reset_delete_and_checkout`, `commit_dir_as_orphan_branch_squashes_a_dist_dir_without_touching_head`, `ancestor_ff_merge_and_tags`, `no_ff_merge_creates_merge_commit`, `checkout_between_divergent_trees_leaves_clean_index`, `restore_path_from_head_reverts_worktree_file`, `update_ref_and_detach`, `local_config_round_trips`, `stage_paths_marks_index_and_accumulates`, `is_dirty_and_short_sha`, `list_worktrees_includes_main` |
| `crates/nornir-git/src/selftest.rs` | `emits_honest_rows_for_git_ops` |
| `crates/nornir-git/src/ssh.rs` | `parse_scp_like`, `parse_ssh_scheme_with_port_and_user`, `reject_https`, `parse_advertisement`, `parse_v2_ls_refs_with_symref_and_peel`, `ls_remote_resolves_head_on_codeberg_tunnr`, `section_end_frames_a_flushed_section` |
| `crates/nornir-git/src/sshkey.rs` | `mints_a_valid_ed25519_openssh_keypair`, `private_key_is_0600_and_dir_0700`, `idempotent_preserves_existing_key`, `ensure_deploy_key_writes_home_ssh_and_returns_pubkey`, `a_symlinked_ssh_dir_is_refused_and_never_followed`, `a_relative_home_is_refused_before_anything_is_created`, `emits_honest_rows_for_deploy_key_gen` |
| `crates/nornir-hash/src/lib.rs` | `known_sha256_vectors`, `streaming_matches_oneshot`, `hex_round_trip`, `hex_decode_rejects_bad_input`, `sha256_file_matches_in_memory` |
| `crates/nornir-hash/src/selftest.rs` | `emits_honest_rows_for_hash_surfaces` |
| `crates/nornir-humanize/src/lib.rs` | `bytes_iec_boundaries_and_ladder`, `ladder_never_renders_its_successors_base`, `count_promotes_instead_of_printing_1000`, `duration_promotes_instead_of_printing_60s`, `throughput_promotes_instead_of_printing_1024`, `bytes_si_uses_powers_of_ten`, `count_compacts_with_si_suffixes`, `thousands_groups_in_threes`, `duration_scales_across_units`, `duration_helpers_agree_with_core`, `throughput_is_binary_per_second`, `percent_and_percent_of` |
| `crates/nornir-humanize/src/selftest.rs` | `emits_honest_rows_for_humanize_surfaces` |
| `crates/nornir-knowledge-view/src/lib.rs` | `function_graph_yields_real_nodes_and_edges`, `callers_of_matches_last_segment_and_bare`, `call_path_bfs_over_call_edges`, `indexed_lookups_match_linear_scan_exactly`, `callers_of_lookup_is_o_hits_not_o_n`, `index_is_built_once_and_reused`, `stree_batched_lookups_match_inverted_index_and_linear_scan`, `call_path_csr_vs_hashmap_ab_light`, `load_latest_picks_the_newest_snapshot_and_ignores_other_repos` |
| `crates/nornir-pages/src/lib.rs` | `index_html_is_byte_faithful_golden`, `cache_bust_and_knobs_interpolate`, `display_name_is_title_first_word` |
| `crates/nornir-pages/src/selftest.rs` | `emits_honest_rows_for_index_render` |
| `crates/nornir-release-core/src/api_skew.rs` | `skade_ingest_multi_is_flagged`, `no_skew_when_published_has_the_api`, `boundary_and_chain_capture`, `crate_private_is_not_exported`, `pub_use_reexports_counted`, `exported_macros_are_in_the_api`, `glob_reexport_is_inconclusive_never_a_false_block` |
| `crates/nornir-release-core/src/depdag.rs` | `assembles_nodes_edges_and_publish_waves`, `registry_state_annotates_will_publish_and_desync`, `a_real_cycle_is_flagged_unpublishable`, `unknown_state_without_a_registry_probe` |
| `crates/nornir-release-core/src/depgraph_trait.rs` | `scc_finds_the_cycle`, `topo_orders_deps_first`, `topo_rejects_a_cycle`, `release_closure_is_depth_bounded`, `defaults_match_petgraph_backend` |
| `crates/nornir-release-core/src/doctor.rs` | `repo_topo_places_producer_before_alphabetically_earlier_consumer`, `crate_scc_order_interleaves_repos_never_repo_blocks`, `real_driver_steps_interleave_scc_never_repo_blocks`, `real_driver_non_scc_plans_whole_repo_blocks`, `real_dwarves_nornir_scc_interleaves_crate_order`, `skew_flags_divergence_and_forbidden_and_target_is_highest`, `forbidden_respects_semver_line_for_0x`, `transitive_pin_marks_dual_major_lock`, `run_reports_dirty_skew_and_order_over_a_real_two_repo_tree`, `path_dep_missing_version_is_a_preflight_gap`, `version_pinned_cross_dep_does_not_gate_but_path_dep_does`, `detect_cycles_finds_a_real_crate_cycle`, `semantic_blast_of_a_repo_with_dependents_fails_closed_when_no_call_graph_is_produced`, `registry_satisfied_cross_repo_dep_is_non_gating_even_when_producer_in_set`, `unpublished_or_unsatisfied_cross_repo_dep_stays_gating`, `versionless_path_dep_keeps_crate_gating` |
| `crates/nornir-release-core/src/edition.rs` | `clean_when_2024_msrv_and_resolver3`, `flags_old_edition_low_msrv_and_resolver`, `missing_msrv_is_flagged_and_resolver_unset`, `unpublishable_packages_are_skipped`, `parse_2024_lints_picks_edition_diagnostics_only`, `major_minor_parses_versions`, `dep_msrv_advisories_flag_a_silent_raise`, `parse_doc_errors_keeps_only_errors`, `declared_floor_is_min_and_default_config_keeps_heavy_off`, `default_report_is_clean` |
| `crates/nornir-release-core/src/gate.rs` | `no_path_patches_flags_forks_passes_clean`, `crate_metadata_gate_reds_on_missing_fields`, `path_dep_versions_gate`, `path_dep_gate_message_names_the_offender`, `links_conflicts_detection`, `nexus_floor_reds_when_holger_below_nexus`, `no_regression_point_gate`, `no_regression_windowed_is_noise_aware`, `metric_direction_classifier`, `roundtrip_runs_in_order_and_aborts_on_failure`, `dispatcher_routes_relocated_deferred_and_bench_gates`, `baseline_is_newest_by_timestamp_not_slice_order`, `baseline_picks_newest_even_when_older_run_is_last_in_slice`, `no_baseline_for_machine_passes`, `static_capability_rows_are_never_a_regression`, `lower_is_better_metric_trips_only_on_a_rise`, `nexus_floor_equality_partial_and_missing_keys`, `roundtrip_empty_kind_list_passes_vacuously`, `path_dep_audit_ignores_dev_deps_and_unpublished_members`, `crate_metadata_check_resolves_workspace_inheritance` |
| `crates/nornir-release-core/src/graph_math.rs` | `tarjan_finds_the_scc`, `dag_has_no_cycle_and_topo_orders`, `waves_are_antichains`, `mfas_ranks_cheapest_cut_first`, `mfas_prefers_free_dev_cut`, `planner_converges_autos_then_asks`, `planner_green_on_clean_state`, `planner_auto_cuts_cheap_cycle`, `disconnected_two_cycles_and_isolated_node`, `self_loop_is_a_one_node_cycle`, `condensation_groups_scc_and_stays_acyclic`, `mfas_three_cycle_yields_three_minimal_single_cuts`, `mfas_drops_non_minimal_superset_cuts`, `edge_class_cost_schedule`, `planner_surfaces_decision_only_symptom`, `planner_multiple_autos_reach_green` |
| `crates/nornir-release-core/src/knowledge.rs` | `callers_of_matches_last_segment_and_bare`, `call_path_bfs_over_call_edges` |
| `crates/nornir-release-core/src/model.rs` | `precise_gate_blocks_only_crates_that_reach_the_foreign_fork`, `compute_promote_block_classifies_foreign_vs_own_overrides`, `issue_kind_correctness_blockers` |
| `crates/nornir-release-core/src/published_ingest.rs` | `extracts_public_api_from_in_memory_file_map`, `glob_reexport_marks_surface_inconclusive`, `ingest_via_oracle_stub_uses_pure_core` |
| `crates/nornir-release-core/src/registry.rs` | `ownership_blocks_flags_only_foreign_existing_names`, `sparse_index_parses_max_non_yanked_version`, `sparse_index_skips_yanked_and_is_order_independent`, `sparse_index_tolerates_junk_and_all_yanked`, `sparse_index_lists_all_non_yanked_versions_for_presence`, `json_api_parses_versions_then_max_stable`, `classify_covers_the_full_table`, `classify_flags_the_gatling_desync`, `live_cratesio_backend_resolves_gatling`, `sparse_index_url_follows_cargo_path_convention`, `choose_precedence_flag_then_config_then_default` |
| `crates/nornir-release-core/src/semantic_blast.rs` | `ranks_changed_symbols_by_real_call_site_count`, `link_errors_flags_removed_with_live_call_sites_only`, `format_renders_headline_symbols_and_sites`, `diff_exported_symbols_detects_removed_changed_ignores_additions_and_private`, `compute_refuses_by_name_instead_of_reading_tables_nothing_writes`, `compute_refuses_over_an_empty_warehouse_too`, `compute_answers_without_a_call_graph_where_none_is_needed`, `compute_for_dirty_fails_closed_on_the_first_repo_that_needs_a_call_graph` |
| `crates/nornir-release-core/src/shadow_solve.rs` | `agreeing_dag_yields_no_warning`, `tie_break_freedom_is_not_a_divergence`, `cycle_fixture_diverges_with_one_warning`, `wrong_shipped_order_is_flagged`, `shadow_solve_over_repographs_agrees_and_runs_csp`, `constraint_conflict_is_telemetry_not_a_divergence` |
| `crates/nornir-release-core/src/skew_warehouse.rs` | `skade_ingest_multi_warehouse_join_with_provenance`, `no_skew_when_published_has_the_api`, `glob_reexport_is_resolved_in_warehouse_no_false_block`, `resolution_reuses_api_skew_boundaries`, `published_api_pod_drives_warehouse_join_end_to_end`, `no_skew_when_pod_has_the_api`, `non_enumerable_pod_is_inconclusive_never_a_false_block`, `visibility_public_filter`, `dispatcher_symbols_path_surfaces_exactly_one_skew`, `dispatcher_falls_back_to_ingest_pod`, `dispatcher_no_live_edges_is_inconclusive_not_a_block`, `dispatcher_non_enumerable_pod_is_inconclusive_not_a_block`, `dispatcher_unavailable_api_is_inconclusive` |
| `crates/nornir-release-core/src/version_solve.rs` | `interval_from_req_matches_cargo_semantics`, `interval_intersection_detects_emptiness`, `conflicting_range_fixture_is_flagged`, `overlapping_ranges_with_no_available_version`, `compatible_ranges_pass`, `solver_resolves_transitive_chain`, `solver_reports_unsatisfiable_transitive`, `constraints_from_repograph_roundtrip` |
| `crates/nornir-release-ledger/src/release_changes.rs` | `append_and_query_round_trips_each_kind`, `change_sha_is_deterministic_and_kind_separated` |
| `crates/nornir-release-ledger/src/release_events.rs` | `emitter_seq_is_monotonic_and_shared_across_clones`, `append_and_query_round_trip_with_grouping_and_order`, `sync_emit_and_async_read_agree` |
| `crates/nornir-release-ledger/src/schema.rs` | `release_table_field_ids_are_stable_and_dense`, `codec_column_indices_match_schema_order` |
| `crates/nornir-release/src/selftest.rs` | `emits_honest_rows_for_wave_surfaces` |
| `crates/nornir-release/src/source_drift.rs` | `smart_default_skips_unchanged_and_cascades_reverse_deps`, `all_unchanged_publishes_nothing`, `force_all_ignores_the_skip`, `only_and_exclude_filter_the_base`, `only_one_crate_yields_a_single_crate_publish_set`, `cascade_is_order_independent`, `identical_maps_are_unchanged`, `changed_file_is_drift`, `added_and_removed_files_are_drift`, `manifest_reformatting_is_not_drift`, `skip_only_when_published_and_unchanged`, `manifest_dependency_change_is_drift`, `e2e_assess_against_published_crate`, `extract_strips_prefix_and_drops_synthesized` |
| `crates/nornir-release/src/waves.rs` | `dep_kind_gating`, `dependency_publishes_before_dependent`, `independent_crates_share_one_wave_alphabetically`, `build_dep_gates_but_dev_dep_does_not`, `dev_dep_backedge_is_not_a_false_cycle`, `unpublishable_member_is_dropped_and_never_gates`, `external_dep_is_ignored`, `real_cycle_is_surfaced_not_dropped`, `three_level_chain_layers_into_three_waves`, `topo_phases_appends_cycle_remainder_as_final_phase`, `publish_edges_filters_dev_external_and_unpublishable` |
| `crates/nornir-robotui/src/cmd_json.rs` | `driver_drives_host_over_the_channel`, `client_mirror_api_drives_the_remote_host`, `malformed_request_is_an_error_not_a_drop`, `protocol_json_roundtrips` |
| `crates/nornir-robotui/src/lib.rs` | `click_button_mutates_observable_state`, `missing_button_is_an_error_not_a_panic`, `label_visible_reads_the_accesskit_tree`, `run_scenario_fills_the_matrix_with_one_row_per_step`, `type_into_drives_a_text_field_and_state_reads_it_back`, `assert_drew_passes_for_a_rendered_ui`, `set_field_text_sets_a_textedit_and_value_reads_back`, `set_field_bool_sets_a_checkbox_idempotently`, `set_field_number_drives_a_slider_via_accesskit_setvalue`, `click_by_id_clicks_a_widget_by_accesskit_node_id`, `inject_events_feeds_raw_synthetic_events`, `r6_scenario_drives_every_new_verb_and_fills_the_matrix`, `error_atoms_returns_only_the_error_marker_node`, `error_atoms_catches_lowercase_pane_failures_not_count_columns`, `all_atoms_enumerates_interactive_and_labelled_nodes`, `error_atoms_is_empty_for_a_clean_ui` |
| `crates/nornir-robotui/src/mode.rs` | `run_mode_default_is_headless`, `targets_records_and_resolves_rects`, `watch_config_default_is_paced` |
| `crates/nornir-robotui/src/replay.rs` | `plan_becomes_a_scenario_one_step_each`, `label_map_remaps_targets`, `step_label_falls_back_through_action_then_route` |
| `crates/nornir-robotui/src/scenario.rs` | `builder_composes_a_scenario`, `steps_bulk_append`, `r6_verbs_compose_as_plain_data` |
| `crates/nornir-robotui/src/snapshot.rs` | `webp_lossless_round_trip_is_pixel_exact`, `diff_counts_changed_pixels`, `assert_warehouse_created_match_mismatch`, `update_mode_overwrites_reference` |
| `crates/nornir-robotui/src/watch.rs` | `ease_is_a_clamped_smoothstep`, `lerp_hits_endpoints_and_midpoint`, `action_label_extracts_only_label_addressed_targets`, `destination_prefers_explicit_drag_end_over_target_rect`, `destination_uses_target_rect_centre_then_none`, `evaluate_verdict_covers_every_assert_kind`, `evaluate_verdict_missing_pointer_is_a_fail_not_a_panic`, `advance_latches_verdict_resets_per_step_state_and_finishes`, `step_delay_secs_has_a_nonzero_floor`, `accesskit_resolves_demo_widgets_with_no_targets`, `resolve_rect_falls_back_to_targets_when_accesskit_absent` |
| `crates/nornir-saga/src/analysis.rs` | `three_consecutive_clicks_on_one_component_is_a_rage_cluster`, `navigation_between_clicks_breaks_the_run`, `context_events_do_not_break_a_rage_run`, `switching_component_resets_the_run`, `repeated_error_on_a_route_is_a_stuck_route`, `single_error_is_not_stuck`, `clean_session_scores_zero`, `ranking_floats_the_painful_session_to_the_top`, `frustration_is_scoped_per_session`, `summarize_rolls_up_counts_and_replayable`, `summarize_floats_the_painful_session_to_the_top`, `nav_funnel_aggregates_ordered_routes_with_dropoff`, `nav_funnel_empty_stream_is_empty`, `nav_funnel_collapses_consecutive_duplicate_routes`, `nav_funnel_json_roundtrips` |
| `crates/nornir-saga/src/bench.rs` | `replay_fold_bencher_runs_and_reports_throughput` |
| `crates/nornir-saga/src/event.rs` | `kind_label_roundtrips`, `only_nav_and_click_are_actionable`, `nav_builder_sets_kind_and_fields`, `error_builder_is_error_kind_at_error_level`, `in_session_stamps_identity_onto_event`, `event_json_roundtrips`, `redacted_masks_email_and_token_in_free_text`, `redacted_masks_swedish_personnummer`, `redacted_masks_swedish_organisationsnummer`, `organisationsnummer_check_does_not_swallow_ordinary_numbers`, `personnummer_check_does_not_swallow_ordinary_numbers`, `redaction_is_idempotent`, `allowlisted_field_survives_redaction`, `secret_label_masks_the_short_credential_that_follows`, `ordinary_text_is_left_intact`, `mask_helper_preserves_layout_of_non_pii_words` |
| `crates/nornir-saga/src/record.rs` | `record_then_drain_preserves_order_and_clears`, `ingest_restamps_identity_redacts_client_pii_and_caps_batch`, `flush_retains_events_when_the_sink_fails_then_clears_on_success`, `disabled_path_is_a_noop_drain_is_empty` |
| `crates/nornir-saga/src/recorder.rs` | `records_stamps_seq_identity_and_flushes_through_the_store`, `flush_is_crash_safe_retaining_the_batch_on_a_store_error`, `redacts_client_pii_by_default`, `with_start_seq_continues_a_tape_numbering` |
| `crates/nornir-saga/src/replay.rs` | `only_nav_and_click_become_steps`, `steps_are_sorted_by_capture_seq_not_input_order`, `for_session_scopes_to_one_session`, `all_sessions_splits_and_orders_by_first_seq`, `plan_json_roundtrips` |
| `crates/nornir-saga/src/sink.rs` | `null_sink_swallows_events`, `json_file_sink_round_trips_two_drains`, `write_appends_and_never_rewrites_prior_history`, `read_all_tolerates_a_crash_torn_trailing_line`, `read_all_still_errors_on_corruption_before_the_last_line`, `sink_is_object_safe` |
| `crates/nornir-saga/src/store.rs` | `file_store_appends_lists_and_reads_back_one_session`, `empty_append_is_a_noop`, `mem_store_seeds_lists_painful_first_and_reads_back`, `mem_store_from_events_and_object_safe`, `store_is_object_safe` |
| `crates/nornir-saga/src/ui/capture.rs` | `tap_projects_and_filters_then_drains_a_saga` |
| `crates/nornir-saga/src/ui/driver.rs` | `drive_action_maps_every_drivable_msg_and_skips_notes`, `mock_driver_records_the_expected_dispatched_actions`, `noop_driver_runs_without_touching_anything`, `drive_action_maps_a_replay_step_nav_and_activate`, `drive_plan_drives_a_captured_session_end_to_end` |
| `crates/nornir-saga/src/ui/emit.rs` | `emitter_taps_projects_stamps_and_filters`, `emit_at_is_deterministic`, `null_sink_drops_everything`, `channel_sink_streams_to_a_receiver`, `channel_sink_ignores_a_dropped_receiver` |
| `crates/nornir-saga/src/ui/msg.rs` | `uimsg_kind_labels_match_serde_tag`, `saga_bridges_to_actionable_saga_events`, `uimsg_roundtrips_through_json`, `saga_to_ui_folds_events_to_movements_with_monotonic_time`, `saga_to_ui_is_the_inverse_of_to_saga_events`, `saga_to_ui_orders_by_capture_seq_not_input_order`, `note_is_the_only_non_drivable`, `saga_roundtrips_and_reports_duration` |
| `crates/nornir-saga/src/ui/njord.rs` | `locator_helpers_build_the_blessed_selectors`, `dom_assert_present_absent_text_and_value`, `mock_dom_driver_still_records_gestures`, `inject_replaces_field_values_and_resolves_the_test_code`, `unmapped_field_keeps_its_recorded_value`, `mail_capture_supplies_the_code_when_no_explicit_one` |
| `crates/nornir-saga/src/ui/player.rs` | `same_saga_yields_the_same_model_sequence`, `stepping_and_seeking_agree`, `seek_ms_scrubs_by_time`, `speed_scales_the_inter_frame_delay`, `speed_is_clamped_to_positive`, `verify_matches_captured_snapshots_and_rollback`, `verify_flags_a_tampered_snapshot`, `verify_of_an_empty_saga_is_clean` |
| `crates/nornir-saga/src/ui/source.rs` | `recorded_source_yields_in_order_then_none`, `channel_source_streams_then_closes` |
| `crates/nornir-saga/src/ui/synthetic.rs` | `demo_saga_is_deterministic_and_well_formed` |
| `crates/nornir-saga/src/ui/viewer.rs` | `fold_updates_cursor_route_and_counts`, `state_json_is_valid_and_carries_the_model`, `trail_is_capped`, `reset_clears_the_model` |
| `crates/nornir-saga/src/ui/web.rs` | `index_serves_a_self_contained_page`, `saga_json_endpoint_serves_the_saga`, `events_endpoint_streams_snapshots_to_completion` |
| `crates/nornir-service/src/client.rs` | `present_token_builds_header_absent_token_is_none`, `unencodable_token_is_err` |
| `crates/nornir-service/src/lib.rs` | `constant_time_token_compare_accepts_equal_rejects_any_diff`, `interceptor_strict_when_token_set`, `interceptor_open_when_token_empty`, `workspace_header_extracts_present_nonempty_only`, `resolve_token_ladder_flag_over_env_over_file_over_open`, `resolved_file_token_drives_interceptor_strict`, `trait_is_object_safe`, `dispatch_first_match_wins_skips_not_mine`, `hard_invalid_is_authoritative`, `verify_any_cert_routes_cn_to_cert_provider`, `verify_any_saml_routes_assertion_to_saml_provider`, `verify_any_webauthn_routes_assertion_to_webauthn_provider` |
| `crates/nornir-testmatrix/src/aspect.rs` | `parse_aspect_round_trips_every_label`, `fmt_counts_unique_files_not_hunks`, `clippy_parser_counts_warnings_from_summary`, `clippy_parser_clean_run_passes`, `clippy_parser_counts_lead_lines_without_summary`, `audit_parser_counts_vulnerabilities`, `audit_parser_singular_and_clean`, `coverage_parser_reads_total_line_pct`, `coverage_parser_no_total_is_fail`, `rust_version_parser_extracts_msrv`, `outcome_to_rows_synthetic_aspect_row_carries_metric`, `outcome_to_rows_unit_expands_cases`, `run_aspect_fmt_on_this_worktree_returns_a_row`, `run_full_matrix_one_run_id_across_aspects`, `funnel_demo_parser_all_pass_counts_both_binaries`, `funnel_demo_parser_one_failure_is_fail_with_count`, `funnel_demo_aspect_is_registered_and_parses`, `functional_aspect_is_registered_and_parses`, `functional_aspect_drains_emitted_red_status_into_red_matrix_row`, `functional_aspect_green_when_all_checks_ok`, `functional_aspect_is_skip_noop_in_release` |
| `crates/nornir-testmatrix/src/atom.rs` | `atom_surface_enumerates_one_uiatom_node_per_tab_atom_state`, `gate_red_when_atom_leaks_or_blank_green_when_all_atoms_correct`, `unobserved_atom_is_a_coverage_hole_not_silently_green`, `observation_and_spec_keys_join_and_round_trip_through_serde` |
| `crates/nornir-testmatrix/src/coverage.rs` | `covered_requires_both_ran_and_utfallsrum_threshold`, `rows_carry_utfallsrum_score_per_surface`, `workspace_dimension_distinguishes_same_tab_across_workspaces`, `seed_excuses_only_uncovered_with_reasons`, `reseed_preserves_existing_reasons`, `unreached_makes_gap_reachable_does_not_allowlisted_excused`, `stale_allowlist_entry_fails_the_gate`, `rows_and_summary_round_trip_through_serde`, `coverage_svg_is_self_contained_and_deterministic`, `coverage_svg_empty_is_placeholder` |
| `crates/nornir-testmatrix/src/discover.rs` | `ui_atoms_enumerate_and_cover_per_atom`, `benchers_enumerate_and_cover_per_hot_path`, `missing_bencher_is_gap_unless_allowlisted`, `bencher_kind_labels_and_layers`, `covered_facetts_marks_only_driven_registered_rows_matching_node_keys`, `a_red_pane_severity_error_is_not_covered_and_fails_the_gate`, `cross_check_flags_tabs_without_facets_and_facets_without_tabs`, `severity_is_error_is_lenient`, `facett_row_severity_defaults_to_info_on_deserialize`, `facett_intersects_registry_and_splits_thin_fat`, `viz_tabs_yield_thin_and_fat_each`, `cli_and_mcp_model_provided_lists`, `surface_kind_layer_groups_ui_grpc_cli_mcp_core`, `grpc_handlers_make_thin_nodes`, `unreached_fn_shows_in_gap_covered_one_does_not`, `reachability_handles_cycles`, `compute_gap_subtracts_covered_and_allowlist`, `empty_gap_is_green`, `end_to_end_full_surface_round_trips_through_serde` |
| `crates/nornir-testmatrix/src/functional.rs` | `functional_row_maps_ok_false_to_red_fail`, `functional_row_maps_ok_true_to_green_pass`, `emit_red_then_drain_yields_red_row_and_clears`, `emit_green_drains_as_green_row`, `release_path_is_a_noop_drain_is_empty` |
| `crates/nornir-testmatrix/src/gatedtests.rs` | `extracts_the_crate_level_cfg_past_doc_comments`, `a_gate_quoted_in_a_string_or_doc_comment_is_not_the_files_gate`, `an_indented_multi_line_gate_after_other_inner_attrs_is_still_found`, `bracket_matching_is_string_aware`, `cfg_attr_is_not_a_cfg_gate`, `all_any_not_and_nesting_parse_and_evaluate`, `the_camouflage_shape_two_on_one_off_is_definitively_false`, `non_feature_predicates_are_unknown_never_silenced`, `default_closure_is_transitive_and_skips_cross_crate_entries`, `default_on_gate_is_not_reported`, `default_off_gate_is_silenced_and_counts_its_hidden_tests`, `a_declared_arm_rescues_the_file_and_a_near_miss_arm_does_not`, `workspace_wide_and_transitive_arms_rescue`, `no_default_features_arm_can_lose_a_conjunct`, `every_test_attribute_shape_is_counted_and_lookalikes_are_not`, `ungated_files_are_not_findings`, `metadata_parses_features_and_test_targets`, `report_rows_are_red_for_silenced_and_carry_the_hidden_count`, `arms_round_trip_through_the_declaration_file_shape` |
| `crates/nornir-testmatrix/src/harness.rs` | `run_cargo_reports_the_real_exit_status_not_a_guess`, `cell_stamps_the_row_the_matrix_reads` |
| `crates/nornir-testmatrix/src/model.rs` | `summarize_counts_every_status_including_skip`, `skip_is_neither_red_nor_green`, `summarize_orders_newest_first`, `runs_to_json_newest_first_with_green_and_total`, `json_carries_aspect_and_metric`, `render_matrix_tags_red_case_with_aspect`, `rfc3339_is_correct_for_known_epoch`, `new_run_id_is_uuid_v4_shaped_and_unique`, `unit_constructor_defaults_aspect_and_metric`, `parse_nextest_list_extracts_exact_test_names`, `parse_nextest_list_handles_empty_and_garbage`, `parse_cargo_test_list_keeps_tests_drops_benches`, `listed_rows_builds_listed_status_rows_with_split_suite`, `listed_status_is_not_red_green_or_neutral`, `summarize_counts_listed_separately_not_as_failed`, `deserialize_legacy_row_without_aspect_defaults` |
| `crates/nornir-testmatrix/src/runner.rs` | `parse_cargo_test_default_grammar`, `heavy_is_opt_in_default_off`, `parse_nextest_libtest_json_events`, `matrix_run_counts_and_green`, `watchdog_pushes_red_stalled_case`, `test_features_reads_env_and_trims_blank_to_none`, `suite_from_path_strips_hash`, `list_tests_discovers_this_crates_own_tests`, `detect_runner_returns_a_known_variant` |
| `crates/nornir-testmatrix/src/sink.rs` | `null_sink_swallows_rows`, `json_file_sink_round_trips_two_runs` |
| `crates/nornir-testmatrix/src/uiplane.rs` | `reachable_planes_is_bfs_from_start`, `dangling_transition_references_undeclared_plane`, `bfs_route_reaches_every_reachable_plane_with_actions`, `walk_green_when_every_surface_present_and_ran`, `walk_red_when_surface_present_but_never_ran`, `walk_red_when_declared_surface_absent_on_reached_plane`, `walk_red_when_plane_is_orphan_unreachable`, `walk_red_when_transition_fails_to_land`, `walk_red_when_app_boots_on_wrong_start_plane`, `empty_plan_is_trivially_green`, `report_is_complete_one_row_per_declared_surface`, `walk_rows_convert_to_matrix_rows_with_uiplane_aspect`, `emit_drains_uiplane_rows_into_functional_buffer` |
| `crates/nornir-testmatrix/src/utfallsrum.rs` | `covered_is_exercised_over_declared_multi_value`, `single_value_scores_low_even_when_green`, `empty_outcome_space_scores_zero_not_one`, `declaration_is_idempotent_and_order_free`, `undeclared_hit_counts_but_is_flagged`, `to_rows_emits_per_class_plus_scored_rollup`, `summary_round_trips_through_serde_with_the_score`, `meets_threshold_enforces_min_classes`, `emit_drains_per_class_plus_rollup_into_functional_rows` |
| `crates/nornir-testmatrix/tests/fixtures/leaf_emitter/src/lib.rs` | `leaf_reports_a_red_functional_status` |
| `crates/nornir-workspace/src/descriptor.rs` | `path_only_member_has_no_fallback`, `git_only_member_resolves_to_git`, `member_with_both_path_and_git_carries_fallback`, `toml_parses_combined_path_and_git`, `member_with_neither_errors` |
| `crates/nornir-workspace/src/lib.rs` | `discovers_descriptor_walking_up_from_subdir`, `fat_descriptor_wins_and_a_dir_resolves_to_its_file`, `returns_none_when_no_descriptor` |
| `crates/nornir-workspace/src/resolve.rs` | `cache_dir_respects_explicit_env`, `plan_present_uses_path`, `plan_missing_with_fallback_materializes_with_branch`, `plan_missing_without_fallback_is_missing`, `git_present_uses_cache`, `git_missing_clones_online_but_offline_errors`, `resolve_git_offline_errors_with_hint`, `empty_dir_is_not_present`, `resolve_missing_path_no_fallback_errors`, `resolve_present_path_uses_checkout` |
| `crates/nornir-xtask-support/src/lib.rs` | `workspace_root_climbs_one_dir`, `target_dir_honours_override`, `copy_dir_round_trips_nested_tree`, `which_finds_and_misses` |
| `crates/nornir-xtask-support/src/selftest.rs` | `emits_honest_rows_for_xtask_primitives` |
| `crates/nornir-zone/src/lib.rs` | `default_zone_is_demo`, `zones_do_not_collide`, `keys_round_trip_and_aliases_resolve` |
**Integration tests** (108)
| file | tests |
|---|---|
| `crates/dwarves-runa/tests/pipeline.rs` | `parses_korp_ci_example_into_exact_structure`, `ron_round_trips`, `cyclic_pipeline_is_rejected_at_load`, `unknown_needs_is_rejected_at_load`, `triggers_default_to_empty_when_omitted`, `full_palette_parses_and_validates_every_new_step`, `full_palette_ron_round_trips`, `build_test_deploy_with_approval_gate_is_a_valid_dag` |
| `crates/korp-installer/tests/boot_logo.rs` | `with_no_override_the_blob_is_byte_identical_to_korps_committed_splash`, `an_override_replaces_the_mark_and_carries_its_own_fitted_dimensions`, `a_blank_override_variable_falls_back_to_korps_default`, `an_oversized_logo_is_fitted_not_stretched`, `an_undersized_logo_is_never_upscaled`, `fit_dimensions_agrees_with_the_bytes_the_pipeline_actually_emits`, `a_broken_override_yields_an_empty_blob_and_a_warning_never_a_build_failure`, `even_a_missing_default_asset_does_not_fail_the_build`, `a_transparent_logo_is_composited_over_black_and_warns_by_name`, `a_trace_of_transparency_does_not_warn`, `rerun_directives_track_the_override_path_and_the_variable`, `the_efistub_build_script_bakes_korp_by_default_and_the_customers_mark_when_told` |
| `crates/korp-installer/tests/first_stage_boot.rs` | `the_production_first_stage_compiles_to_a_uefi_pe`, `the_first_stage_protocol_markers_are_the_ones_the_loader_prints`, `the_installed_disk_boots_and_the_first_stage_chainloads_the_kernel` |
| `crates/korp-installer/tests/kvm_install.rs` | `installer_iso_installs_to_a_blank_disk_under_kvm` |
| `crates/korp-installer/tests/raid_amd_nvme_boot.rs` | `raid1_mirror_boots_the_installed_disk_into_korp_under_amd_epyc` |
| `crates/korp-installer/tests/root_of_trust_selftest.rs` | `a_signed_install_completes_and_reports_its_verdict`, `a_byte_that_does_not_land_on_the_disk_fails_the_install_and_refuses_to_complete`, `an_unsigned_payload_is_refused_and_the_verdict_names_the_signature_leg`, `a_signature_from_the_wrong_key_is_refused`, `an_unenrolled_appliance_installs_but_never_claims_a_signature`, `the_install_enrols_the_trust_record_on_the_esp_not_in_the_archive`, `a_flipped_signature_is_refused_at_startup_before_extraction`, `a_tampered_archive_is_refused_at_startup_and_the_verdict_names_the_root_leg`, `the_happy_startup_path_reports_all_three_legs_green`, `a_corrupt_chunk_fails_the_per_chunk_leg_and_yields_no_image` |
| `crates/korp-installer/tests/secure_boot.rs` | `the_real_first_stage_signs_and_keeps_its_authenticode_digest`, `a_real_factory_varstore_takes_the_customer_key`, `secure_boot_runs_the_signed_chain_and_refuses_the_unsigned_one` |
| `crates/korp-installer/tests/znippy_roundtrip.rs` | `packs_verifies_and_executes_korp_from_a_znippy_from_ram`, `a_flipped_byte_in_the_app_znippy_is_refused`, `znippy_round_trip_returns_the_exact_bytes` |
| `crates/nornir-build-thing/tests/iso_boot.rs` | `pure_rust_iso_boots_under_qemu_ovmf_to_boot_ok` |
| `crates/nornir-claude/tests/transport.rs` | `boxed_offline_transport_drives_a_conversation`, `session_key_is_not_serialized_into_the_request_body`, `live_http_transport_answers` |
| `crates/nornir-fleet/tests/fleet_harness.rs` | `fleet_ron_parses_and_validates_the_five_members`, `fleet_all_five_green_when_every_member_is_driven`, `current_reality_reds_gate_dwarves_driven_four_probe_only`, `fleet_gate_reds_when_a_scenario_is_dropped`, `spin_failure_propagates_to_a_red_gate`, `egui_leg_drives_remote_over_the_wire`, `wire_driven_egui_tab_still_contributes_its_coverage_node`, `scenario_source_drives_recorded_steps_and_a_bad_step_reds_the_node`, `unix_egui_wire_opens_a_live_socket_to_a_cmdjson_server`, `mount_router_drives_mounted_probes_unmounted` |
| `crates/nornir-fleet/tests/local_process_spinner.rs` | `spinner_launches_pings_drives_one_step_and_tears_down`, `spinner_reports_not_ready_when_the_child_never_binds`, `spinner_errors_on_a_bogus_program` |
| `crates/nornir-flight/tests/roundtrip.rs` | `put_then_get_roundtrip_byte_identical`, `exchange_roundtrip_byte_identical`, `empty_token_is_open`, `auth_correct_token_accepted`, `auth_missing_token_rejected`, `auth_wrong_token_rejected`, `unknown_ticket_is_not_found` |
| `crates/nornir-flight/tests/tls_roundtrip.rs` | `tls_put_then_get_roundtrip_byte_identical`, `tls_exchange_roundtrip_byte_identical`, `tls_with_bearer_auth_roundtrip`, `tls_missing_token_rejected` |
| `crates/nornir-robotui/tests/watch_duality.rs` | `demo_scenario_fills_the_matrix_headless`, `run_mode_default_is_headless`, `demo_scenario_toml_round_trips_and_can_emit_the_canonical_file` |
| `crates/nornir-saga/tests/noop_when_off.rs` | `tap_is_a_noop_and_drain_is_always_empty` |
| `crates/nornir-saga/tests/wire_against.rs` | `capture_persist_source_replay_roundtrip`, `replay_matches_every_captured_state_snapshot`, `live_channel_stream_folds_to_the_same_model`, `sink_choice_does_not_change_the_captured_stream`, `synthetic_app_direct_use` |
| `crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/dark_gate.rs` | `hidden_one`, `hidden_two`, `hidden_three` |
| `crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/dark_gate.rs` | `hidden_one`, `hidden_two`, `hidden_three` |
| `crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/lit_gate.rs` | `visible_one` |
| `crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/lit_gate.rs` | `visible_one` |
| `crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/plain.rs` | `plain_one` |
| `crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/plain.rs` | `plain_one` |
| `crates/nornir-testmatrix/tests/fixtures/gated_default_on/tests/platform_gate.rs` | `visible_two` |
| `crates/nornir-testmatrix/tests/fixtures/gated_default_on/tests/platform_gate.rs` | `visible_two` |
| `crates/nornir-testmatrix/tests/fixtures/gated_default_on/tests/transitive_gate.rs` | `visible_one` |
| `crates/nornir-testmatrix/tests/fixtures/gated_default_on/tests/transitive_gate.rs` | `visible_one` |
| `crates/nornir-testmatrix/tests/fixtures/gated_rescued/tests/rescued_gate.rs` | `rescued_one`, `rescued_two` |
| `crates/nornir-testmatrix/tests/fixtures/gated_rescued/tests/rescued_gate.rs` | `rescued_one`, `rescued_two` |
| `crates/nornir-testmatrix/tests/fixtures/gated_rescued/tests/transitively_rescued_gate.rs` | `transitively_rescued_one` |
| `crates/nornir-testmatrix/tests/fixtures/gated_rescued/tests/transitively_rescued_gate.rs` | `transitively_rescued_one` |
| `crates/nornir-testmatrix/tests/fixtures/leaf_emitter/src/lib.rs` | `leaf_reports_a_red_functional_status` |
| `crates/nornir-testmatrix/tests/functional_subprocess.rs` | `leaf_functional_status_lands_as_red_matrix_row_through_the_subprocess` |
| `crates/nornir-testmatrix/tests/gated_tests_guard.rs` | `a_default_off_gated_test_file_is_reported_red_with_its_hidden_count`, `a_default_on_gate_is_never_reported`, `a_gate_rescued_by_a_declared_arm_is_not_reported`, `the_declaration_file_is_optional_and_a_missing_one_is_not_an_error` |
**Doc tests** (44)
| file | doc-tests |
|---|--:|
| `crates/app-heartbeat/src/lib.rs` | 1 |
| `crates/dwarves-runa/src/lib.rs` | 1 |
| `crates/korp-installer/src/raid.rs` | 1 |
| `crates/nornir-auth-apikey/src/lib.rs` | 1 |
| `crates/nornir-auth-mtls/src/lib.rs` | 1 |
| `crates/nornir-auth-oauth2/src/lib.rs` | 1 |
| `crates/nornir-build-thing/src/container.rs` | 2 |
| `crates/nornir-build-thing/src/image_build.rs` | 1 |
| `crates/nornir-build-thing/src/installer.rs` | 1 |
| `crates/nornir-build-thing/src/iso.rs` | 2 |
| `crates/nornir-build-thing/src/lib.rs` | 1 |
| `crates/nornir-build-thing/src/progress.rs` | 1 |
| `crates/nornir-build-thing/src/variant.rs` | 1 |
| `crates/nornir-build-thing/src/vm.rs` | 2 |
| `crates/nornir-escape/src/lib.rs` | 3 |
| `crates/nornir-hash/src/lib.rs` | 2 |
| `crates/nornir-humanize/src/lib.rs` | 11 |
| `crates/nornir-release-core/src/skew_warehouse.rs` | 1 |
| `crates/nornir-release/src/waves.rs` | 1 |
| `crates/nornir-robotui/src/lib.rs` | 2 |
| `crates/nornir-robotui/src/mode.rs` | 1 |
| `crates/nornir-saga/src/recorder.rs` | 1 |
| `crates/nornir-saga/src/ui/emit.rs` | 1 |
| `crates/nornir-testmatrix/src/gatedtests.rs` | 2 |
| `crates/nornir-testmatrix/src/lib.rs` | 1 |
| `crates/nornir-workspace/src/descriptor.rs` | 1 |
<!-- nornir:gen:end:tests -->
## Dependency graph
<!-- nornir:gen:start:depgraph -->

<!-- nornir:gen:end:depgraph -->
## License
MIT OR Apache-2.0.