Gunnar

nordisk/edda

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.

The crates

cratewhat it is
autonomthe 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
jerathe 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-testmatrixthe 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-robotuia 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-sagacapture 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-benchthe project-agnostic bench harness: a uniform run/result envelope + append-only JSONL history; repo metrics live in a free-form JSON object
nornir-coveragesource-based line/region coverage (cargo-llvm-cov), the JaCoCo-style report that answers "what fraction of source lines did the run execute?"
nornir-gitpure-Rust git helpers over gix (gitoxide) — inspection + history rewriting with no git shell-out and no libgit2/C
nornir-cli-outcomethe uniform CLI command result {command, ok, data, human} — the CLI twin of a Facet's state_json
nornir-hashthe 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-supportthe 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-pagesthe 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-humanizethe 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-escapethe shared markup-escaping primitive (publish=false, std-only, zero runtime deps) — xml(&str) -> Cow<str> escapes the four XML/SVG entities (&→&amp;, <→&lt;, >→&gt;, "→&quot;), 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 '→&apos; — 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-appshellthe 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.

crateauth method
nornir-auth-oidcOIDC / 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-bearerstatic 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-sshsigper-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-oauth2OAuth 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-apikeyhashed 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-mtlsmTLS — 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-samlSAML 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-webauthnWebAuthn / 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-clientthe 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.

v0.1.4 · oden · 32 cores · 2026-07-22

workloadbatchesfns_per_secfolds_per_secfunctionsgapget_mib_per_secget_rows_per_secmibmovementsput_mib_per_secput_rows_per_secrepsrowstelem_cores_busy_avgtelem_cores_busy_maxtelem_cpu_pct_avgtelem_cpu_pct_maxtelem_elapsed_mstelem_mem_pct_maxtelem_mem_peak_mbtelem_n_cores
autonom.function_scan151268600200302210.2110.21119.054.809.5532
nornir-flight.put_get_throughput20145267.31M21.57762.5835.36M1.00M226.726.72176.954.8089.9232
saga-replay-fold149557220050226.456.45735.544.8089.9232

Tests

Unit tests (1113)

filetests
crates/app-heartbeat/src/lib.rsthe_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.rsabsent_file_is_empty_allowlist, path_is_under_dot_nornir, save_then_load_round_trips
crates/autonom/src/bench.rsscan_fold_bencher_runs_and_reports_throughput, generated_source_parses_and_has_a_gap
crates/autonom/src/feeder.rsscans_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.rsreport_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.rsclean_blob_has_no_hit, case_insensitive_match_with_context, multibyte_haystack_does_not_panic
crates/eid-app/src/lib.rssigns_and_verifies
crates/eid-core/src/lib.rschallenge_distinguishes_auth_from_sign, assertion_debug_redacts_bytes
crates/eid-core/src/verify.rsed25519_round_trip_and_tamper, ed25519_weak_key_forgery_is_rejected, ecdsa_p256_round_trip
crates/jera/src/agent.rsscheduler_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.rsstale_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.rsgrpc_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.rsmode_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.rscontainer_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.rsstart_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.rsreport_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.rspolicy_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.rsstub_vm_runner_reports_honest_not_wired, bootspec_kernel_rootfs_defaults, maps_onto_a_draupnir_kvm_spec
crates/korp-installer/src/banner.rsbanner_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.rshd_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.rsdetects_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.rsformats_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.rsthe_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.rswrites_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.rsnvidia_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.rspicks_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.rsfull_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.rsblake3_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.rssuperblock_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.rsstreams_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.rstwo_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.rsthe_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.rsa_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.rsevery_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.rsdefault_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.rsidentity_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.rsmatching_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.rsmatching_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.rsbundle_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.rscn_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.rsactive_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.rsvalid_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.rsan_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.rsensure_returns_existing_without_download, ensure_creates_missing_cache_dir, default_cache_dir_env_override_then_home_fallback
crates/nornir-bench/src/diff.rsthroughput_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.rslegacy_line_parses_without_timestamp_or_tests, new_line_roundtrips_with_tests, append_writes_committable_jsonl_receipt
crates/nornir-bench/src/legacy.rsmbs_basic, missing_tool_is_none, comparison_pairs_metrics_and_speedup, comparison_without_legacy_is_ours_only
crates/nornir-bench/src/lib.rsstatic_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.rsmode_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.rsemits_honest_rows_for_bench_surfaces
crates/nornir-bench/src/telemetry.rsproc_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.rsdefault_analyzer_is_noop
crates/nornir-build-thing/src/assemble.rseach_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.rsmanifest_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.rsa_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.rscontainerfile_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.rsthree_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.rsan_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.rsreal_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.rsbuild_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.rsmasters_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.rsmaster_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.rsmasters_iso9660_structures_and_reads_payload_back, mastering_is_deterministic, unstaged_boot_image_errors
crates/nornir-build-thing/src/linkage.rsan_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.rsservice_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.rsthe_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.rsa_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.rsa_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.rsattestation_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.rsemits_honest_rows_for_build_surfaces
crates/nornir-build-thing/src/service.rsfat_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.rsnull_sink_is_a_noop, json_file_sink_appends_a_line_per_record
crates/nornir-build-thing/src/spec.rsan_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.rssurface_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.rsa_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.rsqemu_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.rscredential_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.rsemits_honest_rows_for_claude_surfaces
crates/nornir-cli-outcome/src/cli_outcome.rsok_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.rsemits_honest_rows_for_command_outcome_surfaces
crates/nornir-config/src/lib.rshome_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.rsdelta_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.rsclassify_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.rsemits_honest_rows_for_coverage_diff_surfaces
crates/nornir-depgraph/src/funcgraph.rsstable_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.rstransitive_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.rsparallel_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.rsemits_honest_rows_for_snapshot_persistence_surfaces
crates/nornir-escape/src/lib.rseach_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.rsemits_honest_rows_for_escape_surfaces
crates/nornir-flight/src/bench.rsthroughput_bencher_reports_positive_put_get
crates/nornir-git/src/deploykey.rsthe_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.rsscan_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.rshttps_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.rsresolve_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.rsemits_honest_rows_for_git_ops
crates/nornir-git/src/ssh.rsparse_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.rsmints_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.rsknown_sha256_vectors, streaming_matches_oneshot, hex_round_trip, hex_decode_rejects_bad_input, sha256_file_matches_in_memory
crates/nornir-hash/src/selftest.rsemits_honest_rows_for_hash_surfaces
crates/nornir-humanize/src/lib.rsbytes_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.rsemits_honest_rows_for_humanize_surfaces
crates/nornir-knowledge-view/src/lib.rsfunction_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.rsindex_html_is_byte_faithful_golden, cache_bust_and_knobs_interpolate, display_name_is_title_first_word
crates/nornir-pages/src/selftest.rsemits_honest_rows_for_index_render
crates/nornir-release-core/src/api_skew.rsskade_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.rsassembles_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.rsscc_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.rsrepo_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.rsclean_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.rsno_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.rstarjan_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.rscallers_of_matches_last_segment_and_bare, call_path_bfs_over_call_edges
crates/nornir-release-core/src/model.rsprecise_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.rsextracts_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.rsownership_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.rsranks_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.rsagreeing_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.rsskade_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.rsinterval_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.rsappend_and_query_round_trips_each_kind, change_sha_is_deterministic_and_kind_separated
crates/nornir-release-ledger/src/release_events.rsemitter_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.rsrelease_table_field_ids_are_stable_and_dense, codec_column_indices_match_schema_order
crates/nornir-release/src/selftest.rsemits_honest_rows_for_wave_surfaces
crates/nornir-release/src/source_drift.rssmart_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.rsdep_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.rsdriver_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.rsclick_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.rsrun_mode_default_is_headless, targets_records_and_resolves_rects, watch_config_default_is_paced
crates/nornir-robotui/src/replay.rsplan_becomes_a_scenario_one_step_each, label_map_remaps_targets, step_label_falls_back_through_action_then_route
crates/nornir-robotui/src/scenario.rsbuilder_composes_a_scenario, steps_bulk_append, r6_verbs_compose_as_plain_data
crates/nornir-robotui/src/snapshot.rswebp_lossless_round_trip_is_pixel_exact, diff_counts_changed_pixels, assert_warehouse_created_match_mismatch, update_mode_overwrites_reference
crates/nornir-robotui/src/watch.rsease_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.rsthree_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.rsreplay_fold_bencher_runs_and_reports_throughput
crates/nornir-saga/src/event.rskind_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.rsrecord_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.rsrecords_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.rsonly_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.rsnull_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.rsfile_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.rstap_projects_and_filters_then_drains_a_saga
crates/nornir-saga/src/ui/driver.rsdrive_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.rsemitter_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.rsuimsg_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.rslocator_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.rssame_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.rsrecorded_source_yields_in_order_then_none, channel_source_streams_then_closes
crates/nornir-saga/src/ui/synthetic.rsdemo_saga_is_deterministic_and_well_formed
crates/nornir-saga/src/ui/viewer.rsfold_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.rsindex_serves_a_self_contained_page, saga_json_endpoint_serves_the_saga, events_endpoint_streams_snapshots_to_completion
crates/nornir-service/src/client.rspresent_token_builds_header_absent_token_is_none, unencodable_token_is_err
crates/nornir-service/src/lib.rsconstant_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.rsparse_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.rsatom_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.rscovered_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.rsui_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.rsfunctional_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.rsextracts_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.rsrun_cargo_reports_the_real_exit_status_not_a_guess, cell_stamps_the_row_the_matrix_reads
crates/nornir-testmatrix/src/model.rssummarize_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.rsparse_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.rsnull_sink_swallows_rows, json_file_sink_round_trips_two_runs
crates/nornir-testmatrix/src/uiplane.rsreachable_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.rscovered_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.rsleaf_reports_a_red_functional_status
crates/nornir-workspace/src/descriptor.rspath_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.rsdiscovers_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.rscache_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.rsworkspace_root_climbs_one_dir, target_dir_honours_override, copy_dir_round_trips_nested_tree, which_finds_and_misses
crates/nornir-xtask-support/src/selftest.rsemits_honest_rows_for_xtask_primitives
crates/nornir-zone/src/lib.rsdefault_zone_is_demo, zones_do_not_collide, keys_round_trip_and_aliases_resolve

Integration tests (108)

filetests
crates/dwarves-runa/tests/pipeline.rsparses_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.rswith_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.rsthe_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.rsinstaller_iso_installs_to_a_blank_disk_under_kvm
crates/korp-installer/tests/raid_amd_nvme_boot.rsraid1_mirror_boots_the_installed_disk_into_korp_under_amd_epyc
crates/korp-installer/tests/root_of_trust_selftest.rsa_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.rsthe_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.rspacks_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.rspure_rust_iso_boots_under_qemu_ovmf_to_boot_ok
crates/nornir-claude/tests/transport.rsboxed_offline_transport_drives_a_conversation, session_key_is_not_serialized_into_the_request_body, live_http_transport_answers
crates/nornir-fleet/tests/fleet_harness.rsfleet_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.rsspinner_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.rsput_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.rstls_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.rsdemo_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.rstap_is_a_noop_and_drain_is_always_empty
crates/nornir-saga/tests/wire_against.rscapture_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.rshidden_one, hidden_two, hidden_three
crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/dark_gate.rshidden_one, hidden_two, hidden_three
crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/lit_gate.rsvisible_one
crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/lit_gate.rsvisible_one
crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/plain.rsplain_one
crates/nornir-testmatrix/tests/fixtures/gated_dark/tests/plain.rsplain_one
crates/nornir-testmatrix/tests/fixtures/gated_default_on/tests/platform_gate.rsvisible_two
crates/nornir-testmatrix/tests/fixtures/gated_default_on/tests/platform_gate.rsvisible_two
crates/nornir-testmatrix/tests/fixtures/gated_default_on/tests/transitive_gate.rsvisible_one
crates/nornir-testmatrix/tests/fixtures/gated_default_on/tests/transitive_gate.rsvisible_one
crates/nornir-testmatrix/tests/fixtures/gated_rescued/tests/rescued_gate.rsrescued_one, rescued_two
crates/nornir-testmatrix/tests/fixtures/gated_rescued/tests/rescued_gate.rsrescued_one, rescued_two
crates/nornir-testmatrix/tests/fixtures/gated_rescued/tests/transitively_rescued_gate.rstransitively_rescued_one
crates/nornir-testmatrix/tests/fixtures/gated_rescued/tests/transitively_rescued_gate.rstransitively_rescued_one
crates/nornir-testmatrix/tests/fixtures/leaf_emitter/src/lib.rsleaf_reports_a_red_functional_status
crates/nornir-testmatrix/tests/functional_subprocess.rsleaf_functional_status_lands_as_red_matrix_row_through_the_subprocess
crates/nornir-testmatrix/tests/gated_tests_guard.rsa_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)

filedoc-tests
crates/app-heartbeat/src/lib.rs1
crates/dwarves-runa/src/lib.rs1
crates/korp-installer/src/raid.rs1
crates/nornir-auth-apikey/src/lib.rs1
crates/nornir-auth-mtls/src/lib.rs1
crates/nornir-auth-oauth2/src/lib.rs1
crates/nornir-build-thing/src/container.rs2
crates/nornir-build-thing/src/image_build.rs1
crates/nornir-build-thing/src/installer.rs1
crates/nornir-build-thing/src/iso.rs2
crates/nornir-build-thing/src/lib.rs1
crates/nornir-build-thing/src/progress.rs1
crates/nornir-build-thing/src/variant.rs1
crates/nornir-build-thing/src/vm.rs2
crates/nornir-escape/src/lib.rs3
crates/nornir-hash/src/lib.rs2
crates/nornir-humanize/src/lib.rs11
crates/nornir-release-core/src/skew_warehouse.rs1
crates/nornir-release/src/waves.rs1
crates/nornir-robotui/src/lib.rs2
crates/nornir-robotui/src/mode.rs1
crates/nornir-saga/src/recorder.rs1
crates/nornir-saga/src/ui/emit.rs1
crates/nornir-testmatrix/src/gatedtests.rs2
crates/nornir-testmatrix/src/lib.rs1
crates/nornir-workspace/src/descriptor.rs1

Dependency graph

workspace dependency graph

License

MIT OR Apache-2.0.

Files

.cargo/
.nornir/
bench/
crates/
docs/
nornir-build-thing-skew/
vendor/
xtask/
.gitattributes
.gitignore
Cargo.lock
Cargo.toml
README.md
bench_history.jsonl
brokkr.toml
rustfmt.toml

The list is cut short here. Clone the repository for every file.

Newest commits

a285af470d02kernel: a built kernel is also filed under its step pin (.kernel-out/<name>/pins/<ledger key>/), so two merges of one donor kernel coexist2026-10-29
b6bf7d83bf57split_opts: a path under an edge the consumer's tree does not draw is the donor's (kernel.toolchain=off)2026-10-29
d865b9fcf3canornir-build-thing provenance: every source tree, the door's builder id, a versioned buildType2026-10-29
6fbf12065596k8s-hardened.config: the node rows now pass; drop the stale refusal note2026-10-29
b44a168abedbk8s-hardened.config: the kconfig-stage measurement2026-10-29