Using versionCheckHook Running phase: unpackPhase unpacking source archive /nix/store/sh9ka73ha6n0k69xj843avac4683h6ad-source source root is source Executing cargoSetupPostUnpackHook Finished cargoSetupPostUnpackHook Running phase: patchPhase Executing cargoSetupPostPatchHook Validating consistency between /nix/var/nix/builds/nix-12670-2432953799/source/Cargo.lock and /nix/var/nix/builds/nix-12670-2432953799/clauth-0.17.0-vendor/Cargo.lock Finished cargoSetupPostPatchHook Running phase: updateAutotoolsGnuConfigScriptsPhase Running phase: configurePhase Running phase: buildPhase Executing cargoBuildHook cargoBuildHook flags: -j 10 --target aarch64-apple-darwin --offline --profile release Compiling proc-macro2 v1.0.107 Compiling quote v1.0.47 Compiling unicode-ident v1.0.24 Compiling libc v0.2.189 Compiling cfg-if v1.0.4 Compiling bitflags v2.13.2 Compiling serde_core v1.0.229 Compiling zmij v1.0.23 Compiling allocator-api2 v0.2.21 Compiling foldhash v0.2.0 Compiling equivalent v1.0.2 Compiling thiserror v2.0.20 Compiling itoa v1.0.18 Compiling rustix v1.1.4 Compiling typenum v1.20.1 Compiling memchr v2.8.3 Compiling log v0.4.34 Compiling hashbrown v0.17.1 Compiling ident_case v1.0.1 Compiling serde_json v1.0.151 Compiling strsim v0.11.1 Compiling syn v3.0.5 Compiling syn v2.0.119 Compiling heck v0.5.0 Compiling serde v1.0.229 Compiling rustversion v1.0.23 Compiling indexmap v2.14.2 Compiling shlex v2.0.1 Compiling find-msvc-tools v0.1.12 Compiling cc v1.4.6 Compiling once_cell v1.21.4 Compiling version_check v0.9.5 Compiling errno v0.3.14 Compiling pin-project-lite v0.2.17 Compiling generic-array v0.14.7 Compiling signal-hook-registry v1.4.8 Compiling hybrid-array v0.4.15 Compiling futures-sink v0.3.34 Compiling bytes v1.12.1 Compiling objc2 v0.6.4 Compiling alloc-no-stdlib v3.0.0 Compiling getrandom v0.4.3 Compiling either v1.18.0 Compiling parking_lot_core v0.9.12 Compiling unicode-segmentation v1.13.3 Compiling signal-hook v0.3.18 Compiling futures-core v0.3.34 Compiling autocfg v1.5.1 Compiling ring v0.17.14 Compiling convert_case v0.10.0 Compiling num-traits v0.2.19 Compiling itertools v0.14.0 Compiling block-buffer v0.12.1 Compiling crypto-common v0.2.2 Compiling alloc-stdlib v0.3.0 Compiling castaway v0.2.4 Compiling darling_core v0.24.1 Compiling hashbrown v0.16.1 Compiling static_assertions v1.1.0 Compiling zeroize v1.9.0 Compiling objc2-encode v4.1.0 Compiling instability v0.3.13 Compiling option-ext v0.2.0 Compiling unicode-width v0.2.2 Compiling ryu v1.0.23 Compiling const-oid v0.10.2 Compiling scopeguard v1.2.0 Compiling smallvec v1.16.1 Compiling digest v0.11.3 Compiling lock_api v0.4.14 Compiling thiserror-impl v2.0.20 Compiling serde_derive v1.0.229 Compiling futures-macro v0.3.34 Compiling agentgear-derive v0.1.4 Compiling strum_macros v0.28.0 Compiling derive_more-impl v2.1.1 Compiling compact_str v0.9.1 Compiling unicode-truncate v2.0.1 Compiling dirs-sys v0.5.0 Compiling rustls-pki-types v1.15.1 Compiling kasuari v0.4.12 Compiling brotli-decompressor v6.0.0 Compiling strum v0.28.0 Compiling filetime v0.2.29 Compiling futures-channel v0.3.34 Compiling mio v1.2.3 Compiling getrandom v0.2.17 Compiling lru v0.18.4 Compiling cpufeatures v0.3.1 Compiling httparse v1.10.1 Compiling untrusted v0.9.0 Compiling ref-cast v1.0.27 Compiling futures-io v0.3.34 Compiling slab v0.4.12 Compiling critical-section v1.2.0 Compiling cfg_aliases v0.2.2 Compiling darling_macro v0.24.1 Compiling crc32fast v1.5.2 Compiling indoc v2.0.7 Compiling futures-task v0.3.34 Compiling utf8parse v0.2.2 Compiling core-foundation-sys v0.8.7 Compiling litrs v1.0.0 Compiling darling v0.24.1 Compiling iana-time-zone v0.1.65 Compiling signal-hook-mio v0.2.5 Compiling futures-util v0.3.34 Compiling anstyle-parse v1.0.0 Compiling nix v0.31.3 Compiling ratatui-core v0.1.2 Compiling document-features v0.2.12 Compiling sha2 v0.11.0 Compiling tar v0.4.46 Compiling brotli v9.0.0 Compiling fs4 v1.1.0 Compiling derive_more v2.1.1 Compiling dirs v7.0.0 Compiling parking_lot v0.12.5 Compiling tokio-macros v2.7.2 Compiling ref-cast-impl v1.0.27 Compiling serde_derive_internals v0.30.0 Compiling which v8.0.6 Compiling winnow v1.0.4 Compiling fastrand v2.5.0 Compiling rustls v0.23.45 Compiling base64 v0.23.1 Compiling anstyle-query v1.1.5 Compiling anstyle v1.0.14 Compiling adler2 v2.0.1 Compiling is_terminal_polyfill v1.70.2 Compiling colorchoice v1.0.5 Compiling simd-adler32 v0.3.10 Compiling crossbeam-utils v0.8.23 Compiling schemars_derive v1.2.2 Compiling miniz_oxide v0.9.1 Compiling anstream v1.0.0 Compiling tokio v1.53.1 Compiling crossterm v0.29.0 Compiling toml_parser v1.1.3+spec-1.1.0 Compiling agentgear v0.1.4 Compiling chrono v0.4.45 Compiling futures-executor v0.3.34 Compiling rustls-webpki v0.103.15 Compiling block2 v0.6.2 Compiling objc2-core-foundation v0.3.2 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling tracing-attributes v0.1.31 Compiling toml_datetime v1.1.1+spec-1.1.0 Compiling terminal_size v0.4.4 Compiling http v1.5.0 Compiling tracing-core v0.1.36 Compiling aho-corasick v1.1.5 Compiling line-clipping v0.3.8 Compiling toml_writer v1.1.2+spec-1.1.0 Compiling dyn-clone v1.0.20 Compiling regex-syntax v0.8.11 Compiling rmcp v3.4.0 Compiling same-file v1.0.6 Compiling signal-hook v0.4.4 Compiling subtle v2.6.1 Compiling anyhow v1.0.104 Compiling clap_lex v1.1.1 Compiling clap_builder v4.6.7 Compiling walkdir v2.5.0 Compiling ureq-proto v0.6.3 Compiling schemars v1.2.2 Compiling tokio-util v0.7.19 Compiling tracing v0.1.44 Compiling clauth v0.17.0 (/nix/var/nix/builds/nix-12670-2432953799/source) Compiling ratatui-widgets v0.3.2 Compiling regex-automata v0.4.18 Compiling ratatui-crossterm v0.1.2 Compiling objc2-foundation v0.3.2 Compiling digest v0.10.7 Compiling flate2 v1.1.10 Compiling futures v0.3.34 Compiling tempfile v3.27.0 Compiling rmcp-macros v3.4.0 Compiling uuid v1.26.1 Compiling webpki-roots v1.0.9 Compiling utoipa-gen v5.5.0 Compiling clap_derive v4.6.7 Compiling serde_spanned v1.1.1 Compiling rtoolbox v0.0.6 Compiling fsevent-sys v4.1.0 Compiling cpufeatures v0.2.17 Compiling notify-types v2.1.0 Compiling percent-encoding v2.3.2 Compiling utf8-zero v0.8.1 Compiling pastey v0.2.3 Compiling ureq v3.4.2 Compiling notify v8.2.0 Compiling clap v4.6.7 Compiling sha1 v0.10.7 Compiling rpassword v7.5.4 Compiling toml v1.1.6+spec-1.1.0 Compiling regex v1.13.1 Compiling crossbeam-channel v0.5.17 Compiling self-replace v1.5.0 Compiling ratatui v0.30.2 Compiling toml_edit v0.25.15+spec-1.1.0 Compiling hex v0.4.3 Compiling minisign-verify v0.2.5 Compiling utoipa v5.5.0 Compiling os_info v3.15.0 warning: constant `NO_UPDATE_ENV` is never used --> src/update.rs:14:7 | 14 | const NO_UPDATE_ENV: &str = "CLAUTH_NO_UPDATE"; | ^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: `clauth` (bin "clauth") generated 1 warning Finished `release` profile [optimized] target(s) in 2m 47s Executing cargoInstallPostBuildHook Finished cargoInstallPostBuildHook Finished cargoBuildHook buildPhase completed in 2 minutes 47 seconds Running phase: checkPhase Executing cargoCheckHook cargoCheckHook flags: -j 10 --profile release --target aarch64-apple-darwin --offline -- --skip=update::tests::updates_enabled_when_env_is_other_value --skip=update::tests::updates_enabled_when_env_is_zero --skip=update::tests::updates_enabled_when_env_unset --skip=herdr::tests::heal_detached_reinstalls_once_and_throttles --skip=herdr::tests::heal_detached_fails_closed_without_the_shim_sentinel --skip=herdr::tests::heal_detached_respects_the_update_optout --skip=daemon::api::terminal::tests::strip_session_env_removes_every_session_var --skip=daemon::api::terminal::tests::control_input_reaches_herdr_and_is_audited_without_its_bytes --skip=daemon::api::terminal::tests::frames_pipelined_behind_the_handshake_arrive --skip=codex_auth::tests::a_terminal_verdict_leaves_a_quarantine_record_and_a_rotation_clears_it --skip=codex_auth::tests::an_unwritable_memo_sends_nothing_and_keeps_the_kick --skip=usage::scheduler::tests::oauth_and_provider_completions_clear_only_their_own_activity Compiling tokio v1.53.1 Compiling tokio-util v0.7.19 Compiling rmcp v3.4.0 Compiling clauth v0.17.0 (/nix/var/nix/builds/nix-12670-2432953799/source) warning: constant `NO_UPDATE_ENV` is never used --> src/update.rs:14:7 | 14 | const NO_UPDATE_ENV: &str = "CLAUTH_NO_UPDATE"; | ^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: `clauth` (bin "clauth") generated 1 warning warning: `clauth` (bin "clauth" test) generated 1 warning (1 duplicate) Finished `release` profile [optimized] target(s) in 5m 10s Running unittests src/main.rs (target/aarch64-apple-darwin/release/deps/clauth-c864db5411b12620) running 4877 tests test actions::tests::a_case_only_rename_is_not_a_collision_with_itself ... ok test actions::tests::a_cache_write_does_not_resurrect_a_deleted_profiles_directory ... ok test actions::tests::a_daemonless_publish_skips_when_a_later_switch_never_published ... ok test actions::tests::a_credentials_less_recapture_still_drops_the_stored_chain ... ok test actions::tests::a_console_login_stores_the_session_and_leaves_the_api_key_alone ... ok test actions::tests::a_delete_does_not_release_the_lock_it_is_holding ... ok test actions::tests::a_delayed_daemonless_publish_keeps_the_current_active_profile ... ok test actions::tests::a_failed_codex_dir_removal_keeps_the_record ... ok clauth: captured the operator codex login into codex profile 'cx' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpkNBRIQ/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account test actions::tests::a_failed_codex_dir_removal_names_the_slot_it_detached ... ok test actions::tests::a_foreign_operator_link_is_never_moved_by_a_switch ... ok test actions::tests::a_fresh_capture_after_a_switch_off_strips_the_departed_accounts_env ... ok test actions::tests::a_half_filled_snapshot_never_pairs_a_stored_key_with_a_new_endpoint ... ok test actions::tests::a_late_commit_does_not_replace_a_newer_same_active_publication ... ok test actions::tests::a_link_that_cannot_follow_fails_the_switch_whole ... ok test actions::tests::a_name_the_other_harness_holds_is_refused_naming_the_holder ... ok test actions::tests::a_no_op_switch_does_not_republish_the_feed ... ok test actions::tests::a_noop_codex_switch_leaves_the_file_untouched ... ok test actions::tests::a_snapshot_with_no_proven_identity_leaves_the_anchor_alone ... ok test actions::tests::a_switch_after_a_switch_off_does_not_inherit_the_departed_accounts_env ... ok test actions::tests::a_switch_moves_the_operator_link_clauth_installed ... ok test actions::tests::a_tui_create_account_after_a_switch_off_strips_the_departed_accounts_env ... ok test actions::tests::an_absent_operator_slot_stays_absent ... ok test actions::tests::an_endpoint_edit_drops_the_third_party_disk_cache ... ok test actions::tests::an_env_token_profiles_endpoint_survives_reauth_and_the_next_load ... ok test actions::tests::an_explicit_switch_cannot_slip_between_the_auto_decision_and_its_dispatch ... ok test actions::tests::an_explicit_switch_cannot_slip_between_the_auto_off_decision_and_its_dispatch ... ok test actions::tests::an_unopenable_rotation_lock_refuses_in_the_fault_vocabulary ... ok test actions::tests::auto_switch_if_needed_does_not_hop_a_scoped_blocked_active_onto_a_canceled_member ... ok test actions::tests::auto_switch_if_needed_hops_off_a_scoped_blocked_active ... ok test actions::tests::auto_switch_if_needed_keeps_a_scoped_blocked_sink_parked ... ok test actions::tests::auto_switch_if_needed_walks_off_a_broken_active ... ok test actions::tests::auto_switch_if_needed_walks_off_a_key_rejected_active ... ok test actions::tests::auto_switch_with_headroom_yields_no_dispatch_and_leaves_an_explicit_switch_in_place ... ok test actions::tests::browser_reauth_does_not_keep_an_endpoint_with_no_key_behind_it ... ok test actions::tests::classify_env_key_base_settings_only_for_external_keys ... ok test actions::tests::classify_env_key_flags_managed_keys ... ok test actions::tests::classify_env_key_flags_own_field_by_sorted_index ... ok test actions::tests::browser_reauth_keeps_a_generic_endpoint_and_key ... ok test actions::tests::browser_reauth_on_a_third_party_profile_keeps_its_endpoint_and_key ... ok test actions::tests::browser_reauth_on_an_active_third_party_profile_keeps_the_live_endpoint ... ok test actions::tests::capture_beside_an_active_account_leaves_the_active_alone ... ok test actions::tests::capture_current_login_refuses_a_login_an_existing_profile_owns ... ok test actions::tests::capture_current_login_refuses_an_existing_name_pointing_at_login ... ok test actions::tests::capture_current_login_refuses_when_nothing_is_live ... ok test actions::tests::capture_current_login_saves_a_foreign_live_login_as_the_first_account ... ok test actions::tests::capture_into_profile_anchors_the_account_it_committed ... ok test actions::tests::clear_profile_api_key_keeps_base_url_and_active_status ... ok test actions::tests::clear_profile_credentials_blanks_active_profile_keeping_shell ... ok test actions::tests::clear_profile_credentials_expires_the_profile_ttl_clock ... ok test actions::tests::clear_profile_credentials_non_active_and_no_sidecar_resurrection ... ok test actions::tests::codex_browser_login_preflight_refuses_only_a_cross_harness_clash ... ok clauth: captured the operator codex login into codex profile 'cx' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpYQWRfs/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpYQWRfs/.codex/auth.json already follows codex profile 'cx' — nothing to capture test actions::tests::codex_capture_adopts_the_operator_slot ... ok test actions::tests::codex_capture_refusals_name_the_fix ... ok test actions::tests::codex_capture_refuses_a_claude_held_name ... ok clauth: captured the operator codex login into codex profile 'first' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpcQP6j3/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'first's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account test actions::tests::codex_capture_refuses_a_slot_another_profile_adopted ... ok clauth: captured the operator codex login into codex profile 'cx' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpbjBscL/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account clauth: re-captured the operator codex login into 'cx' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpbjBscL/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account test actions::tests::codex_recapture_refuses_a_different_account ... ok clauth: captured the operator codex login into codex profile 'cx' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpnHy7HV/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account clauth: re-captured the operator codex login into 'cx' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpnHy7HV/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account test actions::tests::codex_recapture_replaces_the_chain_unless_a_session_holds_it ... ok test actions::tests::delete_active_api_profile_unwires_settings_endpoint ... ok test actions::tests::delete_active_unwire_failure_keeps_profile_retryable ... ok clauth: captured the operator codex login into codex profile 'cx1' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpFDnUAE/operator-codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx1's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account clauth: captured the operator codex login into codex profile 'cx2' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpFDnUAE/operator-codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx2's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account clauth: captured the operator codex login into codex profile 'cx4' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpFDnUAE/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx4's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account test actions::tests::delete_codex_detaches_only_the_slot_adopted_onto_it ... ok test actions::tests::delete_codex_refuses_a_dir_the_roster_no_longer_owns ... ok test actions::tests::delete_codex_refuses_a_live_session_unforced ... ok test actions::tests::delete_codex_refuses_while_a_rotation_holds_the_lock ... ok test actions::tests::delete_codex_removes_the_dir_and_every_slot ... ok test actions::tests::delete_profile_expires_the_profile_ttl_clock ... ok test actions::tests::delete_refuses_live_session_unless_forced ... ok test actions::tests::delete_refuses_while_a_rotation_holds_the_lock ... ok test actions::tests::disable_is_idempotent_on_an_already_disabled_profile ... ok test actions::tests::disable_refuses_a_profile_with_a_live_session ... ok test actions::tests::disable_refuses_the_active_profile ... ok test actions::tests::disable_sets_the_flag_and_a_reload_observes_it ... ok test actions::tests::edit_profile_env_persists_to_config_toml ... ok test actions::tests::edit_profile_env_strips_removed_keys_from_live_settings_when_active ... ok test actions::tests::edit_profile_preset_writes_endpoint_and_models_in_one_shot ... ok test actions::tests::enable_clears_the_flag_leaving_everything_else_byte_identical ... ok test actions::tests::enable_is_idempotent_on_an_already_enabled_profile ... ok test actions::tests::finish_switch_deletes_stale_oauth_account_block ... ok test actions::tests::first_capture_over_a_foreign_live_login_refuses_and_rolls_back ... ok test actions::tests::first_create_from_login_over_a_foreign_live_login_refuses_and_rolls_back ... ok test actions::tests::identify_live_login_owner::a_foreign_login_identifies_nobody ... ok test actions::tests::identify_live_login_owner::a_live_mint_resolves_through_its_stored_sidecar ... ok test actions::tests::identify_live_login_owner::exact_token_match_identifies_the_owner ... ok test actions::tests::identify_live_login_owner::token_tier_wins_over_uuid_tier_when_tokens_match ... ok test actions::tests::identify_live_login_owner::uuid_tier_blank_uuid_on_either_side_identifies_nobody ... ok test actions::tests::identify_live_login_owner::uuid_tier_identifies_a_sibling_relogin_when_no_token_matches ... ok test actions::tests::identify_live_login_owner::uuid_tier_no_cached_anchor_identifies_nobody ... ok test actions::tests::identify_live_login_owner::uuid_tier_no_oauth_account_block_identifies_nobody ... ok test actions::tests::identify_live_login_owner::uuid_tier_unparseable_claude_json_identifies_nobody_and_leaves_it ... ok test actions::tests::moving_the_endpoint_off_alibaba_clears_the_console_session ... ok test actions::tests::ordered_daemonless_switch_publishes_the_latest_state ... ok test actions::tests::overwrite_captured_profile_anchors_the_account_it_committed ... ok test actions::tests::overwrite_captured_profile_clears_auth_broken_quarantine ... ok test actions::tests::overwrite_captured_profile_does_not_auto_activate_a_disabled_profile ... ok test actions::tests::overwrite_captured_profile_expires_the_profile_ttl_clock ... ok test actions::tests::overwrite_captured_profile_keeps_config_and_history_swaps_credentials ... ok test actions::tests::overwrite_captured_profile_reapplies_live_state_when_active ... ok test actions::tests::overwrite_still_replaces_the_endpoint_set_outside_the_preserve_arm ... ok test actions::tests::overwriting_the_active_profile_replaces_a_regular_live_file ... ok test actions::tests::overwriting_the_active_profile_with_no_credentials_clears_a_regular_live_file ... ok test actions::tests::reauth_overwrite_clears_broken_flag ... ok test actions::tests::rename_profile_expires_the_old_names_ttl_clock_and_carries_the_stamp ... ok test actions::tests::rename_refuses_a_leftover_target_directory ... ok test actions::tests::rename_refuses_a_live_session ... ok test actions::tests::rename_refuses_while_a_rotation_holds_the_lock ... ok test actions::tests::rename_retry_completes_the_record_when_the_old_dir_is_already_moved ... ok test actions::tests::set_profile_default_model_blank_clears_default ... ok test actions::tests::set_profile_default_model_persists_to_config_toml ... ok test actions::tests::set_profile_default_model_preserves_alias_overrides ... ok test actions::tests::switch_cli_refuses_dead_target_with_login_hint ... ok test actions::tests::switch_codex_moves_only_the_codex_slot ... ok clauth: re-captured the operator codex login into 'cx2' clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpOxy1Jz/.codex/auth.json now follows the profile store — your own codex and clauth sessions share one chain clauth: while it does, `codex login` and `codex logout` reach 'cx2's chain through that link and revoke it server-side — remove the link first if you mean to mint a chain for a different account test actions::tests::switch_codex_refuses_a_quarantined_chain_until_a_fresh_one_lands ... ok test actions::tests::switch_leaves_the_feed_to_a_running_daemon ... ok test actions::tests::switch_off_also_deletes_stale_oauth_account_block ... ok test actions::tests::switch_off_on_diverged_file_keeps_profile_snapshot_and_drops_login ... ok test actions::tests::switch_profile_refuses_a_disabled_target_and_leaves_active_unchanged ... ok test actions::tests::switch_profile_refuses_a_target_deleted_on_disk ... ok test actions::tests::switch_publishes_the_status_feed_when_no_daemon_owns_it ... ok test actions::tests::switch_replaces_active_account_mirror_without_refusing ... ok test actions::tests::switch_to_a_missing_profile_bails_before_touching_the_live_link ... ok test actions::tests::switching_to_the_active_account_repairs_a_drifted_link ... ok test actions::tests::the_auto_activate_arm_writes_a_preserved_endpoint_into_the_live_settings ... ok test actions::tests::the_cross_harness_half_stands_alone_for_the_capture_flow ... ok test actions::tests::the_daemonless_commit_serializes_on_the_state_flock ... ok test actions::tests::the_mutation_refusal_matches_the_rotation_lock_held_copy ... ok test actions::tests::the_operators_own_login_is_never_touched_by_a_switch ... ok test actions::tests::the_own_roster_duplicate_keeps_the_rename_exemption ... ok test actions::tests::validate_profile_name_accepts_email_rejects_path_chars ... ok test actions::tests_mcp_switch::divergence_discard_drops_relogin_and_relinks_target ... ok test actions::tests_mcp_switch::divergence_discard_to_a_ghost_target_bails_before_side_effects ... ok test actions::tests_mcp_switch::divergence_new_profile_default_errors ... ok test actions::tests_mcp_switch::divergence_over_a_shell_switches_without_capturing ... ok test actions::tests_mcp_switch::divergence_overwrite_captures_relogin_into_outgoing ... ok test alibaba_login::tests::a_blank_field_reads_as_absent ... ok test alibaba_login::tests::a_body_split_across_segments_is_read_whole ... ok test alibaba_login::tests::a_broken_json_body_still_falls_back_to_the_form_reading ... ok test alibaba_login::tests::a_callback_field_is_read_in_either_spelling_from_either_carrier ... ok test alibaba_login::tests::a_lowercase_method_still_matches_the_preflight_check ... ok test alibaba_login::tests::a_percent_encoded_value_is_decoded_exactly_once ... ok test alibaba_login::tests::a_request_body_is_read_past_the_headers_by_content_length ... ok test alibaba_login::tests::each_site_opens_its_own_console_front ... ok test alibaba_login::tests::the_notice_param_keeps_its_literal_question_mark ... ok test alibaba_login::tests::the_real_callback_yields_a_session_and_nothing_else ... ok test alibaba_login::tests::the_real_json_callback_body_is_read ... ok test actions::tests_mcp_switch::divergence_overwrite_to_a_ghost_target_bails_before_capture ... ok test actions::tests_mcp_switch::divergence_without_default_errors ... ok test actions::tests_mcp_switch::non_diverged_switch_refreshes_a_non_disabled_expired_target ... ok test actions::tests_mcp_switch::non_diverged_switch_refuses_a_disabled_expired_target_before_any_refresh ... ok test actions::tests_mcp_switch::non_diverged_switch_refuses_a_disabled_target ... ok test actions::tests_mcp_switch::non_diverged_switch_takes_plain_path ... ok test actions::tests_mcp_switch::noninteractive_switch_refuses_a_dead_target_with_login_hint ... ok test actions::tests_mcp_switch::noninteractive_switch_transient_failure_refuses_without_quarantine ... ok test actions::tests_mcp_switch::switch_to_the_active_profile_never_gates ... ok test claude::tests::a_backup_inside_ccs_refresh_window_reads_as_expired ... ok test claude::tests::a_backup_that_is_not_a_mint_is_quarantined_never_restored ... ok test claude::tests::a_block_the_live_file_lacks_survives_onto_the_live_slot ... ok test claude::tests::a_carry_with_no_store_to_land_in_parks_instead ... ok test claude::tests::a_clauth_symlink_under_a_flipped_install_source_is_not_unsaved ... ok test claude::tests::a_credential_publish_repoints_the_live_link_and_strands_no_staging_file ... ok test claude::tests::a_preserving_sign_out_keeps_the_design_login_and_drops_the_identity ... ok test claude::tests::a_preserving_sign_out_never_deletes_an_item_holding_a_design_login ... ok test claude::tests::a_design_login_survives_the_install_source_flipping_either_way ... ok test claude::tests::a_design_login_the_live_file_alone_holds_survives_the_flip ... ok test claude::tests::a_failed_carry_still_completes_the_switch ... ok test claude::tests::a_failed_credential_publish_keeps_the_destination_and_strands_nothing ... ok test claude::tests::a_fresh_mint_replaces_an_expired_backup_on_the_next_roll ... ok test claude::tests::a_fresher_sidecar_mint_upgrades_a_live_but_older_backup ... ok test claude::tests::a_keychain_item_no_single_store_owns_saves_nothing_and_says_so ... ok test claude::tests::a_live_file_holding_another_login_syncs_nothing_into_the_sidecar ... ok test claude::tests::a_mint_in_its_final_month_is_still_preserved ... ok test claude::tests::a_re_mint_keeps_a_design_login_only_the_live_file_holds ... ok test claude::tests::a_re_mint_keeps_every_non_login_key_its_sidecar_holds ... ok test claude::tests::a_re_mint_with_backup_keeps_a_design_login_only_the_live_file_holds ... ok test claude::tests::a_regained_store_takes_its_parked_mcp_logins_back ... ok test claude::tests::a_regular_file_mirror_of_a_stored_login_is_not_unsaved ... ok test claude::tests::a_replaced_keychain_item_saves_its_keys_into_the_store_holding_its_login ... ok test claude::tests::a_restore_keeps_a_design_login_the_live_file_held_beside_the_rolling_bearer ... ok test claude::tests::a_restore_onto_the_live_mint_keeps_the_design_login ... ok test claude::tests::a_sign_out_drops_the_account_keys_and_keeps_the_mcp_logins ... ok test claude::tests::a_sign_out_keeps_the_design_login_only_where_no_store_took_it ... ok test claude::tests::a_sign_out_over_a_login_only_item_leaves_nothing_to_keep ... ok test claude::tests::a_restore_over_the_accounts_own_sidecar_keeps_its_newer_copy ... ok test claude::tests::a_restored_mint_is_preserved_again_on_the_next_roll ... ok test claude::tests::a_store_with_no_account_keys_is_already_signed_out ... ok test claude::tests::a_rolling_bearer_is_never_preserved_as_the_mint ... ok test claude::tests::a_rolling_restamp_keeps_a_design_login_the_live_file_held ... ok test claude::tests::a_rolling_stamp_keeps_the_sidecars_non_login_keys ... ok test claude::tests::a_rotating_pair_classifies_misfilled_never_rolling ... ok test claude::tests::a_sync_lands_only_on_the_store_holding_the_same_login ... ok test claude::tests::a_rotating_pair_in_the_sidecar_never_engages_the_split ... ok test claude::tests::a_sidecar_that_does_not_parse_says_its_keys_were_not_kept ... ok test claude::tests::a_token_is_never_mixed_field_by_field ... ok test claude::tests::a_token_keeps_the_copy_that_expires_later ... ok test claude::tests::a_sidecar_writer_over_a_misfill_keeps_nothing_of_it ... ok test claude::tests::a_stamp_or_clear_over_a_misfill_saves_the_live_keys_beside_the_login ... ok test claude::tests::a_store_with_no_mcp_logins_parks_nothing ... ok test claude::tests::a_switch_away_keeps_every_key_only_the_live_file_holds_in_an_oauth_store ... ok test claude::tests::a_switch_home_to_a_setup_token_account_brings_the_rotated_mcp_login ... ok test claude::tests::a_switch_keeps_the_design_login_with_the_account_it_was_made_on ... ok test claude::tests::a_sync_stands_down_while_a_rotation_is_staged ... ok test claude::tests::build_settings_api_key_helper_leaves_profile_name_unquoted ... ok test claude::tests::build_settings_api_key_helper_shell_quotes_exe_path ... ok test claude::tests::build_settings_api_key_helper_strips_deleted_exe_marker ... ok test claude::tests::build_settings_blank_api_key_writes_no_helper ... ok test claude::tests::build_settings_clears_stale_model_knobs ... ok test claude::tests::a_tier_override_alone_is_enough_to_write_settings ... ok test claude::tests::build_settings_no_api_key_helper_for_non_api_profile ... ok test claude::tests::build_settings_writes_api_key_helper_not_env_token ... ok test claude::tests::build_settings_switch_away_from_api_key_clears_helper ... ok test claude::tests::build_settings_writes_model_knobs ... ok test claude::tests::carry_copies_mcp_oauth_and_leaves_the_target_login_untouched ... ok test claude::tests::an_expired_backup_is_never_restored ... ok test claude::tests::carry_moves_only_the_allowlisted_key ... ok test claude::tests::carrying_a_key_the_target_already_holds_reports_no_change ... ok test claude::tests::classification_is_the_scope_set_never_the_clock ... ok test claude::tests::classify_link_diverged_when_plain_file ... ok test claude::tests::classify_link_diverged_when_plain_file_access_token_empty ... ok test claude::tests::classify_link_diverged_when_plain_file_token_differs ... ok test claude::tests::classify_link_diverged_when_symlink_points_elsewhere ... ok test claude::tests::classify_link_linked_to_even_when_target_missing ... ok test claude::tests::an_older_live_copy_never_lands_over_a_newer_one ... ok test claude::tests::classify_link_linked_to_when_plain_file_token_matches_stored ... ok test claude::tests::classify_link_missing_when_path_absent ... ok test claude::tests::classify_security_exit_names_the_measured_codes ... ok test claude::tests::classify_link_linked_to_when_pointing_at_expected ... ok test claude::tests::a_store_removal_parks_the_mcp_logins_it_was_holding ... ok test claude::tests::diverged_returns_false_when_either_side_missing ... ok test claude::tests::diverged_returns_false_when_oauth_block_missing_on_one_side ... ok test claude::tests::diverged_returns_false_when_tokens_match ... ok test claude::tests::diverged_returns_true_when_access_token_differs ... ok test claude::tests::diverged_returns_true_when_refresh_token_differs ... ok test claude::tests::diverged_returns_true_when_refresh_token_disappears ... ok test claude::tests::first_login_false_when_link_is_symlink ... ok test claude::tests::first_login_false_when_link_missing ... ok test claude::tests::first_login_false_when_live_is_a_logged_out_shell ... ok test claude::tests::first_login_false_when_oauth_block_absent ... ok test claude::tests::first_login_false_when_stored_creds_exist ... ok test claude::tests::first_login_true_when_live_is_a_completed_login_with_foreign_keys ... ok test claude::tests::first_login_true_when_no_stored_creds_and_plain_oauth_file ... ok test claude::tests::an_unreadable_profiles_toml_preserves ... ok test claude::tests::an_unreadable_sidecar_aborts_the_roll_instead_of_forfeiting_the_mint ... ok test claude::tests::arming_from_disk_rechecks_chain_staleness_after_the_guard_wait ... ok test claude::tests::arming_from_disk_skips_a_profile_cleared_while_it_waited ... ok test claude::tests::arming_from_disk_stamps_the_post_guard_chain_not_a_stale_snapshot ... ok test claude::tests::carry_keeps_the_store_at_0600 ... ok test claude::tests::carry_skips_the_static_token_sidecar ... ok test claude::tests::claude_settings_models_reads_model_fallbacks_and_the_subagent_key ... ok test claude::tests::clear_session_token_flips_the_install_source_back ... ok test claude::tests::first_stamp_preserves_the_mint_once_and_only_the_mint ... ok test claude::tests::force_snapshot_does_not_resurrect_a_deleted_profile ... ok test claude::tests::is_namespaced_keychain_service_admits_only_suffixed_hex ... ok test claude::tests::force_snapshot_never_clobbers_the_session_token_usage_pair ... ok test claude::tests::force_snapshot_skips_an_absent_live_file ... ok test claude::tests::force_snapshot_skips_shell_but_still_captures_real_divergence ... ok test claude::tests::has_stored_oauth_login_tracks_the_store_the_relink_would_find ... ok test claude::tests::heal_and_restore_over_a_misfill_keep_nothing_of_it ... ok test claude::tests::heal_and_restore_over_a_misfill_save_the_live_keys_beside_the_login_not_into_the_evidence ... ok test claude::tests::live_login_is_empty_truth_table ... ok test claude::tests::namespaced_keychain_service_hashes_the_dir_path ... ok test claude::tests::namespaced_keychain_service_is_dir_specific_and_never_bare ... ok test claude::tests::install_source_prefers_session_token ... ok test claude::tests::installed_session_token_tracks_what_a_switch_installs ... ok test claude::tests::link_adopts_a_matching_login_and_preserves_mcp_oauth ... ok test claude::tests::profile_name_from_helper_parses_our_shape ... ok test claude::tests::profile_name_from_helper_rejects_wrong_shape ... ok test claude::tests::link_refuses_a_login_less_live_file_over_a_profile_storing_no_login ... ok test claude::tests::link_refuses_a_torn_live_file_over_a_profile_storing_no_login ... ok test claude::tests::link_refuses_two_differing_logged_out_shells ... ok test claude::tests::link_still_refuses_a_different_live_login ... ok test claude::tests::live_credentials_are_shell_requires_a_parsed_empty_login ... ok test claude::tests::heal_misfilled_sidecar_quarantines_and_restores_the_mint ... ok test claude::tests::overwrite_cancel_leaves_stored_and_live_untouched ... ok test claude::tests::overwrite_confirm_captures_relogin_into_profile ... ok test claude::tests::preserve_quarantines_a_displaced_slot_holder_that_was_never_a_mint ... ok test claude::tests::quarantining_a_misfill_removes_the_sidecar ... ok test claude::tests::relogin_is_diverged_and_not_first_login ... ok test claude::tests::restore_quarantines_a_misfilled_sidecar_before_overwriting_it ... ok test claude::tests::restore_static_mint_round_trip ... ok test claude::tests::the_carry_adopts_the_item_when_the_store_holds_no_expiry ... ok test claude::tests::the_carry_keeps_the_store_when_the_item_is_stale_or_tied ... ok test claude::tests::the_carry_never_adopts_an_item_holding_no_expiry ... ok test claude::tests::the_carry_prefers_the_item_when_its_login_expires_later ... ok test claude::tests::the_census_collects_only_owned_namespaced_services_no_live_dir_explains ... ok test claude::tests::the_census_parses_the_real_hex_dump_form ... ok test claude::tests::the_census_spares_a_foreign_namespaced_item ... ok test claude::tests::session_token_live_is_linked_and_snapshot_keeps_usage_oauth ... ok test claude::tests::session_token_status_distinguishes_missing_from_unstamped ... ok test claude::tests::snapshot_skips_shell_on_blank_profile_and_preserves_live_file ... ok test claude::tests::stamp_rolling_token_carries_the_chains_rate_limit_tier ... ok test claude::tests::the_keychain_sign_outs_pass_the_preservation_reading ... ok test claude::tests::the_locked_keychain_cause_is_a_hardcoded_literal ... ok test claude::tests::stamp_rolling_token_refuses_a_mint_shaped_chain_grant ... ok test claude::tests::the_namespaced_delete_salvages_readable_bytes_before_delete ... ok test claude::tests::the_mcp_logins_merge_server_by_server ... ok test claude::tests::the_sign_out_skips_its_destructive_read_degrade_only_over_a_locked_keychain ... ok test claude::tests::validate_api_key_rejects_control_and_whitespace ... ok test claude::tests::validate_setup_token_accepts_a_mint_and_rejects_bad_pastes ... ok test claude::tests::stamp_rolling_token_writes_a_refreshless_long_lived_shape ... ok test claude::tests::switch_installs_session_token_not_usage_oauth ... ok test claude::tests::switching_accounts_preserves_mcp_oauth_end_to_end ... ok test claude::tests::the_boot_relink_keeps_a_design_login_only_the_live_file_holds ... ok test claude::tests::the_credential_fingerprint_tracks_each_of_the_three_files ... ok test claude::tests::the_identity_keys_never_enter_a_store_through_preservation ... ok test claude::tests::the_keychain_owner_search_asks_the_active_profile_first ... ok test claude::tests::the_keychain_owner_search_finds_the_owner_off_the_active_profile ... ok test claude::tests::the_parked_mcp_logins_file_is_owner_only ... ok test claude::tests::with_preservation_off_static_tokens_behave_as_before ... ok test claude::tests::write_session_token_produces_a_recognised_sidecar ... ok test claude::tests::write_session_token_with_backup_stamps_both_from_the_same_mint ... ok test claude_json::tests::account_scoped_model_caches_stay_per_profile ... ok test claude_json::tests::converged_target_is_not_rewritten ... ok test claude_json::tests::known_paths_reach_per_session_copies_and_still_exclude_isolated ... ok test claude_json::tests::newest_mtime_wins_regardless_of_argument_order ... ok test claude_json::tests::per_profile_fields_never_propagate ... ok test claude_json::tests::shared_fields_propagate_from_newest_to_others ... ok test claude_json::tests::shared_key_absent_in_winner_is_removed_from_target ... ok test codex_auth::tests::a_plan_word_is_trimmed_lowercased_and_empty_is_absent ... ok test claude_json::tests::single_file_is_noop ... ok test codex_auth::tests::a_rotation_preserves_every_unknown_key ... ok test claude_json::tests::strip_home_oauth_account_no_op_when_key_absent ... ok test claude_json::tests::strip_home_oauth_account_removes_key_and_preserves_the_rest ... ok test claude_json::tests::strip_home_oauth_account_skips_missing_file ... ok test claude_json::tests::strip_home_oauth_account_skips_unparseable_file ... ok test claude_json::tests::strip_home_oauth_account_skips_valid_json_that_is_not_an_object ... ok test codex_auth::tests::jwt_exp_reads_the_payload_and_shrugs_at_garbage ... ok test codex_auth::tests::refresh_failures_classify_the_way_codex_does ... ok test claude_json::tests::sync_writes_runtime_copies_owner_only_and_leaves_the_home_file_alone ... ok test claude_json::tests::the_login_managed_api_key_never_propagates ... ok test claude_json::tests::unparseable_file_is_skipped ... ok test codex_auth::tests::a_quarantine_record_speaks_only_for_the_token_it_judged ... ok test codex_auth::tests::a_rotation_under_the_guard_window_is_caught ... ok test codex_auth::tests::a_successful_rotation_does_not_reset_the_breaker ... ok test codex_auth::tests::an_unreadable_exp_falls_back_to_last_refresh_age ... ok test codex_auth::tests::an_unrecognized_4xx_leaves_no_quarantine_record ... ok test codex_login::tests::the_account_id_comes_from_the_nested_claim ... ok test codex_auth::tests::fake_transport_stands_down_for_any_live_session_and_keeps_the_kick ... ok test codex_login::tests::the_auth_json_is_codexs_shape ... ok test codex_login::tests::the_authorize_url_carries_the_verified_params ... ok test codex_login::tests::the_callback_parses_an_error_into_the_closed_set_and_echoes_nothing ... ok test codex_login::tests::the_callback_takes_the_code_only_under_the_expected_state ... ok test codex_login::tests::the_code_exchange_is_form_urlencoded_unlike_the_json_refresh ... ok test codex_auth::tests::the_refresh_wire_shape_is_the_specs ... ok test codex_login::tests::the_login_binds_the_registered_ports_in_order_and_refuses_with_both_held ... ok test codex_auth::tests::standby_tick_rotates_every_due_chain_through_the_wire ... ok test codex_auth::tests::the_belt_never_restores_under_a_live_session ... ok test codex_auth::tests::the_belt_restores_after_two_confirmed_bad_reads ... ok test codex_auth::tests::the_no_replay_memo_survives_on_disk ... ok test codex_auth::tests::the_stand_down_is_scoped_to_a_live_session ... ok test codex_auth::tests::the_standby_pass_walks_its_decision_table ... ok test codex_profiles::tests::a_minimal_file_defaults_the_rest ... ok test codex_profiles::tests::a_missing_file_reads_as_an_empty_roster ... ok test completions::tests::a_branch_stops_at_the_catch_all_and_at_the_end_of_the_chain ... ok test completions::tests::answer_is_yes_accepts_y_and_yes_any_case ... ok test completions::tests::answer_is_yes_declines_on_n_or_other_input ... ok test completions::tests::answer_is_yes_defaults_to_yes_on_empty ... ok test completions::tests::bash_and_zsh_complete_a_profile_after_start_with_fallback ... ok test codex_profiles::tests::a_save_keeps_the_weekly_key_exactly_as_it_found_it ... ok test completions::tests::devices_flags_are_offered_only_under_pair_and_add ... ok test codex_profiles::tests::an_out_of_band_weekly_line_heals_on_the_next_save ... ok test completions::tests::every_login_flag_is_offered_by_all_three_scripts ... ok test completions::tests::every_shell_completes_limit_reset_from_the_codex_roster_only ... ok test completions::tests::every_shell_completes_login_setup_token_flag ... ok test codex_profiles::tests::an_unknown_key_does_not_fail_the_load ... ok test completions::tests::every_shell_completes_start_isolated_flag ... ok test completions::tests::every_shell_completes_start_with_fallback_flag ... ok test completions::tests::every_shell_drops_the_manual_login_flag ... ok test completions::tests::every_shell_completes_switchs_both_positions ... ok test codex_profiles::tests::the_mtime_stat_answers_absent_and_present ... ok test completions::tests::fish_keeps_the_profile_verb_offers_out_of_proxy_enable_and_disable ... ok test completions::tests::herdr_flags_are_offered_only_under_install_and_uninstall ... ok test codex_profiles::tests::the_on_disk_spelling_is_the_profiles_toml_one ... ok test codex_profiles::tests::the_weekly_line_is_the_codex_files_own_with_the_claude_default ... ok test completions::tests::install_rejects_unsupported_shell ... ok test completions::tests::login_flags_matches_claps_login_args ... ok test completions::tests::no_script_carries_the_login_flags_marker ... ok test completions::tests::no_shell_completes_a_profile_after_start_auto ... ok test completions::tests::no_shell_offers_the_removed_rescue_flags ... ok test completions::tests::no_zsh_spec_line_has_an_unbalanced_single_quote ... ok test completions::tests::offers_token_does_not_match_inside_a_longer_flag ... ok test completions::tests::print_script_rejects_unsupported_shell ... ok _clauth() { local cur prev cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if [ "$COMP_CWORD" -eq 1 ]; then local profiles profiles=$(clauth __complete 2>/dev/null) COMPREPLY=( $(compgen -W "${profiles} start login capture delete disable enable limit-reset rolling-token static-token which list jobs switch sessions resume info daemon devices status mcp herdr proxy completions --theme" -- "${cur}") ) elif [ "$prev" = "--theme" ]; then COMPREPLY=( $(compgen -W "full compatible" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "login" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--base-url --api-key --setup-token --codex --browser --yes -y --model" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "start" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--isolated --with-fallback --auto --explain" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "daemon" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--standby --no-standby --replace --status --listen --cert --key --dump-openapi" -- "${cur}") ) elif [ "$prev" = "--isolated" ] || [ "$prev" = "--with-fallback" ] || [ "$prev" = "--profile" ] || [ "$prev" = "--explain" ]; then local profiles profiles=$(clauth __complete 2>/dev/null) COMPREPLY=( $(compgen -W "${profiles}" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && { [ "$prev" = "start" ] || [ "$prev" = "login" ] || [ "$prev" = "capture" ] || [ "$prev" = "delete" ] || [ "$prev" = "disable" ] || [ "$prev" = "enable" ] || [ "$prev" = "rolling-token" ] || [ "$prev" = "static-token" ]; }; then local profiles profiles=$(clauth __complete 2>/dev/null) COMPREPLY=( $(compgen -W "${profiles}" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && [ "$prev" = "limit-reset" ]; then COMPREPLY=( $(compgen -W "$(clauth __complete --codex 2>/dev/null)" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && [ "$prev" = "which" ]; then COMPREPLY=( $(compgen -W "--json" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && [ "$prev" = "sessions" ]; then COMPREPLY=( $(compgen -W "--json --tokens" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && [ "$prev" = "switch" ]; then local profiles sids profiles=$(clauth __complete 2>/dev/null) sids=$(clauth __complete --live-sessions 2>/dev/null) COMPREPLY=( $(compgen -W "${profiles} ${sids}" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 3 ] && [ "${COMP_WORDS[1]}" = "switch" ]; then local profiles profiles=$(clauth __complete 2>/dev/null) COMPREPLY=( $(compgen -W "${profiles}" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && [ "$prev" = "jobs" ]; then COMPREPLY=( $(compgen -W "--json" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && [ "$prev" = "devices" ]; then COMPREPLY=( $(compgen -W "pair add revoke allow-sessions --json" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "devices" ] && { [ "${COMP_WORDS[2]}" = "pair" ] || [ "${COMP_WORDS[2]}" = "add" ]; } && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--control --sessions" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && [ "$prev" = "herdr" ]; then COMPREPLY=( $(compgen -W "install uninstall config" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 3 ] && [ "${COMP_WORDS[1]}" = "herdr" ] && [ "${COMP_WORDS[2]}" = "config" ]; then COMPREPLY=( $(compgen -W "get" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 4 ] && [ "${COMP_WORDS[1]}" = "herdr" ] && [ "${COMP_WORDS[2]}" = "config" ] && [ "${COMP_WORDS[3]}" = "get" ]; then COMPREPLY=( $(compgen -W "popup_width pane_tag tag_watch_secs border_label delegate_dot delegate_row_text" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "herdr" ] && [ "${COMP_WORDS[2]}" = "install" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--key --no-config --yes -y" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "herdr" ] && [ "${COMP_WORDS[2]}" = "uninstall" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--no-config --yes -y" -- "${cur}") ) elif [ "$COMP_CWORD" -eq 2 ] && [ "$prev" = "proxy" ]; then COMPREPLY=( $(compgen -W "list enable disable check" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "proxy" ] && [ "${COMP_WORDS[2]}" = "enable" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--port" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "proxy" ] && [ "${COMP_WORDS[2]}" = "list" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--json" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "proxy" ] && [ "${COMP_WORDS[2]}" = "check" ] && { [ "$prev" = "--admin-token-file" ] || [ "$prev" = "--key-file" ]; }; then COMPREPLY=( $(compgen -f -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "proxy" ] && [ "${COMP_WORDS[2]}" = "check" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--admin-token-file --key-file --destructive" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "resume" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--profile" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "delete" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--yes -y --force" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "static-token" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--clear --yes" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "disable" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--yes -y" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "limit-reset" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--list --yes -y" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "status" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--json --all --disabled" -- "${cur}") ) elif [ "${COMP_WORDS[1]}" = "list" ] && [ "${cur:0:2}" = "--" ]; then COMPREPLY=( $(compgen -W "--all --disabled" -- "${cur}") ) fi return 0 } complete -F _clauth clauth #compdef clauth _clauth() { if (( CURRENT == 2 )); then local -a profiles profiles=("${(@f)$(clauth __complete 2>/dev/null)}") _describe 'profile' profiles _values 'subcommand' \ 'start[launch claude with that profile]' \ 'login[log in via browser OAuth or an API key]' \ 'capture[save the login Claude Code is using now as a new profile]' \ 'delete[remove a profile and its credentials]' \ 'disable[hide a profile from auto-switch and usage polling]' \ 'enable[restore a disabled profile]' \ 'limit-reset[spend a banked usage-limit reset on a codex account]' \ 'rolling-token[serve a profile a rolling token from its usage chain]' \ 'static-token[restore the static setup-token mint, or --clear the long-lived token]' \ 'which[print profile owning the loaded credentials]' \ 'list[list accounts as a table with per-profile usage]' \ 'jobs[list the delegate jobs clauth is holding (add --json)]' \ 'switch[switch the global account, or move a live session to another profile]' \ 'sessions[list Claude Code sessions (add --json / --tokens)]' \ 'resume[resume a session under a chosen profile]' \ 'info[print resume command + storage path for a session]' \ 'daemon[run the headless scheduler with no TUI]' \ 'devices[pair, list, grant sessions to, and revoke the devices that may call the REST API]' \ 'status[print the usage / auto-switch snapshot as JSON]' \ 'mcp[run the stdio MCP server]' \ 'herdr[install the herdr plugin and bind a key to it]' \ 'proxy[register clauth-compatible proxies and check them against the contract]' \ 'completions[emit shell completion script]' _values 'option' '--theme[force a color depth instead of auto-detecting]' elif (( CURRENT >= 3 )) && [[ "${words[CURRENT-1]}" == "--theme" ]]; then _values 'tier' 'full[24-bit truecolor]' 'compatible[xterm-256 palette, safe on every terminal]' elif (( CURRENT == 3 )) && [[ "${words[2]}" == (start|login|capture|delete|disable|enable|rolling-token|static-token) ]]; then local -a profiles profiles=("${(@f)$(clauth __complete 2>/dev/null)}") _describe 'profile' profiles [[ "${words[2]}" == start ]] && _values 'flag' '--isolated[clean isolated runtime; drops operator config]' \ '--with-fallback[follow the fallback chain; needs a running daemon]' \ '--auto[pick the account by the models this session may run]' \ '--explain[print the account that would be launched, without launching]' elif (( CURRENT == 3 )) && [[ "${words[2]}" == limit-reset ]]; then local -a profiles profiles=("${(@f)$(clauth __complete --codex 2>/dev/null)}") _describe 'profile' profiles elif (( CURRENT == 4 )) && [[ "${words[2]}" == start && "${words[3]}" == (--isolated|--with-fallback|--explain) ]]; then local -a profiles profiles=("${(@f)$(clauth __complete 2>/dev/null)}") _describe 'profile' profiles elif (( CURRENT == 4 )) && [[ "${words[2]}" == resume && "${words[3]}" == --profile ]]; then local -a profiles profiles=("${(@f)$(clauth __complete 2>/dev/null)}") _describe 'profile' profiles elif (( CURRENT == 3 )) && [[ "${words[2]}" == herdr ]]; then _values 'subcommand' 'install[install the plugin and wire it into herdr'"'"'s config]' \ 'uninstall[remove the plugin and the config lines it added]' \ 'config[print one herdr knob]' elif (( CURRENT == 4 )) && [[ "${words[2]}" == herdr && "${words[3]}" == config ]]; then _values 'subcommand' 'get[print the knob value on one line]' elif (( CURRENT == 5 )) && [[ "${words[2]}" == herdr && "${words[3]}" == config && "${words[4]}" == get ]]; then _values 'key' 'popup_width[how the entrypoint pane opens]' 'pane_tag[publish the profile tag token]' 'tag_watch_secs[per-pane tag watcher interval]' 'border_label[split-pane border account label]' 'delegate_dot[delegate pane metadata]' 'delegate_row_text[delegate text beside the sidebar row]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == herdr && "${words[3]}" == install ]]; then _values 'flag' '--key[key that opens the dashboard]' '--no-config[leave herdr'"'"'s config.toml alone]' '--yes[skip both confirm prompts]' '-y[skip both confirm prompts]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == herdr && "${words[3]}" == uninstall ]]; then _values 'flag' '--no-config[leave herdr'"'"'s config.toml alone]' '--yes[skip both confirm prompts]' '-y[skip both confirm prompts]' elif (( CURRENT == 3 )) && [[ "${words[2]}" == proxy ]]; then _values 'subcommand' 'list[show every clauth proxy on PATH or registered, with its live state]' \ 'enable[record a proxy found on PATH, for the daemon to run]' \ 'disable[stop running a proxy, keeping its port, admin token and state]' \ 'check[check a running proxy against the clauth proxy contract]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == proxy && "${words[3]}" == enable ]]; then _values 'flag' '--port[loopback port to serve on, first enable only]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == proxy && "${words[3]}" == list ]]; then _values 'flag' '--json[emit the stable machine-readable array]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == proxy && "${words[3]}" == check && "${words[CURRENT-1]}" == (--admin-token-file|--key-file) ]]; then _files elif (( CURRENT >= 4 )) && [[ "${words[2]}" == proxy && "${words[3]}" == check ]]; then _values 'flag' '--admin-token-file[file holding the proxy admin token]' \ '--key-file[file holding an inference key of one of its accounts]' \ '--destructive[also run the mutating routes for real on this account]' elif (( CURRENT == 3 )) && [[ "${words[2]}" == devices ]]; then _values 'subcommand' 'pair[print a one-time pairing code and wait for it]' \ 'add[mint a token for a device here and print it once]' \ 'revoke[remove a device]' \ 'allow-sessions[grant a control device the sessions flag]' _values 'flag' '--json[emit the device list as JSON]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == devices && "${words[3]}" == (pair|add) ]]; then _values 'flag' '--control[the device may switch accounts, not only read]' \ '--sessions[the device may mint sessions through the API]' elif (( CURRENT == 3 )) && [[ "${words[2]}" == which ]]; then _values 'flag' '--json[emit JSON instead of plain name]' elif (( CURRENT == 3 )) && [[ "${words[2]}" == sessions ]]; then _values 'flag' '--json[emit the stable machine-readable array]' \ '--tokens[add token totals + cost; reads every transcript in full]' elif (( CURRENT == 3 )) && [[ "${words[2]}" == switch ]]; then local -a profiles sids profiles=("${(@f)$(clauth __complete 2>/dev/null)}") sids=("${(@f)$(clauth __complete --live-sessions 2>/dev/null)}") _describe 'profile' profiles _describe 'session' sids elif (( CURRENT == 4 )) && [[ "${words[2]}" == switch ]]; then local -a profiles profiles=("${(@f)$(clauth __complete 2>/dev/null)}") _describe 'profile' profiles elif (( CURRENT == 3 )) && [[ "${words[2]}" == jobs ]]; then _values 'flag' '--json[emit the stable machine-readable array]' elif (( CURRENT >= 3 )) && [[ "${words[2]}" == resume ]]; then _values 'flag' '--profile[resume under this profile instead of prompting]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == login ]]; then _values 'flag' '--base-url[API base url]' '--api-key[API key (prompted echo-off if omitted)]' '--setup-token[capture a claude setup-token mint as a long-lived login]' '--codex[create or re-authenticate a codex profile]' '--browser[with --codex: mint a fresh codex chain via the browser]' '--yes[replace an existing long-lived token unprompted]' '-y[replace an existing long-lived token unprompted]' '--model[set the default model before signing in]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == delete ]]; then _values 'flag' '--yes[skip the confirm prompt]' '-y[skip the confirm prompt]' '--force[override the live-session guard]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == static-token ]]; then _values 'flag' '--clear[remove the long-lived token]' '--yes[skip the confirm prompt]' '-y[skip the confirm prompt]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == disable ]]; then _values 'flag' '--yes[skip the confirm prompt]' '-y[skip the confirm prompt]' elif (( CURRENT >= 4 )) && [[ "${words[2]}" == limit-reset ]]; then _values 'flag' '--list[show the resets and which one would be used; spend none]' '--yes[skip the confirm prompt]' '-y[skip the confirm prompt]' elif (( CURRENT >= 3 )) && [[ "${words[2]}" == daemon ]]; then _values 'flag' \ '--standby[wait and take over when the running daemon exits]' \ '--no-standby[explicit spelling of the default]' \ '--replace[terminate the running daemon and take over]' \ '--status[print the running daemon, or exit 1 when none is]' \ '--listen[also serve the REST API over TLS, default 0.0.0.0:8443]' \ '--cert[serve this certificate instead of the lego one; needs --key]' \ '--key[private key for --cert]' \ '--dump-openapi[print the OpenAPI document the REST API serves, and start nothing]' elif (( CURRENT >= 3 )) && [[ "${words[2]}" == status ]]; then _values 'flag' '--json[print the status snapshot as JSON]' '--all[also list disabled profiles]' '--disabled[also list disabled profiles]' elif (( CURRENT >= 3 )) && [[ "${words[2]}" == list ]]; then _values 'flag' '--all[also list disabled profiles]' '--disabled[also list disabled profiles]' fi } _clauth "$@" function __clauth_profiles clauth __complete 2>/dev/null end function __clauth_sessions clauth __complete --live-sessions 2>/dev/null end complete -c clauth -f complete -c clauth -f -n __fish_is_first_token -a "(__clauth_profiles)" -d Profile complete -c clauth -f -n __fish_is_first_token -a start -d "Launch claude with that profile's runtime" complete -c clauth -f -n __fish_is_first_token -a login -d "Log in via browser OAuth or an API key" complete -c clauth -f -n __fish_is_first_token -a capture -d "Save the login Claude Code is using now as a new profile" complete -c clauth -f -n __fish_is_first_token -a delete -d "Remove a profile and its credentials" complete -c clauth -f -n __fish_is_first_token -a disable -d "Hide a profile from auto-switch and usage polling" complete -c clauth -f -n __fish_is_first_token -a enable -d "Restore a disabled profile" complete -c clauth -f -n __fish_is_first_token -a limit-reset -d "Spend a banked usage-limit reset on a codex account" complete -c clauth -f -n __fish_is_first_token -a rolling-token -d "Serve a profile a rolling token from its usage chain" complete -c clauth -f -n __fish_is_first_token -a static-token -d "Restore the static setup-token mint, or --clear the long-lived token" complete -c clauth -f -n __fish_is_first_token -a which -d "Print profile owning the loaded credentials" complete -c clauth -f -n __fish_is_first_token -a list -d "List accounts as a table with per-profile usage" complete -c clauth -f -n __fish_is_first_token -a jobs -d "List the delegate jobs clauth is holding" complete -c clauth -f -n __fish_is_first_token -a switch -d "Switch the global account, or move a live session to another profile" complete -c clauth -f -n __fish_is_first_token -a sessions -d "List Claude Code sessions" complete -c clauth -f -n __fish_is_first_token -a resume -d "Resume a session under a chosen profile" complete -c clauth -f -n __fish_is_first_token -a info -d "Print resume command + storage path" complete -c clauth -f -n __fish_is_first_token -a completions -d "Emit shell completion script" complete -c clauth -f -n __fish_is_first_token -a daemon -d "Run the headless scheduler with no TUI" complete -c clauth -f -n __fish_is_first_token -a devices -d "Pair, list, grant sessions to, and revoke the devices that may call the REST API" complete -c clauth -f -n __fish_is_first_token -a status -d "Print the usage / auto-switch snapshot as JSON" complete -c clauth -f -n __fish_is_first_token -a mcp -d "Run the stdio MCP server" complete -c clauth -f -n __fish_is_first_token -a herdr -d "Install the herdr plugin, read its knobs, or uninstall it" complete -c clauth -f -n "__fish_seen_subcommand_from herdr" -a install -d "Install the plugin and wire it into herdr's config" complete -c clauth -f -n "__fish_seen_subcommand_from herdr" -a uninstall -d "Remove the plugin and the config lines it added" complete -c clauth -f -n "__fish_seen_subcommand_from herdr" -a config -d "Print one herdr knob" complete -c clauth -f -n "__fish_seen_subcommand_from config" -a get -d "Print the knob value on one line" complete -c clauth -f -n "__fish_seen_subcommand_from get" -a "popup_width pane_tag tag_watch_secs border_label delegate_dot delegate_row_text" -d "Knob name" complete -c clauth -f -n "__fish_seen_subcommand_from herdr; and __fish_seen_subcommand_from install" -a --key -d "Key that opens the dashboard" complete -c clauth -f -n "__fish_seen_subcommand_from herdr; and __fish_seen_subcommand_from install" -a --no-config -d "Leave herdr's config.toml alone" complete -c clauth -f -n "__fish_seen_subcommand_from herdr; and __fish_seen_subcommand_from install" -a --yes -d "Skip both confirm prompts" complete -c clauth -f -n "__fish_seen_subcommand_from herdr; and __fish_seen_subcommand_from uninstall" -a --no-config -d "Leave herdr's config.toml alone" complete -c clauth -f -n "__fish_seen_subcommand_from herdr; and __fish_seen_subcommand_from uninstall" -a --yes -d "Skip both confirm prompts" complete -c clauth -f -n __fish_is_first_token -a proxy -d "Register clauth-compatible proxies and check them against the contract" complete -c clauth -f -n "__fish_seen_subcommand_from proxy" -a list -d "Show every clauth proxy on PATH or registered, with its live state" complete -c clauth -f -n "__fish_seen_subcommand_from proxy" -a enable -d "Record a proxy found on PATH, for the daemon to run" complete -c clauth -f -n "__fish_seen_subcommand_from proxy" -a disable -d "Stop running a proxy, keeping its port, admin token and state" complete -c clauth -f -n "__fish_seen_subcommand_from proxy" -a check -d "Check a running proxy against the clauth proxy contract" complete -c clauth -f -n "__fish_seen_subcommand_from proxy; and __fish_seen_subcommand_from enable" -a --port -d "Loopback port to serve on, first enable only" complete -c clauth -f -n "__fish_seen_subcommand_from proxy; and __fish_seen_subcommand_from list" -a --json -d "Emit the stable machine-readable array" complete -c clauth -f -n "__fish_seen_subcommand_from proxy; and __fish_seen_subcommand_from check" -a --admin-token-file -d "File holding the proxy admin token" complete -c clauth -f -n "__fish_seen_subcommand_from proxy; and __fish_seen_subcommand_from check" -a --key-file -d "File holding an inference key of one of its accounts" complete -c clauth -f -n "__fish_seen_subcommand_from proxy; and __fish_seen_subcommand_from check" -a --destructive -d "Also run the mutating routes for real on this account" complete -c clauth -F -n 'set -l t (commandline -opc); and contains -- "$t[-1]" --admin-token-file --key-file' complete -c clauth -f -n __fish_is_first_token -a --theme -d "Force a color depth instead of auto-detecting" complete -c clauth -f -n 'set -l t (commandline -opc); and test "$t[-1]" = "--theme"' -a "full compatible" complete -c clauth -f -n "__fish_seen_subcommand_from start login capture delete disable enable rolling-token static-token; and not __fish_seen_subcommand_from proxy" -a "(__clauth_profiles)" -d Profile complete -c clauth -f -n "__fish_seen_subcommand_from limit-reset" -a "(clauth __complete --codex 2>/dev/null)" -d Profile complete -c clauth -f -n "__fish_seen_subcommand_from start" -a --isolated -d "Clean isolated runtime; drops operator config" complete -c clauth -f -n "__fish_seen_subcommand_from start" -a --with-fallback -d "Follow the fallback chain; needs a running daemon" complete -c clauth -f -n "__fish_seen_subcommand_from start" -a --auto -d "Pick the account by the models this session may run" complete -c clauth -f -n "__fish_seen_subcommand_from start" -a --explain -d "Print the account that would be launched, without launching" complete -c clauth -f -n "__fish_seen_subcommand_from which" -a --json -d "Emit JSON" complete -c clauth -f -n "__fish_seen_subcommand_from sessions" -a --json -d "Emit the stable machine-readable array" complete -c clauth -f -n "__fish_seen_subcommand_from switch; and test (count (commandline -opc)) -lt 3" -a "(__clauth_profiles)" -d Profile complete -c clauth -f -n "__fish_seen_subcommand_from switch; and test (count (commandline -opc)) -lt 3" -a "(__clauth_sessions)" -d Session complete -c clauth -f -n "__fish_seen_subcommand_from switch; and test (count (commandline -opc)) -ge 3" -a "(__clauth_profiles)" -d Profile complete -c clauth -f -n "__fish_seen_subcommand_from jobs" -a --json -d "Emit the stable machine-readable array" complete -c clauth -f -n "__fish_seen_subcommand_from sessions" -a --tokens -d "Add token totals + cost; reads every transcript in full" complete -c clauth -f -n "__fish_seen_subcommand_from resume" -a --profile -d "Resume under this profile instead of prompting" complete -c clauth -f -n "__fish_seen_subcommand_from login" -a --base-url -d "API base url" complete -c clauth -f -n "__fish_seen_subcommand_from login" -a --api-key -d "API key (prompted echo-off if omitted)" complete -c clauth -f -n "__fish_seen_subcommand_from login" -a --setup-token -d "Capture a claude setup-token mint as a long-lived login" complete -c clauth -f -n "__fish_seen_subcommand_from login" -a --codex -d "Create or re-authenticate a codex profile" complete -c clauth -f -n "__fish_seen_subcommand_from login" -a --browser -d "With --codex: mint a fresh codex chain via the browser" complete -c clauth -f -n "__fish_seen_subcommand_from login" -a --yes -d "Replace an existing long-lived token unprompted" complete -c clauth -f -n "__fish_seen_subcommand_from login" -a -y -d "Replace an existing long-lived token unprompted" complete -c clauth -f -n "__fish_seen_subcommand_from login" -a --model -d "Set default model before signing in" complete -c clauth -f -n "__fish_seen_subcommand_from delete" -a --yes -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from delete" -a -y -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from delete" -a --force -d "Override the live-session guard" complete -c clauth -f -n "__fish_seen_subcommand_from static-token" -a --clear -d "Remove the long-lived token" complete -c clauth -f -n "__fish_seen_subcommand_from static-token" -a --yes -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from static-token" -a -y -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from disable; and not __fish_seen_subcommand_from proxy" -a --yes -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from disable; and not __fish_seen_subcommand_from proxy" -a -y -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from limit-reset" -a --list -d "Show the resets and which one would be used; spend none" complete -c clauth -f -n "__fish_seen_subcommand_from limit-reset" -a --yes -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from limit-reset" -a -y -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from status" -a --json -d "Print the status snapshot as JSON" complete -c clauth -f -n "__fish_seen_subcommand_from status" -a --all -d "Also list disabled profiles" complete -c clauth -f -n "__fish_seen_subcommand_from status" -a --disabled -d "Also list disabled profiles" complete -c clauth -f -n "__fish_seen_subcommand_from list; and not __fish_seen_subcommand_from proxy" -a --all -d "Also list disabled profiles" complete -c clauth -f -n "__fish_seen_subcommand_from list; and not __fish_seen_subcommand_from proxy" -a --disabled -d "Also list disabled profiles" complete -c clauth -f -n "__fish_seen_subcommand_from daemon" -a --standby -d "Wait and take over when the running daemon exits" complete -c clauth -f -n "__fish_seen_subcommand_from daemon" -a --no-standby -d "Explicit spelling of the default" complete -c clauth -f -n "__fish_seen_subcommand_from daemon" -a --replace -d "Terminate the running daemon and take over" complete -c clauth -f -n "__fish_seen_subcommand_from daemon" -a --status -d "Print the running daemon, or exit 1 when none is" complete -c clauth -f -n "__fish_seen_subcommand_from daemon" -a --listen -d "Also serve the REST API over TLS, default 0.0.0.0:8443" complete -c clauth -f -n "__fish_seen_subcommand_from daemon" -a --cert -d "Serve this certificate instead of the lego one; needs --key" complete -c clauth -f -n "__fish_seen_subcommand_from daemon" -a --key -d "Private key for --cert" complete -c clauth -f -n "__fish_seen_subcommand_from daemon" -a --dump-openapi -d "Print the OpenAPI document the REST API serves, and start nothing" complete -c clauth -f -n "__fish_seen_subcommand_from devices" -a pair -d "Print a one-time pairing code and wait for it" complete -c clauth -f -n "__fish_seen_subcommand_from devices" -a add -d "Mint a token for a device here and print it once" complete -c clauth -f -n "__fish_seen_subcommand_from devices" -a revoke -d "Remove a device" complete -c clauth -f -n "__fish_seen_subcommand_from devices" -a allow-sessions -d "Grant a control device the sessions flag" complete -c clauth -f -n "__fish_seen_subcommand_from devices" -a --json -d "Emit the device list as JSON" complete -c clauth -f -n "__fish_seen_subcommand_from devices; and __fish_seen_subcommand_from pair add" -a --control -d "The device may switch accounts, not only read" complete -c clauth -f -n "__fish_seen_subcommand_from devices; and __fish_seen_subcommand_from pair add" -a --sessions -d "The device may mint sessions through the API" test completions::tests::codex_completion_names_are_the_codex_roster ... ok test completions::tests::install_bash_writes_script_and_sources_it_in_rc ... ok test completions::tests::print_script_supports_bash_zsh_fish ... ok test completions::tests::the_parity_scan_still_catches_a_bare_apostrophe_beside_the_escape_idiom ... ok test completions::tests::subcommand_branch_isolates_one_subcommand_or_reports_none ... ok test completions::tests::every_visible_subcommand_and_long_flag_is_offered_by_all_three_scripts ... ok test completions::tests::the_zsh_leg_would_catch_an_apostrophe_in_a_description ... ok test completions::tests::install_bash_is_idempotent_across_reruns ... ok test completions::tests::install_fish_writes_into_fish_completions_dir ... ok test completions::tests::session_stem_completion_lists_registry_stems_only ... ok test completions::tests::every_completion_script_parses_in_its_own_shell ... ok test daemon::api::agent::tests::a_bad_body_is_400_before_herdr_is_asked ... ok test daemon::api::agent::tests::a_blocked_agent_is_409_on_the_prompt_route_alone ... ok test daemon::api::agent::tests::a_prompt_runs_herdr_agent_prompt_and_logs_the_texts_length ... ok test daemon::api::agent::tests::a_view_device_is_refused_both_routes_before_herdr_is_asked ... ok test daemon::api::agent::tests::any_other_herdr_failure_is_502_with_its_output_in_the_log_not_the_body ... ok test daemon::api::agent::tests::herdr_absent_is_503_with_the_panes_sentences ... ok test daemon::api::agent::tests::herdrs_not_found_answers_are_404_pane_not_found ... ok test daemon::api::agent::tests::keys_run_herdr_pane_send_keys_in_order_and_log_their_count ... ok test daemon::api::agent::tests::the_pane_id_is_the_path_segment_decoded_once ... ok test daemon::api::chain::tests::a_chain_edit_failure_answers_500_edit_failed ... ok test daemon::api::chain::tests::a_chain_order_with_a_ghost_member_reorders_the_resolvable_members ... ok test daemon::api::chain::tests::a_held_chain_gate_refuses_each_route_with_409 ... ok test daemon::api::chain::tests::a_noop_wrap_off_still_republishes_the_feed ... ok test daemon::api::chain::tests::a_state_lock_timeout_is_503_on_each_chain_route ... ok test daemon::api::chain::tests::a_successful_chain_edit_logs_an_audit_line ... ok test daemon::api::chain::tests::a_threshold_edit_for_a_member_deleted_from_disk_is_404_and_recreates_nothing ... ok test daemon::api::chain::tests::a_threshold_edit_preserves_a_member_field_written_behind_its_back ... ok test daemon::api::chain::tests::a_threshold_edit_refuses_a_member_dropped_from_the_chain_behind_its_back ... ok test daemon::api::chain::tests::a_view_device_is_refused_every_chain_route ... ok test daemon::api::chain::tests::a_wrap_off_edit_preserves_a_roster_row_registered_behind_its_back ... ok test daemon::api::chain::tests::an_order_edit_answers_the_order_that_landed_after_a_delete_behind_its_back ... ok test daemon::api::chain::tests::an_order_edit_preserves_a_roster_row_registered_behind_its_back ... ok test daemon::api::chain::tests::chain_order_refusals_leave_the_chain_on_disk_unchanged ... ok test daemon::api::chain::tests::chain_order_reorders_persists_and_republishes ... ok test daemon::api::chain::tests::chain_threshold_refusals ... ok test daemon::api::chain::tests::chain_threshold_sets_persists_and_republishes ... ok test daemon::api::chain::tests::chain_wrap_off_toggles_persists_and_republishes ... ok test daemon::api::create::tests::agent_name_fits_herdrs_rule_past_p9 ... ok test daemon::api::create::tests::a_hung_agent_start_times_out_closes_and_answers_502 ... ok test daemon::api::create::tests::a_kind_reaches_agent_start_with_that_kind ... ok test daemon::api::create::tests::a_profile_runs_clauth_start_and_answers_null_status ... ok test daemon::api::create::tests::a_refused_pane_run_closes_and_answers_502 ... ok test daemon::api::create::tests::a_tab_create_that_does_not_answer_is_logged_and_503 ... ok test daemon::api::create::tests::a_tab_create_with_a_non_envelope_stdout_is_502 ... ok test daemon::api::create::tests::agent_start_gets_the_long_deadline_while_other_calls_keep_the_short_one ... ok test daemon::api::create::tests::agent_start_server_not_running_closes_and_answers_503 ... ok test daemon::api::create::tests::an_unparseable_profiles_toml_answers_500_and_logs ... ok test daemon::api::create::tests::bare_claude_starts_kind_claude_and_reads_back_blocked ... ok test daemon::api::create::tests::herdr_absent_is_503_and_stops ... ok test daemon::api::devices::tests::a_device_name_takes_the_profile_charset_trimmed ... ok test daemon::api::devices::tests::a_device_rows_debug_never_renders_its_digest ... ok test daemon::api::create::tests::herdr_refusals_map_and_close_the_tab ... ok test daemon::api::create::tests::the_audit_line_names_device_form_cwd_tab_and_pane ... ok test daemon::api::devices::tests::a_generated_token_is_64_lowercase_hex ... ok test daemon::api::create::tests::the_config_key_is_read_fresh_per_request ... ok test daemon::api::create::tests::the_cwd_is_sanitized_in_the_audit_line ... ok test daemon::api::create::tests::the_gate_order_is_key_then_grant_and_a_view_device_gets_the_table_refusal ... ok test daemon::api::create::tests::validation_refusals_each_name_their_field ... ok test daemon::api::devices::tests::a_downgrade_minted_legacy_file_takes_over_the_legacy_device ... ok test daemon::api::devices::tests::a_failed_store_write_keeps_the_legacy_file ... ok test daemon::api::devices::tests::a_legacy_file_from_before_the_tier_field_imports_as_control ... ok test daemon::api::devices::tests::a_legacy_file_of_any_tier_but_control_is_neither_imported_nor_served ... ok test daemon::api::devices::tests::a_lost_token_line_with_a_removed_device_pins_its_sentence ... ok test daemon::api::devices::tests::a_lost_token_line_with_a_write_error_and_a_failed_revoke_pins_its_sentence ... ok test daemon::api::devices::tests::a_lost_token_line_with_a_write_error_pins_the_cause_and_removal ... ok test daemon::api::devices::tests::a_pre_sessions_row_loads_false_and_reserializes_the_field ... ok test daemon::api::devices::tests::a_revoked_device_no_longer_authenticates ... ok test daemon::api::devices::tests::a_lost_token_line_with_a_failed_revoke_names_the_remove_command ... ok test daemon::api::devices::tests::a_revoked_legacy_token_is_not_imported_again ... ok test daemon::api::devices::tests::a_revoked_token_a_downgrade_handed_legacy_is_not_imported_again ... ok test daemon::api::devices::tests::a_token_authenticates_only_as_itself ... ok test daemon::api::devices::tests::an_empty_list_names_the_pair_command ... ok test daemon::api::devices::tests::add_refuses_a_taken_name_in_any_case ... ok test daemon::api::devices::tests::add_with_sessions_persists_the_grant ... ok test daemon::api::devices::tests::an_unparseable_stamp_renders_as_no_data ... ok test daemon::api::devices::tests::allow_sessions_grants_a_control_device_and_persists ... ok test daemon::api::devices::tests::allow_sessions_on_a_granted_device_is_a_no_op ... ok test daemon::api::devices::tests::allow_sessions_refuses_a_device_of_an_unknown_tier ... ok test daemon::api::devices::tests::allow_sessions_refuses_a_view_device ... ok test daemon::api::devices::tests::an_empty_store_is_announced_at_listener_start ... ok test daemon::api::devices::tests::an_interrupted_import_finishes_on_the_next_start ... ok test daemon::api::devices::tests::an_unreadable_store_is_announced_at_listener_start ... ok test daemon::api::devices::tests::an_unreadable_store_refuses_and_is_never_rewritten ... ok test daemon::api::devices::tests::the_legacy_name_is_reserved_in_any_case ... ok test daemon::api::devices::tests::an_unusable_legacy_file_is_not_imported_and_says_so_once ... ok test daemon::api::devices::tests::revoking_an_unknown_name_names_it ... ok 4e8f80ac991c06ce8e96077dbb4b88abb075e3d30763d078a9a5f06ab578be8e clauth: added device 'tray' (control). That token is its only copy: clauth keeps just a SHA-256 of it and cannot show it again. clauth: 'tray' may mint sessions test daemon::api::devices::tests::run_add_with_sessions_persists_the_grant ... ok test daemon::api::devices::tests::the_table_lists_sessions_yes_or_no ... ok test daemon::api::devices::tests::the_table_pairs_the_local_stamp_with_its_age ... ok test daemon::api::devices::tests::two_generations_differ ... ok test daemon::api::devices::tests::the_json_list_is_a_fixed_field_set_with_no_digest ... ok test daemon::api::devices::tests::the_legacy_token_becomes_the_legacy_control_device ... ok test daemon::api::devices::tests::no_legacy_file_is_no_import ... ok test daemon::api::devices::tests::revoke_and_allow_sessions_share_the_missing_name_sentence_and_trim ... ok test daemon::api::devices::tests::the_store_and_its_dir_are_owner_only ... ok test daemon::api::devices::tests::the_store_holds_a_digest_and_never_the_token ... ok test daemon::api::devices::tests::what_a_newer_build_wrote_survives_a_rewrite ... ok test daemon::api::events::tests::a_failed_reopen_keeps_the_live_connection_and_retries ... ok test daemon::api::events::tests::a_herdr_socket_relays_agent_status_and_reports_drop ... ok test daemon::api::events::tests::a_keepalive_is_written_after_the_injected_interval ... ok test daemon::api::events::tests::keepalive_due_is_exact ... ok test daemon::api::events::tests::a_pane_created_mid_stream_resubscribes_and_a_pane_closed_reopens_silently ... ok test daemon::api::events::tests::a_retry_after_absence_hands_back_the_snapshot ... ok test daemon::api::events::tests::a_status_frame_frames_the_pretty_feed_line_by_line ... ok test codex_login::tests::a_rejected_code_exchange_names_the_status ... ok test codex_login::tests::the_code_exchange_sends_the_five_form_pairs_and_parses_the_three_fields ... ok test daemon::api::events::tests::write_status_frames_a_trailing_newline_as_an_empty_data_line ... ok test daemon::api::http::tests::a_body_over_the_cap_is_refused_without_reading_it ... ok test daemon::api::http::tests::a_clean_close_between_requests_ends_the_connection ... ok test daemon::api::http::tests::a_content_length_padded_with_ows_still_parses ... ok test daemon::api::http::tests::a_content_length_that_is_not_bare_digits_is_malformed ... ok test daemon::api::http::tests::a_head_rendering_frames_no_body_on_any_answer ... ok test daemon::api::http::tests::a_kept_alive_response_advertises_the_budget_it_was_given ... ok test daemon::api::http::tests::a_non_bearer_scheme_presents_no_token ... ok test daemon::api::http::tests::a_non_numeric_content_length_is_malformed ... ok test daemon::api::http::tests::a_not_modified_response_is_bodyless_and_tagged ... ok test daemon::api::http::tests::a_pipelined_second_request_is_read_from_the_same_buffer ... ok test daemon::api::http::tests::a_read_timeout_mid_request_still_fails ... ok test daemon::api::http::tests::a_repeated_but_agreeing_content_length_is_accepted ... ok test daemon::api::http::tests::a_request_without_the_header_carries_no_tag ... ok test daemon::api::http::tests::a_response_states_its_connection_disposition_and_is_never_cached ... ok test daemon::api::http::tests::a_status_no_route_emits_has_no_reason_phrase ... ok test daemon::api::http::tests::a_stream_write_preserves_the_client_close_error_kind ... ok test daemon::api::http::tests::a_whole_pipeline_of_requests_is_drained_in_order ... ok test daemon::api::http::tests::an_expired_budget_is_a_clean_close_when_idle_and_a_timeout_mid_request ... ok test daemon::api::http::tests::an_idle_connection_ends_when_its_budget_runs_out ... ok test daemon::api::http::tests::an_idle_read_timeout_between_requests_keeps_waiting ... ok test daemon::api::http::tests::an_oversized_head_is_refused_before_it_is_buffered ... ok test daemon::api::http::tests::an_untagged_response_carries_no_etag ... ok test daemon::api::http::tests::bearer_scheme_is_case_insensitive_and_the_token_is_not ... ok test daemon::api::http::tests::chunked_transfer_encoding_is_refused ... ok test daemon::api::http::tests::content_length_matches_the_body ... ok test daemon::api::http::tests::disagreeing_content_lengths_are_malformed ... ok test daemon::api::http::tests::eof_before_the_body_completes_is_malformed ... ok test daemon::api::http::tests::eof_before_the_head_completes_is_malformed ... ok test daemon::api::http::tests::every_request_error_maps_to_a_client_error_status ... ok test daemon::api::http::tests::flag_accepts_the_spellings_a_client_might_send ... ok test daemon::api::http::tests::garbage_is_malformed_not_a_panic ... ok test daemon::api::http::tests::if_none_match_is_carried_through_verbatim ... ok test daemon::api::http::tests::if_none_match_is_matched_case_insensitively ... ok test daemon::api::http::tests::keep_alive_is_negotiated_per_the_request_version_and_header ... ok test daemon::api::http::tests::log_sanitizer_bounds_a_long_path ... ok test daemon::api::http::tests::log_sanitizer_flattens_control_characters ... ok test daemon::api::http::tests::only_the_401_carries_a_bearer_challenge ... ok test daemon::api::http::tests::parses_a_get_with_a_bearer_token ... ok test daemon::api::http::tests::reads_a_post_body_of_exactly_content_length ... ok test daemon::api::http::tests::splits_the_query_and_preserves_the_method_verbatim ... ok test daemon::api::http::tests::the_error_body_serializes_byte_identically_to_the_json_it_replaced ... ok test daemon::api::http::tests::the_request_summary_bounds_the_method_too ... ok test daemon::api::http::tests::too_many_headers_is_refused ... ok test daemon::api::events::tests::a_stream_emits_the_feed_and_only_on_etag_moves ... ok test daemon::api::events::tests::head_events_answers_the_stream_head_with_no_body ... ok test daemon::api::pairing::tests::a_code_and_a_redemption_never_format_their_secret ... ok test daemon::api::events::tests::herdr_absent_degrades_to_present_false_while_status_flows ... ok test daemon::api::pairing::tests::a_code_shows_as_two_fours_and_reads_back ... ok test daemon::api::pairing::tests::a_code_spells_forty_bits_five_to_a_character ... ok test daemon::api::events::tests::the_deadline_ends_the_stream_cleanly ... ok test daemon::api::events::tests::the_herdr_socket_is_resolved_once_even_as_retries_keep_connecting ... ok test daemon::api::events::tests::the_snapshot_carries_only_the_status_fields_of_a_pane ... ok test daemon::api::events::tests::the_stream_starts_without_a_feed_and_emits_it_when_it_lands ... ok test daemon::api::gateway::tests::a_view_device_reads_the_published_slot_and_the_feed_carries_the_same_object ... ok test daemon::api::pairing::tests::a_body_holding_no_code_is_400_and_costs_no_attempt ... ok test daemon::api::pairing::tests::a_burned_code_is_not_read_as_paired_by_a_later_add ... ok test daemon::api::pairing::tests::a_code_redeems_until_its_expiry_and_not_at_it ... ok test daemon::api::pairing::tests::a_code_whose_name_was_taken_is_refused_and_consumed ... ok test daemon::api::pairing::tests::a_failed_store_write_leaves_the_code_live ... ok test daemon::api::pairing::tests::a_lost_code_line_on_a_replaced_code_says_replaced ... ok test daemon::api::pairing::tests::a_lost_code_line_with_a_failed_withdraw_pins_its_sentence ... ok test daemon::api::pairing::tests::a_lost_code_line_with_a_withdrawn_code_pins_its_sentence ... ok test daemon::api::pairing::tests::a_lost_code_line_with_a_write_error_and_a_failed_withdraw_pins_its_sentence ... ok test daemon::api::pairing::tests::a_lost_code_line_with_a_write_error_and_a_replaced_code_pins_its_sentence ... ok test daemon::api::pairing::tests::a_lost_code_line_with_a_write_error_pins_the_cause_and_withdrawal ... ok test daemon::api::pairing::tests::a_new_code_replaces_the_one_waiting ... ok test daemon::api::pairing::tests::a_pairing_code_carries_the_sessions_grant ... ok test daemon::api::pairing::tests::a_redeemed_code_is_refused_the_second_time ... ok paired 'phone' (control) test daemon::api::pairing::tests::a_signal_after_the_code_paired_reports_the_pairing ... ok test daemon::api::pairing::tests::a_signal_after_the_code_was_replaced_reports_the_replacement ... ok clauth: pairing code withdrawn test daemon::api::pairing::tests::a_signal_withdraws_the_code_and_exits_128_plus_the_signal ... ok test daemon::api::pairing::tests::a_waiting_code_holds_its_name_against_add ... ok test daemon::api::pairing::tests::a_wrong_code_is_refused_and_costs_one_attempt ... ok test daemon::api::pairing::tests::generated_codes_use_the_alphabet_and_vary_at_every_position ... ok test daemon::api::pairing::tests::normalization_folds_case_separators_and_look_alikes ... ok test daemon::api::pairing::tests::normalization_refuses_what_cannot_be_a_code ... ok test daemon::api::pairing::tests::an_expired_code_holds_no_name ... ok test daemon::api::pairing::tests::a_pre_sessions_pairing_file_redeems_ungranted ... ok test daemon::api::pairing::tests::the_alphabet_is_crockford_base32 ... ok test daemon::api::pairing::tests::an_unparseable_pairing_file_is_deleted_by_the_attempt_that_finds_it ... ok test daemon::api::pairing::tests::concurrent_redemptions_of_one_code_yield_one_201 ... ok test daemon::api::pairing::tests::concurrent_wrong_codes_burn_the_code_at_the_fifth ... ok test daemon::api::pairing::tests::concurrent_wrong_codes_each_cost_one_attempt ... ok test daemon::api::pairing::tests::every_failed_redemption_answers_the_same_bytes ... ok Error: a newer `clauth devices pair` replaced this code before anyone entered it Error: the code was dropped after 5 wrong tries; run `clauth devices pair phone` for a new one Error: the code expired unused; run `clauth devices pair phone` for a new one paired 'phone' (view) test daemon::api::pairing::tests::every_other_ending_exits_one_with_its_reason ... ok test daemon::api::pairing::tests::pairing_refuses_a_name_a_device_holds ... ok test daemon::api::pairing::tests::the_201_carries_the_token_and_no_log_line_carries_a_secret ... ok test daemon::api::pairing::tests::the_fifth_wrong_try_burns_the_code ... ok test daemon::api::pairing::tests::the_pairing_file_is_owner_only_and_holds_no_code ... ok test daemon::api::pairing::tests::the_pairing_line_sanitizes_the_tier_it_read ... ok test daemon::api::pairing::tests::the_right_code_mints_a_device_with_the_pairings_tier ... ok test daemon::api::pairing::tests::the_wait_reads_each_ending ... ok test daemon::api::panes::tests::a_delegate_pid_joins_as_delegate_after_the_own_session ... ok test daemon::api::panes::tests::a_group_leader_is_the_panes_session_whatever_its_argv ... ok test daemon::api::panes::tests::a_lingering_row_joins_no_pane ... ok test daemon::api::panes::tests::a_non_clauth_member_running_start_is_a_delegate ... ok test daemon::api::pairing::tests::the_wait_ends_when_another_thread_redeems ... ok test daemon::api::panes::tests::a_pane_whose_process_info_failed_keeps_its_row_empty ... ok test daemon::api::pairing::tests::with_no_code_live_a_redemption_is_refused ... ok test daemon::api::pairing::tests::with_no_code_waiting_a_redemption_takes_no_lock ... ok test daemon::api::panes::tests::a_pane_with_no_foreground_job_keeps_its_row_beside_a_joined_pane ... ok test daemon::api::panes::tests::a_pane_without_cwd_still_lists_with_a_null_cwd ... ok test daemon::api::panes::tests::the_real_no_job_wire_parses_with_no_group_and_no_processes ... ok test daemon::api::panes::tests::a_recycled_pid_keeps_only_the_newest_row ... ok test daemon::api::panes::tests::a_windows_pane_lists_only_its_agent_root_so_no_session_joins ... ok test daemon::api::panes::tests::a_wrapper_launched_clauth_resume_is_the_panes_session ... ok test daemon::api::panes::tests::a_wrapper_launched_clauth_start_is_the_panes_session ... ok test daemon::api::panes::tests::agent_session_id_is_the_id_kind_value_or_null ... ok test daemon::api::panes::tests::head_panes_answers_the_head_only ... ok test daemon::api::panes::tests::herdr_absent_answers_200_with_the_reason_for_each_state ... ok test daemon::api::panes::tests::the_fixture_panes_join_to_the_pinned_answer ... ok test daemon::api::routes::tests::a_conditional_read_without_wait_answers_immediately ... ok test daemon::api::routes::tests::a_failed_switch_reflects_no_home_path ... ok test daemon::api::routes::tests::a_failed_switchs_context_reaches_the_log_but_not_the_body ... ok test daemon::api::routes::tests::a_lowercase_verb_is_a_method_error_not_a_silent_match ... ok test daemon::api::routes::tests::a_malformed_switch_body_is_400 ... ok test daemon::api::routes::tests::a_plain_get_rebuilds_rather_than_serving_a_torn_feed ... ok test daemon::api::routes::tests::a_poisoned_gate_does_not_wedge_the_switch_route ... ok test daemon::api::routes::tests::a_positive_wait_serves_the_first_reads_freshness_rather_than_parking ... ok test daemon::api::routes::tests::a_refused_switch_line_names_the_device ... ok test daemon::api::routes::tests::a_refused_switch_reflects_the_authored_sentence ... ok test daemon::api::routes::tests::a_revoked_device_is_refused_on_its_next_request ... ok test daemon::api::routes::tests::a_second_concurrent_switch_is_refused_immediately ... ok test daemon::api::routes::tests::a_state_lock_timeout_is_503_with_a_path_free_reason ... ok test daemon::api::routes::tests::a_switch_line_names_the_device ... ok test daemon::api::routes::tests::a_switch_to_a_clock_expired_target_does_not_invert_the_lock_order ... ok test daemon::api::routes::tests::a_target_vanishing_mid_switch_answers_refused_not_failed ... ok test daemon::api::routes::tests::a_view_device_is_refused_every_control_route ... ok test daemon::api::routes::tests::a_view_device_reads_every_view_route ... ok test codex_login::tests::the_api_key_exchange_is_best_effort ... ok test daemon::api::routes::tests::a_wait_is_not_woken_by_the_timestamp_alone ... ok test daemon::api::routes::tests::every_operation_documents_the_auth_answers_its_access_implies ... ok test daemon::api::routes::tests::every_operation_id_is_unique ... ok test daemon::api::routes::tests::a_wait_returns_as_soon_as_the_feed_changes ... ok test daemon::api::routes::tests::a_wait_skips_a_feed_that_does_not_parse ... ok test daemon::api::routes::tests::a_wrong_token_is_rejected ... ok test daemon::api::routes::tests::a_zero_wait_conditional_read_reads_before_deciding ... ok test daemon::api::routes::tests::all_equals_one_reads_the_live_stores_not_a_file_mtime ... ok test daemon::api::routes::tests::all_reveals_disabled_accounts_that_the_plain_feed_hides ... ok test daemon::api::routes::tests::an_unknown_path_is_404_and_a_wrong_method_is_405 ... ok test daemon::api::routes::tests::proxy_slot_requires_every_field ... ok test daemon::api::routes::tests::an_unknown_tier_device_is_refused_while_the_others_work ... ok test daemon::api::routes::tests::an_unreadable_device_list_refuses_every_request ... ok test daemon::api::routes::tests::every_reachable_answer_matches_the_schema_the_document_names ... ok test daemon::api::routes::tests::every_route_but_pair_refuses_an_unpaired_caller ... ok test daemon::api::routes::tests::get_proxies_publishes_the_live_slot_over_the_record ... ok test daemon::api::routes::tests::head_routes_like_get_at_the_router ... ok test daemon::api::routes::tests::health_reports_the_feed_schema ... ok test daemon::api::routes::tests::the_answer_bodies_serialize_byte_identically_to_the_json_they_replaced ... ok test daemon::api::routes::tests::the_document_names_the_bearer_scheme_queries_304_and_errors ... ok test daemon::api::routes::tests::the_openapi_document_is_identical_across_calls ... ok test daemon::api::routes::tests::the_openapi_document_matches_the_route_table_both_ways ... ok test daemon::api::routes::tests::only_the_api_v1_prefix_is_served ... ok test daemon::api::routes::tests::the_route_table_is_exactly_this ... ok test daemon::api::routes::tests::pair_is_the_one_route_an_unpaired_caller_reaches ... ok test daemon::api::routes::tests::the_template_matcher_binds_one_segment_decoded_and_nothing_else ... ok test daemon::api::routes::tests::status_falls_back_to_a_built_body_when_the_feed_is_missing ... ok test daemon::api::routes::tests::status_serves_the_on_disk_feed_verbatim ... ok test daemon::api::routes::tests::switch_relinks_and_reports_the_previous_account ... ok test daemon::api::routes::tests::switch_resolves_the_name_case_insensitively ... ok test daemon::api::routes::tests::switch_to_a_disabled_profile_is_refused ... ok test daemon::api::routes::tests::switch_to_an_unknown_profile_is_404_and_changes_nothing ... ok test daemon::api::routes::tests::the_all_query_is_tagged_and_answers_304_to_a_matching_tag ... ok test daemon::api::routes::tests::the_openapi_route_serves_the_documents_bytes ... ok test daemon::api::routes::tests::the_router_reports_the_device_it_answered ... ok test daemon::api::sessions::tests::a_bad_cursor_or_limit_is_400 ... ok test daemon::api::sessions::tests::a_history_page_serves_the_records_verbatim_paged_backward ... ok test daemon::api::sessions::tests::a_live_isolated_transcript_is_paged_by_id ... ok test daemon::api::sessions::tests::a_transcript_that_cannot_be_opened_is_404_and_logged ... ok test daemon::api::sessions::tests::an_empty_store_lists_nothing_and_the_default_limit_is_fifty ... ok test daemon::api::sessions::tests::an_unknown_or_path_shaped_id_is_404_and_a_bad_query_400 ... ok test daemon::api::sessions::tests::next_before_is_null_on_the_last_page_that_carries_rows ... ok test daemon::api::sessions::tests::the_listing_pages_newest_first_across_both_stores_with_a_round_trip_cursor ... ok test daemon::api::terminal::tests::a_closed_record_relays_then_the_socket_closes_cleanly ... ok test daemon::api::terminal::tests::a_control_attach_sends_the_panes_own_geometry ... ok test daemon::api::terminal::tests::a_forged_device_name_cannot_write_audit_lines ... ok test daemon::api::terminal::tests::a_frame_arrives_over_the_bridge ... ok test daemon::api::terminal::tests::the_accept_key_matches_the_rfc_vector ... ok test daemon::api::tests::a_client_close_on_a_stream_is_not_a_write_failure ... ok test daemon::api::tests::a_connection_is_reused_across_requests ... ok test daemon::api::tests::a_connection_survives_an_idle_gap_longer_than_the_io_timeout ... ok test daemon::api::terminal::tests::a_missing_upgrade_is_refused_with_426 ... ok test daemon::api::tests::a_failed_pairing_closes_the_connection_and_a_devices_refusal_does_not ... ok test daemon::api::tests::a_framing_error_answers_and_closes_even_on_a_persistent_connection ... ok test daemon::api::terminal::tests::a_pane_missing_from_the_snapshot_answers_404 ... ok test daemon::api::tests::a_pairing_over_tls_hands_back_a_working_token_and_logs_no_secret ... ok test daemon::api::terminal::tests::a_ping_is_answered_with_a_pong ... ok test daemon::api::tests::a_plaintext_client_gets_nothing_back ... ok test daemon::api::terminal::tests::a_post_to_the_stream_path_is_a_405 ... ok test daemon::api::terminal::tests::a_stream_ends_at_the_connection_lifetime ... ok test daemon::api::terminal::tests::a_view_only_token_cannot_send_input ... ok test daemon::api::terminal::tests::a_wrong_websocket_version_is_refused ... ok test daemon::api::tests::a_read_timeout_inside_a_tls_record_resumes ... ok test daemon::api::tests::a_real_tls_request_is_served_end_to_end ... ok test daemon::api::terminal::tests::absent_herdr_answers_503 ... ok test daemon::api::terminal::tests::malformed_client_frames_close_with_protocol_error ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_silent_client_is_dropped_without_holding_a_slot_for_the_whole_lifetime ... ok test daemon::api::tests::a_failing_prepare_leaves_the_incumbent_alive_under_replace ... ok test daemon::api::tests::a_missing_certificate_fails_in_prepare_not_after_the_claim ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_plain_start_serves_exactly_the_certificate_it_read_above_the_claim ... ok test daemon::api::tests::a_present_but_failing_openssl_fails_the_fixture_not_the_skip ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_promoted_standby_serves_the_certificate_that_landed_during_its_park ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_promoted_standby_whose_certificate_corrupted_fails_before_listening ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_promoted_standby_whose_certificate_vanished_fails_before_listening ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_working_lego_identity_still_loads_on_a_tailnet_bind ... ok test daemon::api::tests::a_redundant_start_imports_nothing ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_second_listener_instance_yields_to_the_daemon_holding_the_port ... ok test daemon::api::tests::an_unauthenticated_request_does_not_keep_the_connection ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::pipelined_requests_are_answered_in_order ... ok test daemon::api::tests::a_standby_with_an_unreadable_initial_certificate_exits_before_claiming ... ok 2026-10-05T00:05:25+00:00 clauth api: at 32 concurrent connections; refusing more until one finishes test daemon::api::tests::the_connection_cap_admits_up_to_the_limit_and_releases_on_drop ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::the_advertised_budget_is_the_one_enforced ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::the_events_stream_runs_until_the_lifetime_and_closes_cleanly ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::the_log_line_for_a_long_unauthenticated_path_is_bounded ... ok test daemon::api::tls::tests::a_certificate_behind_an_unsearchable_directory_keeps_todays_error ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_start_that_loses_its_port_imports_nothing ... ok test daemon::api::tests::the_request_line_names_the_device ... ok test daemon::api::tls::tests::a_hostname_that_could_escape_the_certificate_directory_is_refused ... ok test daemon::api::tls::tests::a_certificate_path_that_cannot_be_statd_keeps_todays_error ... ok test daemon::api::tls::tests::a_missing_certificate_names_the_path_it_wanted ... ok test daemon::api::tls::tests::a_missing_certificate_on_a_tailnet_bind_becomes_the_tailscale_refusal ... ok test daemon::api::tls::tests::a_leaf_only_cert_gains_the_issuer ... ok test daemon::api::tls::tests::a_missing_key_names_the_path_it_wanted ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tls::tests::a_missing_issuer_file_is_fine ... ok test daemon::api::tls::tests::a_real_fqdn_is_accepted ... ok test daemon::api::tests::a_start_that_serves_imports_the_legacy_token ... ok test daemon::api::tls::tests::an_empty_certificate_file_is_an_error_not_an_empty_chain ... ok test daemon::api::tls::tests::an_explicit_cert_ignores_an_issuer_file_beside_it ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::a_tailnet_bind_refuses_on_reload_when_the_lego_certificate_is_gone ... ok test daemon::api::tests::a_tailnet_bind_without_a_certificate_refuses_with_the_tailscale_route ... ok test daemon::api::tls::tests::an_ipv4_mapped_tailnet_address_canonicalizes_to_the_ipv4_range ... ok test daemon::api::tls::tests::an_issuer_already_in_the_leaf_file_is_not_duplicated ... ok test daemon::api::tls::tests::an_over_long_hostname_is_refused ... ok test daemon::api::tls::tests::an_unparseable_certificate_on_a_tailnet_bind_keeps_todays_error ... ok test daemon::api::tls::tests::cert_source_is_explicit_only_when_both_files_are_named ... ok test daemon::api::tls::tests::keys_load_in_every_encoding_lego_might_have_written ... ok test daemon::api::tls::tests::lego_paths_use_legos_naming ... ok test daemon::api::tls::tests::tailscale_range_matches_only_tailscale_assigned_addresses ... ok test daemon::api::tests::a_tls_failed_start_imports_nothing ... ok test daemon::api::tests::a_tls_failed_start_writes_no_device_list ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::an_explicit_certificate_pair_on_a_tailnet_bind_builds_a_config ... ok 2026-10-05T00:05:25+00:00 clauth tests: `openssl` is not on PATH — SKIPPING every test that needs a certificate, which is all TLS coverage there is. Set CLAUTH_REQUIRE_TLS_FIXTURE=1 to make this a failure instead test daemon::api::tests::prepare_leaves_the_port_unbound ... ok test daemon::api::tls::tests::a_malformed_tls_config_refuses_rather_than_reverting_to_the_default ... ok 2026-10-05T00:05:25+00:00 clauth daemon: tls.json is schema 99 (this build knows 1) test daemon::api::tls::tests::a_newer_schema_is_still_read ... ok test daemon::api::tls::tests::an_edited_cert_dir_is_honored_across_restarts ... ok test daemon::api::tls::tests::an_fqdn_failure_on_a_non_tailnet_bind_stays_the_lookup_error ... ok test daemon::api::tls::tests::an_fqdn_failure_on_a_tailnet_bind_becomes_the_tailscale_refusal ... ok test daemon::api::tls::tests::the_default_certificate_directory_matches_the_platform ... ok test daemon::api::tls::tests::tls_config_is_owner_only ... ok test daemon::api::tls::tests::tls_config_is_written_with_the_platform_default_on_first_use ... ok test daemon::gateway::tests::a_below_floor_stopping_slot_carries_the_version_read ... ok test daemon::gateway::tests::a_changed_binary_stops_the_running_gateway_once_and_spawns_the_new_one_once ... ok test daemon::gateway::tests::a_check_cancelled_before_it_starts_is_cancelled_not_a_timeout_and_never_restarts ... ok test daemon::gateway::tests::a_check_that_times_out_keeps_the_child ... ok test daemon::gateway::tests::a_config_gaining_the_admin_table_restarts_the_gateway_once_without_a_restart_count ... ok test daemon::gateway::tests::a_config_that_becomes_unparseable_keeps_the_child ... ok test daemon::gateway::tests::a_config_that_had_the_admin_table_at_spawn_keeps_the_child ... ok test daemon::gateway::tests::a_config_whose_admin_shape_was_not_a_table_at_spawn_does_not_restart_on_a_gained_table ... ok test daemon::gateway::tests::a_daemon_whose_own_start_token_is_unreadable_leaves_the_hold ... ok test daemon::gateway::tests::a_first_step_spawns_one_gateway_with_every_store_under_clauth_and_reads_its_version ... FAILED test daemon::gateway::tests::a_foreign_version_with_a_newline_enters_the_log_through_debug ... ok test daemon::gateway::tests::a_gained_table_refused_then_fixed_restarts_once ... ok test daemon::gateway::tests::a_gained_table_shaped_as_clauths_own_restarts ... ok test daemon::gateway::tests::a_gained_table_whose_check_is_refused_keeps_the_child_and_logs_once ... ok test daemon::gateway::tests::a_gateway_below_the_floor_is_stopped_and_held_until_its_binary_changes ... ok test daemon::gateway::tests::a_gateway_ignoring_sigterm_is_killed_at_its_drain_bound ... ok test daemon::gateway::tests::a_gateway_that_never_answers_reads_unhealthy_and_keeps_running ... ok test daemon::gateway::tests::a_hold_naming_another_instance_is_removed_and_ignored ... FAILED test daemon::gateway::tests::a_hold_naming_this_daemon_holds_the_gateway_off ... FAILED test daemon::gateway::tests::a_hold_read_error_is_logged_once_per_change ... ok test daemon::gateway::tests::a_hold_stops_the_running_gateway ... FAILED test daemon::gateway::tests::a_killed_gateway_restarts_after_its_backoff ... ok test daemon::gateway::tests::a_misconfigured_gateway_logs_its_reason_once ... ok test daemon::gateway::tests::a_missing_binary_is_named_and_picked_up_once_it_exists ... ok test daemon::gateway::tests::a_missing_binary_line_names_the_binary_and_the_fix ... ok test daemon::gateway::tests::a_missing_check_binary_keeps_the_child_and_names_the_binary ... ok test daemon::gateway::tests::a_recorded_pid_whose_start_differs_is_never_signalled ... ok test daemon::gateway::tests::a_refusal_fixed_through_the_stub_restarts_once_the_bound_elapses ... ok test daemon::gateway::tests::a_shunt_already_answering_on_the_port_blocks_the_spawn_until_it_leaves ... ok test daemon::gateway::tests::a_shutdown_during_an_underway_stop_sends_no_second_sigterm ... ok 2026-10-05T00:05:37+00:00 clauth daemon: started the shunt gateway (pid 34470) on port 56609 2026-10-05T00:05:43+00:00 clauth daemon: stopping the shunt gateway (pid 34470): the daemon is exiting 2026-10-05T00:05:43+00:00 clauth daemon: the shunt gateway (pid 34470) stopped (signal 15) test daemon::gateway::tests::a_shutdown_preempts_a_probe_and_stops_the_gateway_inside_the_budget ... ok test daemon::gateway::tests::a_shutdown_that_misses_its_budget_is_logged ... ok test daemon::gateway::tests::a_skipped_lines_memo_names_the_env_file_and_clears_on_a_clean_spawn ... ok test daemon::gateway::tests::a_spawn_error_reason_names_the_binary ... ok test daemon::gateway::tests::a_step_trims_an_oversized_gateway_log_to_its_tail ... ok test daemon::gateway::tests::a_stop_left_running_by_an_exiting_daemon_is_finished_at_its_recorded_deadline ... FAILED test daemon::gateway::tests::a_supervisor_that_panics_is_logged_as_a_panic ... ok test daemon::gateway::tests::a_wedged_listener_on_the_port_reads_foreign_and_no_answer ... ok test daemon::gateway::tests::a_written_hold_names_the_pid_the_sidecar_stamps ... FAILED test daemon::gateway::tests::every_state_serializes_to_its_fixture ... ok test daemon::gateway::tests::a_written_hold_reads_back_as_this_daemon_and_stays ... FAILED test daemon::gateway::tests::an_edit_that_does_not_gain_the_admin_table_keeps_the_child ... ok test daemon::gateway::tests::an_env_file_with_skipped_lines_says_which_once ... ok test daemon::gateway::tests::an_orphan_matching_its_recorded_start_is_stopped_before_a_fresh_spawn ... FAILED test daemon::gateway::tests::the_drain_bound_is_the_env_then_the_config_then_shunts_default ... ok test daemon::gateway::tests::an_unchanged_refusal_rechecked_twice_logs_once ... ok test daemon::gateway::tests::an_unparseable_hold_is_removed_and_ignored ... FAILED test daemon::gateway::tests::an_unreadable_record_keeps_a_healthy_gateway_running ... ok test daemon::gateway::tests::disabled_or_a_missing_config_runs_nothing_and_says_which ... ok test daemon::gateway::tests::disabled_wins_over_a_hold_naming_this_daemon ... FAILED test daemon::gateway::tests::remove_hold_with_no_hold_is_fine ... ok test daemon::gateway::tests::something_else_answering_on_the_port_reads_foreign_and_not_shunt ... ok test daemon::gateway::tests::the_admin_table_restart_names_its_cause ... ok test daemon::gateway::tests::the_backoff_doubles_caps_at_a_minute_and_resets_after_a_healthy_minute ... ok 2026-10-05T00:05:57+00:00 clauth daemon: started the shunt gateway (pid 36430) on port 56668 2026-10-05T00:06:02+00:00 clauth daemon: stopping the shunt gateway (pid 36430): the daemon is exiting 2026-10-05T00:06:02+00:00 clauth daemon: the shunt gateway (pid 36430) stopped (signal 15) test daemon::gateway::tests::the_run_loop_probes_a_starting_gateway_at_most_once_a_poll ... ok test daemon::gateway::tests::the_slot_never_carries_an_env_value_or_the_admin_token ... ok test daemon::log_rotate::tests::absent_log_is_a_no_op ... ok test daemon::log_rotate::tests::leaves_a_small_log_untouched ... ok test daemon::log_rotate::tests::only_a_non_append_regular_file_defeats_the_cap ... ok test daemon::log_rotate::tests::trims_an_over_cap_log_to_its_tail ... ok test daemon::gateway::tests::the_stub_teardown_never_signals_a_pid_that_no_longer_names_the_stub ... FAILED 2026-10-05T00:06:03+00:00 clauth daemon: started the shunt gateway (pid 36733) on port 56679 2026-10-05T00:06:05+00:00 clauth daemon: stopping the shunt gateway (pid 36733): the daemon is exiting 2026-10-05T00:06:05+00:00 clauth daemon: the shunt gateway (pid 36733) stopped (signal 15) test daemon::gateway::tests::the_supervisor_thread_stops_its_gateway_on_shutdown_and_joins ... ok test daemon::gateway::tests::turning_disabled_on_stops_the_running_gateway_with_sigterm ... ok test daemon::gateway::tests::without_a_supervisor_the_slot_reads_the_record_alone ... ok test daemon::probe::tests::fresh_stale_and_garbage_stamps ... ok test daemon::gateway::tests::write_hold_errors_without_a_daemon ... ok test daemon::gateway::tests::write_hold_errors_without_a_daemon_and_writes_0600 ... FAILED test daemon::gateway::tests::write_hold_names_a_running_daemon_whose_pid_is_unreadable ... ok test daemon::gateway::tests::write_hold_refuses_a_stale_sidecar_naming_a_live_pid ... ok test daemon::gateway::tests::writing_and_releasing_a_hold_leaves_the_record_unchanged ... FAILED test daemon::probe::tests::a_stop_leaving_no_daemon_stops_the_gateway_it_left ... FAILED test daemon::probe::tests::a_transient_probe_hold_never_forces_an_exit ... ok test daemon::probe::tests::a_won_standby_slot_is_kept_rather_than_re_taken ... ok test daemon::probe::tests::an_unreadable_lock_stands_down ... ok test daemon::probe::tests::held_lock_with_fresh_status_is_fresh ... ok test daemon::probe::tests::held_lock_with_stale_or_missing_status_is_stale ... ok test daemon::probe::tests::no_lock_file_reads_as_absent ... ok test daemon::probe::tests::no_standby_exits_rather_than_taking_the_free_slot ... ok test daemon::probe::tests::one_holder_at_a_time_and_a_waiter_takes_the_freed_lease ... ok test daemon::probe::tests::replace_refuses_a_holder_whose_pid_is_unreadable ... ok test daemon::probe::tests::replace_refuses_a_pid_that_is_not_the_running_daemon ... ok test daemon::probe::tests::replace_retries_past_a_transient_lock_reader ... ok test daemon::probe::tests::replace_starts_clean_when_no_daemon_is_running ... ok test daemon::probe::tests::the_staleness_window_sits_above_the_watchdog_deadline ... ok test daemon::probe::tests::singleton_held_separates_a_missing_lock_a_free_one_and_a_held_one ... ok test daemon::probe::tests::stop_escalates_to_sigkill_past_the_wait ... FAILED test daemon::probe::tests::stop_names_a_standby_that_took_over ... FAILED test daemon::probe::tests::stop_refuses_a_pid_that_is_not_the_running_daemon ... ok test daemon::probe::tests::stop_retries_past_a_transient_lock_reader ... ok test daemon::probe::tests::stop_terminates_the_daemon_and_leaves_the_singleton_free ... FAILED test daemon::probe::tests::stop_with_no_daemon_signals_nothing ... ok test daemon::probe::tests::the_replace_wait_claims_once_the_holder_releases ... ok test daemon::probe::tests::the_replace_wait_times_out_while_the_lock_stays_held ... ok test daemon::probe::tests::third_instance_is_redundant_and_the_promoted_standby_frees_the_slot ... ok test daemon::probe::tests::unheld_lock_reads_as_absent ... ok test daemon::proxies::tests::a_contract_major_mismatch_is_refused_naming_both ... ok test daemon::proxies::tests::a_crash_under_an_unreadable_registry_restarts_on_the_last_good_row ... ok test daemon::proxies::tests::a_daemon_stop_sends_each_proxy_exactly_one_sigterm ... ok test daemon::proxies::tests::a_disable_stops_a_running_proxy_with_one_sigterm_and_keeps_the_row ... ok test daemon::proxies::tests::a_disabled_row_and_a_missing_binary_run_nothing_and_say_which ... ok test daemon::proxies::tests::a_disabled_rows_orphan_is_stopped_by_the_next_daemon ... FAILED test daemon::proxies::tests::a_foreign_listener_on_the_port_is_refused_naming_it ... ok test daemon::proxies::tests::a_foreign_proxy_without_a_service_reads_none_not_a_sentinel ... ok test daemon::proxies::tests::a_stop_joins_every_detached_reap_stop ... ok 2026-10-05T00:06:14+00:00 clauth daemon: started proxy zcode (pid 37785) on port 56714 2026-10-05T00:06:14+00:00 clauth daemon: proxy zcode answered /health without a service; stopping it (pid 37785) 2026-10-05T00:06:14+00:00 clauth daemon: stopping proxy zcode (pid 37785): its /health names no service test daemon::proxies::tests::a_health_without_a_service_is_refused ... ok test daemon::proxies::tests::a_missing_token_runs_nothing_and_names_the_fix ... ok test daemon::proxies::tests::a_proxy_still_draining_is_finished_by_the_next_daemon_at_its_deadline ... FAILED test daemon::proxies::tests::a_removed_rows_orphan_is_stopped_by_the_next_daemon ... FAILED 2026-10-05T00:06:47+00:00 clauth daemon: cannot start proxy zcode: /nix/var/nix/builds/nix-12670-2432953799/.tmpePH2aD/stub/wrapped/clauth-zcode-proxy was cancelled while it ran test daemon::proxies::tests::a_shutdown_during_a_manifest_read_is_preempted ... ok 2026-10-05T00:06:50+00:00 clauth daemon: cannot start proxy zcode: /nix/var/nix/builds/nix-12670-2432953799/.tmpWw37Hp/stub/wrapped/clauth-zcode-proxy was cancelled while it ran test daemon::proxies::tests::a_slot_a_supervisor_owns_survives_the_sweep ... ok 2026-10-05T00:06:50+00:00 clauth daemon: cannot read the proxy registry: failed to parse /nix/var/nix/builds/nix-12670-2432953799/.tmpum0ZNA/.clauth/proxies.toml: TOML parse error at line 1, column 12 | 1 | not = [toml | ^ unclosed array, expected `]` test daemon::proxies::tests::a_slot_no_supervisor_owns_leaves_the_map_in_one_round ... ok 2026-10-05T00:06:51+00:00 clauth daemon: started proxy alpha (pid 38830) on port 56730 2026-10-05T00:06:51+00:00 clauth daemon: started proxy beta (pid 38831) on port 56732 2026-10-05T00:06:52+00:00 clauth daemon: stopping proxy alpha (pid 38830): proxy alpha is now Absent 2026-10-05T00:06:54+00:00 clauth daemon: stopping proxy beta (pid 38831): the daemon is exiting 2026-10-05T00:06:56+00:00 clauth daemon: proxy alpha (pid 38830) is still stopping; the next daemon start finishes the stop 2026-10-05T00:06:58+00:00 clauth daemon: proxy beta (pid 38831) is still stopping; the next daemon start finishes the stop test daemon::proxies::tests::a_stop_during_a_reap_stays_inside_one_budget ... ok test daemon::proxies::tests::the_proxy_memoizes_and_the_gateway_does_not ... ok 2026-10-05T00:06:58+00:00 clauth daemon: started proxy zcode (pid 39119) on port 56738 2026-10-05T00:06:58+00:00 clauth daemon: stopping proxy zcode (pid 39119): the daemon is exiting 2026-10-05T00:07:03+00:00 clauth daemon: proxy zcode (pid 39119) is still stopping; the next daemon start finishes the stop test daemon::proxies::tests::a_stop_hands_a_still_draining_child_to_a_reaper ... ok test daemon::proxies::tests::a_stopping_entry_keeps_the_contract_beside_the_version ... ok test daemon::proxies::tests::an_unreadable_registry_is_logged_once_per_distinct_error ... ok test daemon::proxies::tests::an_unreadable_registry_keeps_the_last_good_slot ... ok test daemon::status_json::tests::always_serialized_option_fields_are_required_and_skipped_ones_are_not ... ok test daemon::proxies::tests::an_unreadable_registry_publishes_no_proxies_and_names_the_error_once ... ok test daemon::proxies::tests::no_proxy_debug_prints_the_token ... ok 2026-10-05T00:07:05+00:00 clauth daemon: started proxy alpha (pid 39897) on port 56761 2026-10-05T00:07:06+00:00 clauth daemon: stopping proxy alpha (pid 39897): proxy alpha is now Disabled 2026-10-05T00:07:07+00:00 clauth daemon: proxy alpha (pid 39897) stopped (signal 15) 2026-10-05T00:07:10+00:00 clauth daemon: started proxy beta (pid 40059) on port 56766 2026-10-05T00:07:10+00:00 clauth daemon: started proxy alpha (pid 40095) on port 56764 2026-10-05T00:07:10+00:00 clauth daemon: stopping proxy alpha (pid 40095): the daemon is exiting 2026-10-05T00:07:10+00:00 clauth daemon: stopping proxy beta (pid 40059): the daemon is exiting 2026-10-05T00:07:14+00:00 clauth daemon: proxy beta (pid 40059) is still stopping; the next daemon start finishes the stop 2026-10-05T00:07:14+00:00 clauth daemon: proxy alpha (pid 40095) is still stopping; the next daemon start finishes the stop kill: '39897': No such process test daemon::proxies::tests::the_coordinator_follows_the_registry_and_stops_in_one_budget ... ok test daemon::proxies::tests::the_manifest_is_read_once_per_binary_identity ... ok 2026-10-05T00:07:15+00:00 clauth daemon: started proxy alpha (pid 40346) on port 56775 2026-10-05T00:07:15+00:00 clauth daemon: stopping proxy alpha (pid 40346): the daemon is exiting 2026-10-05T00:07:15+00:00 clauth daemon: proxy alpha (pid 40346) stopped (signal 9) test daemon::proxies::tests::the_orphan_sweep_skips_a_service_its_reaper_owns ... ok test daemon::proxies::tests::the_spawn_sets_argv_env_and_cwd ... ok test daemon::proxies::tests::the_stop_bound_is_the_manifest_drain_plus_the_margin ... ok test daemon::proxies::tests::the_supervisors_log_and_marker_are_0600_and_the_dir_0700 ... ok 2026-10-05T00:07:18+00:00 clauth daemon: started proxy alpha (pid 40720) on port 56788 2026-10-05T00:07:18+00:00 clauth daemon: started proxy beta (pid 40761) on port 56789 2026-10-05T00:07:18+00:00 clauth daemon: proxy alpha (pid 40720) exited (signal 9); restarting in 1s 2026-10-05T00:07:18+00:00 clauth daemon: started proxy alpha (pid 40806) on port 56788 test daemon::proxies::tests::two_proxies_run_side_by_side_and_each_restarts_alone ... ok test daemon::status_json::tests::build_status_auth_status_ok_expired_broken ... ok test daemon::status_json::tests::build_status_auth_status_types_the_hybrid_on_its_credential ... ok test daemon::status_json::tests::build_status_auto_start_queue_drops_switch_grade_kick_blocked_members ... ok test daemon::status_json::tests::build_status_auto_start_queue_positions_and_null_cases ... ok test daemon::status_json::tests::build_status_does_not_re_age_a_plan_only_rewrite ... ok test daemon::status_json::tests::build_status_fallback_membership_and_armed ... ok test daemon::status_json::tests::build_status_hides_disabled_by_default_and_shows_with_include_disabled ... ok test daemon::status_json::tests::build_status_keeps_a_disabled_active_visible_so_active_profile_never_dangles ... ok test daemon::status_json::tests::build_status_keeps_a_generic_api_key_countdown_over_a_maxed_oauth_cache ... ok test daemon::status_json::tests::build_status_leaves_a_never_fetched_profile_unknown ... ok test daemon::status_json::tests::build_status_nulls_a_past_derived_next_refresh ... ok test daemon::status_json::tests::build_status_nulls_next_refresh_for_a_spent_skipped_account ... ok test daemon::status_json::tests::build_status_pending_switch_reflects_live_signal ... ok test daemon::status_json::tests::build_status_prefers_the_oauth_leg_when_both_stores_carry_a_name ... ok test daemon::status_json::tests::build_status_publishes_the_third_party_legs_own_status ... ok test daemon::status_json::tests::every_rest_body_schema_agrees_with_its_wire_shape ... ok test daemon::status_json::tests::fallback_object_matches_legacy_json_bytes ... ok test daemon::status_json::tests::build_status_reports_a_recorded_dead_credential_without_a_daemon ... ok test daemon::status_json::tests::build_status_rolling_token_is_false_for_a_misfill ... ok test daemon::status_json::tests::status_body_matches_legacy_json_bytes ... ok test daemon::status_json::tests::build_status_rolling_token_is_the_sidecar_content_not_the_config_flag ... ok test daemon::status_json::tests::build_status_stale_flags_a_deep_slot_stuck_rate_limited_profile ... ok test daemon::status_json::tests::build_status_stale_flags_an_overdue_cache_on_the_single_shot_path ... ok test daemon::status_json::tests::build_status_stale_reads_the_third_party_streak_for_a_member_without_oauth ... ok test daemon::status_json::tests::build_status_third_party_freshness_from_its_own_cache ... ok test daemon::status_json::tests::third_party_availability_matches_legacy_json_bytes ... ok test daemon::status_json::tests::build_status_top_level_shape_and_active ... ok 2026-10-05T00:07:19+00:00 clauth: codex refresh for 'dead' failed: chain is dead (invalidated) test daemon::status_json::tests::codex_entries_fall_back_to_the_id_token_plan_and_publish_broken ... ok test daemon::status_json::tests::published_entries_deserialize_into_the_typed_contract ... ok test daemon::status_json::tests::status_body_derives_the_single_shot_queue_anchor_from_usage_history ... ok test daemon::status_json::tests::status_body_never_leaks_a_credential ... ok test daemon::status_json::tests::status_schema_agrees_with_the_serialized_body ... ok test daemon::status_json::tests::the_codex_surface_is_additive_and_appended ... ok test daemon::status_json::tests::the_proxies_array_merges_a_live_slot_over_the_record ... ok test daemon::status_json::tests::the_proxies_array_publishes_one_record_only_entry_per_row ... ok 2026-10-05T00:07:19+00:00 clauth: skipped the daemonless status.json republish: a newer publication landed while this body was built 2026-10-05T00:07:19+00:00 clauth: skipped the daemonless status.json republish: a newer publication landed while this body was built test daemon::tests::a_daemonless_publish_yields_to_a_feed_written_after_its_build_started ... ok test daemon::tests::a_direct_feed_write_stamps_now ... ok test daemon::tests::a_non_daemon_publish_preserves_the_daemons_last_stamp ... ok test daemon::tests::a_non_daemon_publish_with_no_prior_feed_stamps_the_epoch ... ok 2026-10-05T00:07:19+00:00 clauth daemon: already running (pid unknown); exiting test daemon::tests::a_redundant_instance_exits_without_touching_the_shared_tree ... ok 2026-10-05T00:07:19+00:00 clauth daemon: gave up switching to 'beta': target is mid-fetch test daemon::tests::backoff_gate_gives_up_when_the_retry_window_closes ... ok 2026-10-05T00:07:19+00:00 clauth daemon: deferring switch to 'beta': target is mid-fetch 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'beta' test daemon::tests::busy_target_requeued_not_dropped ... ok test daemon::tests::clauth_tree_migrated_to_0700_on_boot ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_does_not_resurrect_a_deleted_row ... ok 2026-10-05T00:07:19+00:00 clauth daemon: dropping queued switch to 'b': active 'a' was re-keyed test daemon::tests::drain_pending_switch_drops_a_day_claim_repair_after_key_rejection ... ok 2026-10-05T00:07:19+00:00 clauth daemon: dropping queued switch to 'oauth': active 'tp' was re-keyed test daemon::tests::drain_pending_switch_drops_a_repaired_key_rejected_switch_away ... ok 2026-10-05T00:07:19+00:00 clauth daemon: dropping queued switch to 'beta': profile no longer exists (deleted?) test daemon::tests::drain_pending_switch_drops_a_target_deleted_after_enqueue ... ok 2026-10-05T00:07:19+00:00 clauth daemon: dropping queued switch to 'ghost': profile no longer exists (deleted?) test daemon::tests::drain_pending_switch_drops_a_vanished_target ... ok test daemon::tests::drains_exhausted_names_both_skip_triggers ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'oauth' test daemon::tests::drain_pending_switch_executes_a_producer_ordinary_record_after_same_name_conversion ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_executes_when_idle_and_clean ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched off: all accounts spent test daemon::tests::drain_pending_switch_off_does_not_resurrect_a_deleted_row ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_proceeds_over_a_logged_out_shell ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_proceeds_over_a_macos_regular_file_mirror ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_proceeds_over_a_stale_clauth_symlink ... ok 2026-10-05T00:07:19+00:00 clauth daemon: deferring switch to 'beta': active 'alpha' has unsaved credentials; resolve the divergence in the clauth TUI test daemon::tests::drain_pending_switch_skips_on_active_divergence ... ok 2026-10-05T00:07:19+00:00 clauth daemon: deferring switch to 'beta': active 'alpha' has unsaved credentials; resolve the divergence in the clauth TUI test daemon::tests::drain_pending_switch_still_defers_on_a_torn_live_file ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'oauth' test daemon::tests::drain_pending_switch_still_switches_an_ordinary_decision_beside_a_stale_mark ... ok test daemon::tests::switch_backoff_ms_grows_exponentially_and_caps ... ok test daemon::tests::redundant_reason_names_the_pid_for_the_default_and_the_queue_for_standby ... ok 2026-10-05T00:07:19+00:00 clauth daemon: reloaded config after an external change test daemon::tests::reload_if_changed_fires_on_external_mtime_change ... ok 2026-10-05T00:07:19+00:00 clauth daemon: switched to 'beta' 2026-10-05T00:07:19+00:00 clauth daemon: reloaded config after an external change test daemon::tests::rmw_switch_adopts_own_write_mtime_then_reloads_external ... ok 2026-10-05T00:07:19+00:00 clauth daemon: another instance holds the lock: standing by until it exits test daemon::tests::stand_by_tightens_the_tree_before_parking_not_after_promotion ... ok test daemon::tests::start_gives_up_at_the_wait ... ok test daemon::tests::start_reads_a_child_that_lost_the_race_as_up ... ok test daemon::tests::start_reports_a_child_that_exits_before_holding_the_lock ... ok test daemon::tests::start_reports_a_held_singleton_as_up ... ok test daemon::tests::start_runs_the_daemon_detached_into_its_log ... FAILED 2026-10-05T00:07:20+00:00 clauth daemon: deferring switch to 'beta': target is mid-fetch test daemon::tests::switch_failure_backoff_dedups_log_over_many_ticks ... ok test daemon::tests::uncapped_spenders_excludes_disabled_includes_enabled_sibling ... ok test daemon::watchdog_tests::watchdog_aborts_when_tick_stalls_past_deadline ... ok test daemon::watchdog_tests::watchdog_boundary_is_not_stalled ... ok test daemon::watchdog_tests::watchdog_does_not_abort_on_a_fresh_tick ... ok test daemon::watchdog_tests::watchdog_ignores_zero_heartbeat_during_boot ... ok test daemon::watchdog_tests::watchdog_step_aborts_a_pre_freeze_wedge_after_resume ... ok test daemon::watchdog_tests::watchdog_step_does_not_trip_a_freeze_mid_slow_tick ... ok test daemon::watchdog_tests::watchdog_step_still_aborts_a_stall_on_a_normal_poll ... ok test daemon::watchdog_tests::watchdog_step_survives_a_long_freeze ... ok test daemon::watchdog_tests::watchdog_unaccounted_absorbs_an_overshot_poll_whole ... ok test daemon::watchdog_tests::watchdog_unaccounted_boundary_is_at_the_slack ... ok test daemon::watchdog_tests::watchdog_unaccounted_is_zero_for_a_normal_poll ... ok test daemon::watchdog_tests::watchdog_unaccounted_saturates_a_short_poll ... ok test daemon::tests::the_daemon_logs_a_day_collision_once_per_change ... ok test daemon::tests::the_kill_switch_suppresses_the_listener_at_the_start_path ... ok test fallback::tests::a_day_list_blocker_names_the_first_thing_in_the_way ... ok test fallback::tests::a_day_list_reaches_the_chain_member_with_the_flag_off ... ok test daemon::tests::the_status_writer_reads_the_schedulers_own_streak_store ... ok test fallback::tests::a_reading_dead_active_is_never_switched_off ... ok test fallback::tests::a_reading_dead_member_remains_a_walk_target ... ok test daemon::tests::tick_heals_a_broken_plugin_registration ... ok test fallback::tests::a_session_snapshot_drops_a_member_the_executor_would_refuse ... ok test fallback::tests::a_session_snapshot_is_none_for_a_member_outside_the_chain ... ok test fallback::tests::a_session_snapshot_keeps_the_sessions_own_disabled_member_resolvable ... ok test fallback::tests::a_session_snapshot_needs_no_global_active_profile ... ok 2026-10-05T00:07:20+00:00 clauth daemon: reloaded config after an external change 2026-10-05T00:07:20+00:00 clauth daemon: reloaded config after an external change test daemon::tests::tick_herdr_heal_follows_the_saved_update_toggle ... FAILED test fallback::tests::a_spent_preferred_active_is_left_not_kept ... ok test fallback::tests::all_maxed_sinks_no_switch ... ok 2026-10-05T00:07:20+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:07:20+00:00 clauth daemon: deferring switch to 'beta': switch failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:07:20+00:00 clauth daemon: skipping queued switch work: tick budget or deadline spent test daemon::tests::tick_skips_the_second_drain_once_a_wedged_flock_spends_the_budget ... ok test fallback::tests::an_empty_day_list_leaves_the_flag_in_charge_at_the_chain ... ok test fallback::tests::auto_switch_broken_active_walks_away_despite_stale_headroom ... ok test fallback::tests::auto_switch_broken_active_without_viable_member_never_wraps_off ... ok test fallback::tests::auto_switch_broken_and_exhausted_active_still_wraps_off ... ok test fallback::tests::auto_switch_canceled_active_walks_away_despite_headroom ... ok test fallback::tests::auto_switch_disabled_active_still_evaluates_instead_of_wedging ... ok test fallback::tests::auto_switch_does_not_hop_between_two_spend_armed_members ... ok test fallback::tests::auto_switch_ignores_expired_window_active ... ok test fallback::tests::auto_switch_kick_rejected_active_walks_away_despite_idle_usage ... ok test fallback::tests::auto_switch_missing_util_is_not_exhausted ... ok test fallback::tests::auto_switch_never_lands_on_a_gate_on_model_blocked_member ... ok test fallback::tests::auto_switch_never_targets_a_kick_rejected_member ... ok test fallback::tests::auto_switch_non_sink_active_migrates_to_sink_once ... ok test fallback::tests::auto_switch_over_budget_active_switches_off_by_default ... ok test fallback::tests::auto_switch_picks_a_spend_armed_member_when_the_chain_is_spent ... ok test fallback::tests::auto_switch_picks_member_with_headroom ... ok test fallback::tests::auto_switch_prefers_fresh_member_over_earlier_stale_one ... ok test fallback::tests::auto_switch_prefers_member_clear_of_every_weekly_window ... ok test fallback::tests::auto_switch_reading_dead_active_walks_away_despite_no_windows ... ok test fallback::tests::auto_switch_returns_none_when_active_below_threshold ... ok test fallback::tests::auto_switch_scoped_blocked_active_hops_to_fully_clear_member ... ok test fallback::tests::auto_switch_scoped_blocked_active_stays_put_when_no_fully_clear_member ... ok test fallback::tests::auto_switch_scoped_gate_off_keeps_a_model_blocked_member_in_rotation ... ok test fallback::tests::auto_switch_serving_last_resort_active_stays_put_instead_of_paying ... ok test fallback::tests::auto_switch_serving_last_resort_sink_outranks_a_spend_armed_member ... ok test fallback::tests::auto_switch_sink_loop_guard_holds ... ok test fallback::tests::auto_switch_skips_broken_member_picks_next ... ok test daemon::tests::tick_with_empty_queues_writes_status_and_leaves_active_unchanged ... ok test fallback::tests::auto_switch_skips_disabled_member_picks_next ... ok test fallback::tests::auto_switch_skips_canceled_member_picks_next ... ok test fallback::tests::a_codex_active_outside_its_chain_yields_no_snapshot ... ok test fallback::tests::auto_switch_skips_unresolvable_chain_entry ... ok test fallback::tests::auto_switch_still_picks_a_stale_member_when_no_fresh_one_has_headroom ... ok test fallback::tests::auto_switch_subscription_headroom_beats_a_spend_armed_member ... ok test fallback::tests::auto_switch_unmarked_hundred_threshold_member_is_not_a_sink ... ok test fallback::tests::auto_switch_weekly_gate_off_ignores_the_soft_line_but_not_the_hard_cap ... ok test fallback::tests::auto_switch_wrap_off_disabled_stays_put ... ok test fallback::tests::auto_switch_wrap_off_switches_off_when_chain_spent ... ok test fallback::tests::auto_switch_zero_ceiling_never_spends_even_with_the_toggle_on ... ok test fallback::tests::blocked_reason_a_real_block_outranks_stale_data ... ok test fallback::tests::blocked_reason_auth_broken_outranks_every_other_block ... ok test fallback::tests::blocked_reason_budget_spent_is_moot_with_free_5h_quota ... ok test fallback::tests::blocked_reason_budget_spent_when_billing_and_over_ceiling ... ok test fallback::tests::blocked_reason_failed_fetch_is_not_flagged_stale ... ok test fallback::tests::blocked_reason_five_hour_outranks_a_soft_weekly_block ... ok test fallback::tests::blocked_reason_five_hour_outranks_scoped_spent ... ok test fallback::tests::blocked_reason_five_hour_reports_utilization_and_reset ... ok test fallback::tests::blocked_reason_kick_rejected_outranks_a_5h_block ... ok test fallback::tests::blocked_reason_kick_rejected_when_switch_grade_with_headroom ... ok test fallback::tests::blocked_reason_none_for_a_live_member_with_headroom ... ok test fallback::tests::blocked_reason_reports_canceled_first ... ok test fallback::tests::blocked_reason_scoped_gate_off_never_claims_a_scoped_block ... ok test fallback::tests::blocked_reason_scoped_override_is_inert_while_weekly_gate_is_off ... ok test fallback::tests::blocked_reason_scoped_spent_names_the_worst_gated_window ... ok test fallback::tests::blocked_reason_stale_when_the_last_read_was_cached ... ok test fallback::tests::blocked_reason_weekly_gate_off_drops_the_soft_chip ... ok test fallback::tests::blocked_reason_weekly_hard_carries_the_7d_reset_countdown ... ok test fallback::tests::blocked_reason_weekly_hard_outranks_a_5h_block ... ok test fallback::tests::blocked_reason_weekly_hard_outranks_a_kick_block ... ok test fallback::tests::blocked_reason_weekly_soft_below_the_hard_cap_still_shows ... ok test fallback::tests::budget_spent_blocking_needs_5h_exhaustion_too ... ok test fallback::tests::budget_spent_never_fires_on_a_subscription_account ... ok test fallback::tests::candidate_exclusion_and_dead_first_chip_stay_coupled ... ok test fallback::tests::demand_from_expands_opusplan_and_dedupes ... ok test fallback::tests::every_blocked_reason_variant_stays_coupled_to_candidate_excluded ... ok test fallback::tests::every_named_blocker_is_a_state_the_claim_scan_also_refuses ... ok test fallback::tests::find_recovered_prefers_member_clear_of_scoped_windows ... ok test fallback::tests::find_recovered_prefers_the_preferred_member_over_a_scoped_clear_one ... ok test fallback::tests::find_recovered_recovers_when_window_expired ... ok test fallback::tests::find_recovered_recovers_when_windowless ... ok test fallback::tests::find_recovered_returns_first_member_below_threshold ... ok test fallback::tests::find_recovered_returns_none_when_no_member_has_data ... ok test fallback::tests::find_recovered_skips_exhausted_members ... ok test fallback::tests::find_recovered_treats_missing_resets_at_as_lapsed ... ok test fallback::tests::find_recovered_uses_threshold_per_member ... ok test fallback::tests::fully_clear_target_none_when_every_member_is_blocked ... ok test fallback::tests::fully_clear_target_skips_blocked_members_and_finds_the_clear_one ... ok test fallback::tests::fully_clear_target_skips_canceled_and_disabled_members ... ok 2026-10-05T00:07:20+00:00 clauth: 'cxl2' codex rotation succeeded on the wire but the store write failed (Is a directory (os error 21)); the chain is spent, run `clauth login cxl2 --codex --browser` test fallback::tests::a_rotation_the_store_could_not_keep_is_walked_around ... ok test fallback::tests::is_exhausted_active_burn_aware_falls_back_without_rate ... ok test fallback::tests::is_exhausted_active_mode_off_matches_static_is_exhausted ... ok test fallback::tests::is_exhausted_projected_floor_blocks_a_transient_burst ... ok test fallback::tests::is_exhausted_projected_heavy_burn_crosses_cap ... ok test fallback::tests::is_exhausted_projected_horizon_cap_tightens_the_margin ... ok test fallback::tests::is_exhausted_projected_light_burn_stays_under_cap ... ok test fallback::tests::is_exhausted_projected_never_switches_later_than_static ... ok test fallback::tests::is_exhausted_projected_none_burn_falls_back_to_static_threshold ... ok test fallback::tests::lapsed_scoped_window_never_blocks ... ok test fallback::tests::model_family_keeps_every_claude_family ... ok test fallback::tests::next_auto_switch_target_ignores_store_mutation_after_snapshot ... ok test fallback::tests::next_auto_switch_target_snapshot_content_drives_the_decision ... ok test fallback::tests::next_auto_switch_target_takes_store_lock_exactly_once ... ok test fallback::tests::next_target_accepts_member_with_expired_window ... ok test fallback::tests::next_target_broken_sink_wrap_off_switches_off ... ok test fallback::tests::next_target_burn_aware_none_rate_falls_back_to_static_threshold ... ok test fallback::tests::next_target_disabled_last_resort_is_never_a_sink ... ok test fallback::tests::next_target_does_not_hop_between_two_spend_armed_members ... ok test fallback::tests::an_alibaba_member_without_a_console_is_not_key_rejected ... ok test fallback::tests::next_target_over_budget_active_can_be_told_to_keep_billing ... ok test fallback::tests::next_target_over_budget_active_parks_on_a_sink_before_halting ... ok test fallback::tests::next_target_over_budget_active_switches_off_by_default ... ok test fallback::tests::next_target_over_budget_halt_is_inert_with_the_toggle_off ... ok test fallback::tests::next_target_picks_a_spend_armed_member_when_the_chain_is_spent ... ok test fallback::tests::next_target_prefers_fresh_member_over_earlier_stale_one ... ok test fallback::tests::next_target_prefers_fully_clear_member ... ok test fallback::tests::next_target_returns_none_when_only_alternative_is_broken ... ok test fallback::tests::next_target_returns_none_when_only_alternative_is_canceled ... ok test fallback::tests::next_target_returns_none_when_only_alternative_is_disabled ... ok test fallback::tests::next_target_serving_last_resort_active_stays_put_instead_of_paying ... ok test fallback::tests::next_target_serving_last_resort_sink_outranks_a_spend_armed_member ... ok test fallback::tests::next_target_skips_broken_last_resort_member ... ok test fallback::tests::next_target_skips_broken_member_picks_next ... ok test fallback::tests::next_target_skips_canceled_member_picks_next ... ok test fallback::tests::next_target_skips_disabled_member_picks_next ... ok test fallback::tests::next_target_spend_armed_member_outranks_last_resort_parking ... ok test fallback::tests::next_target_spend_armed_member_outranks_wrap_off ... ok test fallback::tests::next_target_spend_budget_off_never_spends ... ok test fallback::tests::next_target_still_picks_a_stale_member_when_no_fresh_one_has_headroom ... ok test fallback::tests::next_target_subscription_headroom_beats_a_spend_armed_member ... ok test fallback::tests::next_target_zero_ceiling_never_spends_even_with_the_toggle_on ... ok test fallback::tests::no_sink_available_returns_none ... ok test fallback::tests::non_sink_active_migrates_to_sink_once ... ok test fallback::tests::recovery_respects_each_members_gates ... ok test fallback::tests::return_to_preferred_gated_on_active_freshness ... ok test fallback::tests::return_to_preferred_gated_on_target_clearance ... ok test fallback::tests::return_to_preferred_gated_on_target_freshness ... ok test fallback::tests::return_to_preferred_is_a_no_op_once_already_home ... ok test fallback::tests::return_to_preferred_skips_a_broken_kick_rejected_or_canceled_preferred ... ok test fallback::tests::return_to_preferred_walks_a_drifted_active_home ... ok test fallback::tests::scoped_active_trigger_stays_parked_on_a_pinned_sink ... ok test fallback::tests::scoped_gate_off_active_never_fires_the_scoped_hop ... ok test fallback::tests::scoped_label_is_matches_any_word_of_the_label ... ok test fallback::tests::scoped_line_ignores_the_override_while_the_weekly_gate_is_off ... ok test fallback::tests::scoped_windows_judge_the_chain_line_while_the_weekly_gate_is_off ... ok test fallback::tests::sink_active_maxed_stays_put ... ok test fallback::tests::sink_active_switches_to_member_with_headroom ... ok test fallback::tests::snapshot_chain_captures_thresholds_and_active ... ok test fallback::tests::snapshot_chain_none_when_active_not_in_chain ... ok test fallback::tests::snapshot_evaluation_isolates_predicate_reads_from_between_pass_mutation ... ok test fallback::tests::soonest_resume_all_exhausted_at_the_hard_cap_and_on_the_5h_line ... ok test fallback::tests::soonest_resume_empty_chain_is_none ... ok test fallback::tests::soonest_resume_keys_on_the_weekly_hard_cap_not_the_soft_line ... ok test fallback::tests::soonest_resume_none_when_a_member_window_expired ... ok test fallback::tests::soonest_resume_none_when_chain_member_missing_profile ... ok test fallback::tests::soonest_resume_none_when_one_member_recovered ... ok test fallback::tests::soonest_resume_none_when_the_only_chain_member_is_a_dead_one_over_threshold ... ok test fallback::tests::soonest_resume_picks_the_soonest_reset ... ok test fallback::tests::soonest_resume_skips_a_canceled_member_holding_an_idle_window ... ok test fallback::tests::soonest_resume_skips_a_disabled_member_holding_an_idle_window ... ok test fallback::tests::soonest_resume_skips_an_auth_broken_member_holding_an_idle_window ... ok test fallback::tests::soonest_resume_ties_keep_earlier_chain_order ... ok test fallback::tests::soonest_resume_uses_the_weekly_reset_for_a_weekly_dead_member ... ok test fallback::tests::spend_is_uncapped_ignores_a_sink_the_walk_cannot_reach ... ok test fallback::tests::spend_is_uncapped_only_when_nothing_can_stop_the_billing ... ok test fallback::tests::spend_room_binds_on_the_lower_of_account_cap_and_ceiling ... ok test fallback::tests::spend_room_needs_billing_actually_on_not_merely_visible ... ok test fallback::tests::spend_room_non_finite_ceiling_never_arms ... ok test fallback::tests::spend_room_refuses_when_used_is_unknown ... ok test fallback::tests::spend_room_stops_at_the_ninety_percent_margin ... ok test fallback::tests::spend_room_zero_or_negative_ceiling_never_arms ... ok test fallback::tests::start_block_is_none_exactly_when_the_switch_walk_accepts ... ok 2026-10-05T00:07:20+00:00 clauth daemon: switched to 'beta' 2026-10-05T00:07:20+00:00 clauth daemon: switched off: all accounts spent test daemon::tests::tick_drains_both_queues_when_the_flock_is_free ... ok test fallback::tests::a_key_rejected_members_day_list_claims_nothing ... ok 2026-10-05T00:07:20+00:00 clauth: codex refresh for 'cx2' failed: refresh token already used test fallback::tests::a_quarantined_codex_member_is_walked_around ... ok test daemon::tests::the_rest_api_is_disabled_only_by_exactly_one ... ok test fallback::tests::a_spent_codex_active_moves_to_the_next_member ... ok test fallback::tests::burn_aware_never_holds_the_active_where_static_switches_on_both_walks ... ok test fallback::tests::codex_members_never_arm_the_scoped_gate ... ok test fallback::tests::health_blocked_reason_reports_a_key_rejected_member ... ok test fallback::tests::next_target_never_picks_a_key_rejected_member ... ok test fallback::tests::start_block_leaves_a_console_lapsed_alibaba_member_pickable ... ok test fallback::tests::start_block_treats_a_key_rejected_third_party_member_as_auth_broken ... ok test fallback::tests::start_walk_a_known_demand_overrides_check_scoped_off ... ok test fallback::tests::start_walk_keeps_a_member_capped_on_another_family ... ok test fallback::tests::unmarked_hundred_threshold_active_no_longer_acts_as_sink ... ok test fallback::tests::start_walk_prefers_a_fresh_reading_but_still_launches_on_a_stale_one ... ok test fallback::tests::start_walk_refuses_a_non_oauth_member_only_under_with_fallback ... ok test fallback::tests::walk_order_chain_default_picks_chain_position_and_soonest_picks_the_soonest_reset ... ok test fallback::tests::walk_order_scheduler_twin_matches_the_ui_twin_in_both_directions ... ok test fallback::tests::start_walk_skips_a_member_capped_on_a_demanded_family ... ok test fallback::tests::walk_order_soonest_never_reorders_across_the_accept_pass_ladder ... ok test fallback::tests::walk_order_soonest_ranks_a_member_with_no_weekly_reset_last ... ok test fallback::tests::walk_order_soonest_recomputed_home_never_outranks_preferred ... ok test fallback::tests::walk_order_soonest_recomputed_home_parks_once_landed_on_the_soonest_member ... ok test fallback::tests::walk_order_soonest_recomputed_home_requires_clear_and_fresh_on_both_sides ... ok test fallback::tests::walk_order_soonest_recomputed_home_walks_a_healthy_active_and_chain_stays_put ... ok test fallback::tests::walk_order_soonest_recovery_orders_both_passes_unless_preferred_wins ... ok test fallback::tests::walk_order_soonest_ties_keep_chain_position ... ok test fallback::tests::weekly_accessor_pins_the_band_and_resets_garbage_to_default ... ok test fallback::tests::weekly_dead_active_is_exhausted_despite_idle_5h ... ok test fallback::tests::weekly_dead_member_is_never_a_fallback_target ... ok test fallback::tests::weekly_dead_member_is_skipped_by_the_store_walk_too ... ok test fallback::tests::weekly_dead_member_never_recovers ... ok test fallback::tests::weekly_line_is_configurable_chain_wide ... ok test fallback::tests::weekly_override_governs_the_actives_scoped_windows_too ... ok test fallback::tests::weekly_override_never_softens_the_hard_sink_and_halt_judgments ... ok test fallback::tests::weekly_override_on_a_sink_active_still_stays_put_over_paying ... ok test fallback::tests::weekly_override_on_a_sink_never_makes_the_ui_twin_pay ... ok test fallback::tests::weekly_override_tightens_and_loosens_the_member_line ... ok test fallback::tests::weekly_soft_exhausted_active_triggers_a_switch_despite_5h_headroom ... ok test fallback::tests::weekly_soft_line_gates_below_it_and_lapsed_resets_renew ... ok test fallback::tests::weekly_soft_member_is_not_a_target ... ok test fallback::tests::worst_scoped_window_for_narrows_to_the_demanded_families ... ok test fallback::tests::wrap_off_disabled_stays_put ... ok test fallback::tests::wrap_off_keys_on_the_hard_cap_in_the_store_walk_too ... ok test fallback::tests::wrap_off_keys_on_the_weekly_hard_cap_not_the_soft_line ... ok test fallback::tests::wrap_off_prefers_sink_over_off ... ok test fallback::tests::wrap_off_skips_off_when_active_has_headroom ... ok test fallback::tests::wrap_off_switches_off_when_chain_spent ... ok test fallback::tests::wrap_off_switches_off_when_unmarked_hundred_threshold_member_present ... ok test fallback::tests::start_walk_skips_what_the_switch_walk_skips ... ok test format::tests::account_tier_falls_through_an_unclassified_fetched_plan_to_the_token ... ok test format::tests::account_tier_reads_back_a_free_logins_stored_token ... ok test format::tests::account_tier_reads_the_fetched_tier_only_the_canceled_marker_is_on_the_status_line ... ok test format::tests::account_tier_reports_no_tier_for_an_unfetched_plan ... ok test format::tests::account_tier_still_renders_every_known_tier ... ok test format::tests::detail_returns_the_next_step_alone_and_falls_back_to_the_head ... ok test format::tests::every_transient_cause_renders_its_own_copy ... ok test format::tests::format_pct_drops_trailing_zero_on_whole_numbers ... ok test format::tests::format_pct_shows_fractional_percent ... ok test format::tests::line_and_toast_collapse_to_the_head_when_detail_is_absent ... ok test format::tests::local_stamp_renders_the_local_wall_clock_shape ... ok test format::tests::login_expired_shares_one_head_across_line_and_toast ... ok test format::tests::only_the_relogin_causes_read_as_permanent ... ok test format::tests::only_the_status_bearing_form_names_the_status ... ok test format::tests::refresh_transient_carries_the_error_in_the_detail ... ok test format::tests::render_start_walk_matches_the_approved_layout ... ok test format::tests::resolve_in_tui_names_the_clauth_surface ... ok test format::tests::self_prescribing_arm_refuses_every_suffixed_retry_at_construction ... ok test format::tests::start_block_labels_are_the_tui_chip_words ... ok test format::tests::start_lines_match_the_approved_copy ... ok test format::tests::the_retry_hint_follows_the_kind_not_the_call_site ... ok test format::tests::the_split_state_sentences_render_their_ruled_bytes ... ok test format::tests::threshold_tokens_formats_m_k_and_plain ... ok test fallback::tests::start_walk_soonest_reset_picks_by_weekly_reset_with_the_freshness_pass_intact ... ok test fallback::tests::start_walk_takes_chain_order_over_headroom ... ok test fallback::tests::start_walk_with_no_demand_keeps_the_blanket_check_scoped_gate ... ok test fallback::tests::start_walk_with_nothing_startable_returns_no_pick_and_every_verdict ... ok test fallback::tests::the_codex_chain_reads_only_the_codex_state ... ok test fallback::tests::walk_blocker_reports_a_key_rejected_member ... ok test fallback::tests::walk_excluded_rejects_a_key_rejected_member_not_a_console_lapse ... ok test fallback::tests::walk_order_soonest_and_burn_aware_leave_each_other_identical ... ok test gateway::tests::a_base_url_names_the_gateway_by_its_probe_address_and_port ... ok test gateway::tests::a_check_refusals_debug_never_prints_its_stderr ... ok test feature_coverage::features_have_test_coverage ... ok test gateway::tests::a_check_that_outruns_its_bound_is_stopped_and_writes_nothing ... ok test gateway::tests::a_check_that_passes_after_writing_past_the_cap_lands_its_edit ... ok test gateway::tests::a_checks_stderr_is_capped ... ok test gateway::tests::a_checks_stderr_is_read_within_the_checks_bound ... ok test gateway::tests::a_closed_port_reads_as_silent ... ok test gateway::tests::a_codex_file_at_a_custom_codex_home_stays ... ok test gateway::tests::a_codex_home_set_only_in_the_daemons_record_keeps_its_auth_json ... FAILED test gateway::tests::a_collision_refuses_the_whole_move_leaving_both_sides_byte_identical ... ok test gateway::tests::a_config_edited_during_the_check_is_never_overwritten ... ok test gateway::tests::a_config_that_does_not_parse_names_the_line_never_its_text ... ok test gateway::tests::a_daemon_holding_the_singleton_with_no_record_refuses_the_plan_and_move ... ok test gateway::tests::a_daemon_whose_recorded_codex_home_is_relative_refuses_with_the_daemon_copy ... FAILED test gateway::tests::a_daemon_with_no_env_record_is_the_pool_reads_own_typed_error ... ok test gateway::tests::a_destination_appearing_after_the_collision_check_is_never_overwritten ... ok test gateway::tests::a_dir_store_at_either_codex_home_stays_whole ... ok test gateway::tests::a_dir_store_file_hard_linked_onto_the_codex_login_stays ... ok test gateway::tests::a_dir_store_moves_only_the_account_files_and_lists_the_rest_as_left_behind ... ok test gateway::tests::a_directory_at_the_pinned_path_still_reads_the_pool ... ok test gateway::tests::a_failing_check_leaves_the_config_byte_identical ... ok test gateway::tests::a_failure_after_the_copy_leaves_the_credential_at_both_places_and_says_so ... ok test gateway::tests::a_failure_part_way_leaves_each_credential_at_its_source_or_destination ... ok test gateway::tests::a_file_systemd_refuses_whole_names_the_line_never_its_text ... ok test gateway::tests::a_hand_edited_relative_record_fails_the_load ... ok test gateway::tests::a_dir_store_at_the_codex_home_stays_whole ... ok test gateway::tests::a_hard_link_onto_the_codex_login_named_by_codex_auth_file_stays ... ok test gateway::tests::a_link_inside_a_store_is_left_behind_and_the_files_around_it_move ... ok test gateway::tests::a_listener_that_drops_the_connection_is_not_silent ... ok test gateway::tests::a_listener_that_never_answers_fails_the_probe_within_its_bound ... ok test gateway::tests::a_lower_case_store_key_on_unix_leaves_its_file_untouched ... ok test gateway::tests::a_missing_admin_token_is_the_typed_error_and_nothing_is_written ... ok test gateway::tests::a_missing_shunt_binary_is_named_and_nothing_is_written ... ok test gateway::tests::a_named_codex_file_moves_in_unless_it_is_another_owners_login ... ok test gateway::tests::a_quoted_sandbox_path_round_trips_through_the_env_file ... ok test gateway::tests::a_re_minted_admin_token_differs_from_the_first ... ok test gateway::tests::a_record_naming_this_process_without_the_singleton_held_falls_back ... FAILED test gateway::tests::a_record_with_userprofile_resolves_a_store_default ... FAILED test gateway::tests::a_refused_pool_read_is_the_unreachable_typed_error ... ok test gateway::tests::a_non_json_pool_body_is_its_own_typed_error ... ok test gateway::tests::a_non_utf8_env_value_round_trips_through_the_record_losslessly ... ok test gateway::tests::a_pool_body_of_another_shape_is_the_unparseable_typed_error ... ok test gateway::tests::a_pool_body_that_breaks_off_is_its_own_typed_error ... ok test gateway::tests::a_relative_codex_home_refuses_the_move_naming_the_key ... ok test gateway::tests::a_saved_record_reads_back_and_is_owner_only ... ok test gateway::tests::a_second_call_never_duplicates_the_entry ... ok test gateway::tests::a_short_admin_token_file_is_refused_and_left_alone ... ok test gateway::tests::a_shunt_health_answer_reads_its_version ... ok test gateway::tests::a_store_default_under_a_relative_home_refuses_by_its_key ... ok test gateway::tests::a_store_of_the_wrong_kind_refuses_naming_the_kind ... ok test gateway::tests::a_relative_store_source_refuses_the_move_naming_only_its_key ... ok test gateway::tests::a_store_with_no_home_is_listed_not_refused ... ok test gateway::tests::a_symlinked_config_is_refused ... ok test gateway::tests::a_yaml_config_shunt_loads_first_refuses_adoption ... ok test gateway::tests::adoption_records_a_symlinked_configs_target_and_the_link_survives_the_edit ... ok test gateway::tests::a_relative_home_still_refuses_the_move ... ok test gateway::tests::an_admin_token_file_at_shunts_minimum_length_is_accepted ... ok test gateway::tests::an_unreadable_holder_renders_its_chain_once ... ok test gateway::tests::a_repeated_env_file_key_folds_to_its_last_assignment ... ok test gateway::tests::a_store_that_is_a_link_refuses_the_move_naming_the_link ... ok test gateway::tests::an_adopt_refuses_a_config_that_does_not_parse ... ok test gateway::tests::an_edit_for_the_wrong_step_or_an_existing_entry_plans_nothing ... ok test gateway::tests::an_empty_codex_home_is_unset ... ok test gateway::tests::an_env_file_names_each_store_source_and_a_blank_value_reads_as_shunt_reads_it ... ok test gateway::tests::an_oversized_pool_body_is_its_own_typed_error ... ok test gateway::tests::an_unknown_auth_mode_is_ignored_and_the_parse_succeeds ... ok test gateway::tests::an_unreadable_link_count_keeps_the_file ... ok test gateway::tests::an_unusable_bind_is_refused_by_its_source_never_its_value ... ok test gateway::tests::a_store_with_no_determinable_home_is_listed_not_moved ... ok test gateway::tests::an_update_hands_the_closure_the_record_on_disk_and_lands_its_edit ... ok test gateway::tests::an_update_never_removes_the_record ... ok test gateway::tests::an_update_refuses_a_relative_binary_before_it_lands ... ok test gateway::tests::an_update_that_changes_nothing_leaves_the_file_alone ... ok test gateway::tests::both_codex_home_sources_are_guarded_at_once ... ok test gateway::tests::candidates_follow_shunts_search_order ... ok test gateway::tests::discovery_reads_home_the_way_shunt_does ... ok test gateway::tests::each_familys_default_home_follows_its_shunt_site_rule ... ok test gateway::tests::each_pool_status_is_its_own_typed_error_without_the_body ... ok test gateway::tests::environment_file_syntax_parses_to_the_spawn_pairs ... ok test gateway::tests::every_admin_shape_gains_exactly_the_entry ... ok test gateway::tests::every_inherited_codex_home_entry_is_guarded ... ok test gateway::tests::no_config_anywhere_reads_as_none ... ok test gateway::tests::candidates_fall_back_to_home_config_and_the_stock_brew_prefixes ... ok test gateway::tests::plan_then_move_moves_exactly_the_planned_files ... ok test gateway::tests::something_else_answering_is_not_read_as_shunt ... ok test gateway::tests::the_admin_need_names_what_the_config_lacks ... ok test gateway::tests::the_admin_token_debug_never_prints_it ... ok test gateway::tests::the_admin_token_is_minted_once_owner_only_and_long_enough ... ok test gateway::tests::the_bind_is_the_env_then_the_config_then_shunts_default ... ok test gateway::tests::the_bind_read_mirrors_figments_value_parse ... ok test gateway::tests::the_card_reads_the_live_daemons_recorded_bind ... FAILED test gateway::tests::the_codex_login_in_clauths_own_home_stays_when_the_env_file_names_another_home ... FAILED test gateway::tests::the_env_value_lookup_follows_the_platforms_name_rule ... ok test gateway::tests::the_daemon_env_capture_records_exactly_the_four_inherited_keys ... FAILED test gateway::tests::the_daemon_env_record_is_0600_and_unset_values_round_trip_as_unset ... FAILED test gateway::tests::the_gateway_clients_go_direct_and_bound_every_phase ... ok test gateway::tests::the_default_codex_home_follows_the_resolved_home ... FAILED test gateway::tests::the_default_codex_home_refuses_a_relative_home ... ok test gateway::tests::the_default_store_root_is_the_home_the_env_file_gave_the_standalone ... ok test gateway::tests::the_displayed_bind_reads_the_daemon_recorded_bind_matched_by_pid ... FAILED test gateway::tests::the_env_file_bind_outranks_the_adopted_configs ... ok test gateway::tests::the_env_file_drain_bound_matches_its_name_in_any_case ... ok test gateway::tests::the_env_record_reads_only_the_live_holders_record ... FAILED test gateway::tests::the_fallback_scrubs_a_clauth_codex_home_and_keeps_the_users_own ... ok test gateway::tests::the_first_existing_candidate_wins_as_an_absolute_path ... ok test gateway::tests::the_gateway_env_debug_shows_key_names_only ... ok test gateway::tests::the_gateway_env_is_the_env_file_then_the_stores ... ok test gateway::tests::the_gateway_probe_reads_the_same_env_as_the_plan ... FAILED test gateway::tests::the_inherited_bind_env_value_is_normalized_the_way_figment_reads_it ... ok test gateway::tests::the_inherited_drain_env_value_is_normalized_too ... ok test gateway::tests::the_inherited_env_fallback_panics_with_no_sandbox_held - should panic ... ok test gateway::tests::the_move_refuses_a_silent_proof_from_another_address ... ok test gateway::tests::the_move_refuses_when_a_file_was_added_to_a_store_since_the_plan ... ok test gateway::tests::the_move_refuses_when_only_a_kept_entry_changes_since_the_plan ... ok test gateway::tests::the_pinned_single_file_short_circuits_the_pool_read ... ok test gateway::tests::the_pool_login_list_names_every_loginless_chatgpt_oauth_provider ... ok test harness::tests::the_claude_engine_carries_the_spawn_facts_unchanged ... ok test harness::tests::the_claude_scrub_is_the_shared_scrub ... ok test gateway::tests::the_pool_read_sends_the_token_and_hits_the_pool_route ... ok test harness::tests::the_codex_engine_carries_its_own_spawn_facts ... ok test gateway::tests::the_record_refuses_a_config_it_cannot_edit_in_place ... ok test gateway::tests::the_store_env_points_every_store_under_clauth ... ok test gateway::tests::the_store_move_lands_every_credential_owner_only ... ok test herdr::tests::a_binding_edited_off_clauth_open_keeps_the_edit_and_rewires_clauths_own ... ok test gateway::tests::the_table_offer_adds_an_admin_table_carrying_the_entry ... ok test gateway::tests::the_version_floor_by_hand ... ok test herdr::tests::a_claude_row_already_rendering_the_token_is_left_alone ... ok test gateway::tests::the_version_refusal_names_what_it_read_and_the_floor ... ok test herdr::tests::a_claude_row_without_the_token_is_reported_never_duplicated ... ok test gateway::tests::the_write_key_lands_after_a_passing_check_keeping_the_users_bytes ... ok test gateway::tests::two_store_keys_naming_one_file_move_it_once_and_list_the_second ... ok test herdr::tests::a_config_that_does_not_parse_fails_before_anything_is_written ... ok test harness::tests::the_claude_scrub_strips_only_a_clauth_codex_home ... ok test harness::tests::the_codex_scrub_is_managed_keys_plus_clauth_runtime_hygiene ... ok test herdr::tests::a_fully_wired_config_plans_nothing ... ok test herdr::tests::a_hand_owned_claude_row_survives_the_resync ... ok test herdr::tests::a_bare_codex_pane_answers_the_adopted_login_never_the_claude_account ... ok test herdr::tests::a_bare_pane_hosting_a_delegate_still_answers_the_global_account ... ok test herdr::tests::a_claude_arm_failure_publishes_nothing_and_spawns_no_watcher ... ok test herdr::tests::a_key_that_would_break_the_file_is_refused ... ok test herdr::tests::a_knob_toggle_rewrites_exactly_the_marked_blocks ... ok test herdr::tests::a_marker_as_the_last_line_drops_alone ... ok test herdr::tests::a_marker_before_user_content_keeps_the_content ... ok test herdr::tests::a_claude_pane_with_a_persisted_codex_session_tags_as_claude ... ok test herdr::tests::a_claude_watcher_reports_the_codex_pane_as_codex ... ok test herdr::tests::a_codex_pane_running_a_clauth_session_names_its_profile ... ok test herdr::tests::a_registry_entry_without_enabled_reads_as_enabled ... ok test herdr::tests::a_codex_watcher_never_clears_the_claude_tag_that_follows_it ... ok test herdr::tests::a_rows_by_agent_table_for_other_agents_is_reported_never_duplicated ... ok test herdr::tests::a_sidebar_agents_table_without_rows_by_agent_still_gets_the_block ... ok test herdr::tests::a_deleted_adopted_login_clears_the_tag_on_the_watchers_next_tick ... ok test herdr::tests::a_table_spelled_inline_is_handed_over_never_appended_onto ... ok test herdr::tests::a_user_key_glued_to_a_marked_block_survives_the_resync ... ok test herdr::tests::a_user_line_inside_a_marked_block_keeps_the_whole_block ... ok test herdr::tests::a_failing_snapshot_still_attempts_the_open ... ok test herdr::tests::an_edited_binding_block_survives_the_resync_byte_for_byte ... ok test herdr::tests::an_edited_binding_does_not_freeze_the_sidebar_toggle ... ok test herdr::tests::an_edited_block_is_absent_from_uninstalls_removal_diff ... ok test herdr::tests::an_edited_sidebar_row_survives_the_resync_byte_for_byte ... ok test herdr::tests::a_heal_keeps_a_custom_key_binding_and_still_toggles_the_row ... ok test herdr::tests::an_existing_binding_is_left_alone ... ok test herdr::tests::a_hook_on_an_agentless_event_publishes_the_clears ... ok test herdr::tests::an_install_with_a_new_key_rebinds_a_wired_config ... ok test herdr::tests::a_hung_herdr_bounds_the_probe_at_the_timeout ... ok test herdr::tests::a_pane_get_failure_on_a_tagged_pane_publishes_nothing ... ok test herdr::tests::another_plugins_binding_does_not_count_as_ours ... ok test herdr::tests::a_popup_arm_retries_the_plain_pair_when_the_sizing_flags_are_refused ... ok test herdr::tests::a_popup_arm_takes_popup_already_open_as_success ... ok test herdr::tests::a_released_event_on_a_pane_that_now_runs_no_agent_publishes_the_clears ... ok test herdr::tests::bound_key_reads_the_open_binding_not_the_first_entry ... ok test herdr::tests::config_status_reads_binding_and_sidebar ... ok test herdr::tests::empty_config_gets_both_blocks ... ok test herdr::tests::a_split_open_does_not_take_popup_already_open_as_success ... ok test herdr::tests::an_agentless_status_event_after_the_watchers_exit_clear_leaves_the_pane_untagged ... ok test herdr::tests::an_empty_codex_resolution_with_border_label_on_publishes_the_display_agent_clear ... ok test herdr::tests::herdr_config_get_parses_and_stays_out_of_herdrs_help ... ok test herdr::tests::an_idle_pane_with_a_persisted_codex_session_clears_and_exits ... ok test herdr::tests::an_unadopted_codex_pane_publishes_the_token_clear ... ok test herdr::tests::an_unadopted_codex_pane_spawns_a_watcher ... ok test herdr::tests::border_label_off_publishes_the_display_agent_clear ... ok test herdr::tests::both_knobs_off_publish_both_clears_in_one_call ... ok test herdr::tests::both_knobs_on_publish_the_token_and_display_agent_unchanged ... ok test herdr::tests::heal_detached_respects_the_saved_update_toggle ... FAILED test herdr::tests::install_refuses_over_a_registered_local_link ... ok test herdr::tests::marked_blocks_mid_file_leave_trailing_content ... ok test herdr::tests::nothing_marked_round_trips_unchanged ... ok test herdr::tests::only_diagnostics_the_edit_added_are_refused ... ok test herdr::tests::herdr_config_get_answers_every_default_with_no_profiles_toml ... ok test herdr::tests::pick_release_accepts_a_lightweight_tag_line ... ok test herdr::tests::pick_release_prefers_the_numeric_maximum_version ... ok test herdr::tests::pick_release_prefers_the_peeled_commit_of_an_annotated_tag ... ok test herdr::tests::pick_release_skips_unparseable_lines_and_non_release_tags ... ok test herdr::tests::plan_config_and_config_status_agree ... ok test herdr::tests::herdr_config_get_honors_written_knobs_through_the_real_load_path ... ok Error: unknown herdr config key 'popup-width'; valid keys: popup_width, pane_tag, tag_watch_secs, border_label, delegate_dot, delegate_row_text test herdr::tests::herdr_config_get_unknown_key_is_a_usage_error_naming_the_valid_keys ... ok test herdr::tests::herdr_settings_round_trip_through_the_app_load_path ... ok test herdr::tests::home_tab_round_trips_through_the_app_load_path ... ok clauth: installing uwuclxdy/clauth/herdr-plugin at v0.15.1 into herdr clauth: herdr's config left alone (--no-config) clauth: add these to herdr's config.toml yourself: # clauth herdr plugin [[keys.command]] key = "prefix+a" type = "plugin_action" command = "clauth.open" description = "clauth accounts" # clauth herdr plugin: `$clauth` renders the account each Claude Code pane burns [ui.sidebar.agents.rows_by_agent] claude = [["state_icon", "workspace", "tab"], ["terminal_title_stripped"], ["agent", "$clauth"]] test herdr::tests::install_pins_the_latest_release_tag ... ok clauth: installing uwuclxdy/clauth/herdr-plugin into herdr clauth: herdr's config left alone (--no-config) clauth: add these to herdr's config.toml yourself: # clauth herdr plugin [[keys.command]] key = "prefix+a" type = "plugin_action" command = "clauth.open" description = "clauth accounts" # clauth herdr plugin: `$clauth` renders the account each Claude Code pane burns [ui.sidebar.agents.rows_by_agent] claude = [["state_icon", "workspace", "tab"], ["terminal_title_stripped"], ["agent", "$clauth"]] test herdr::tests::install_proceeds_unpinned_when_no_release_tag_exists ... ok clauth: could not resolve the latest release (`git ls-remote --tags https://github.com/uwuclxdy/clauth.git` failed: ); installing uwuclxdy/clauth/herdr-plugin unpinned clauth: installing uwuclxdy/clauth/herdr-plugin into herdr clauth: herdr's config left alone (--no-config) clauth: add these to herdr's config.toml yourself: # clauth herdr plugin [[keys.command]] key = "prefix+a" type = "plugin_action" command = "clauth.open" description = "clauth accounts" # clauth herdr plugin: `$clauth` renders the account each Claude Code pane burns [ui.sidebar.agents.rows_by_agent] claude = [["state_icon", "workspace", "tab"], ["terminal_title_stripped"], ["agent", "$clauth"]] test herdr::tests::install_proceeds_unpinned_when_the_release_probe_fails ... ok test herdr::tests::install_refuses_a_local_link_before_running_herdrs_installer ... ok test herdr::tests::pane_tag_off_publishes_the_token_clear_and_spawns_no_watcher ... ok test herdr::tests::plugin_heal_bounds_a_stalled_install ... ok test herdr::tests::registry_entry_from_reads_every_real_shape ... ok test herdr::tests::registry_warnings_skip_non_strings_without_panicking ... ok test herdr::tests::removing_marked_blocks_round_trips ... ok test herdr::tests::plugin_heal_fails_loud_when_the_install_fails ... ok test herdr::tests::snapshot_rects_read_herdr_091_layouts ... ok test herdr::tests::the_append_seam_never_joins_two_lines ... ok test herdr::tests::plugin_heal_fails_loud_when_the_remote_probe_fails ... ok test herdr::tests::the_config_root_is_derived_from_herdrs_own_path_or_refused ... ok test herdr::tests::the_delegate_token_rides_the_row_only_when_the_knob_is_on ... ok test herdr::tests::the_fg_sed_reads_the_real_process_info_shape ... ok test herdr::tests::the_fit_sed_reads_the_real_snapshot_shape ... ok test herdr::tests::plugin_heal_reinstalls_a_github_install_at_an_older_commit ... ok test herdr::tests::the_installing_line_names_the_pinned_tag ... ok test herdr::tests::the_noop_verdict_holds_both_ways ... ok test herdr::tests::plugin_heal_reports_the_tag_commit_when_the_fresh_probe_has_no_commit ... ok test herdr::tests::plugin_heal_skips_an_install_at_the_latest_release ... ok test herdr::tests::plugin_heal_skips_every_non_stale_shape ... ok test herdr::tests::plugin_heal_skips_when_no_release_tag_exists ... ok test herdr::tests::popup_width_round_trips_all_four_spellings_through_the_real_load_path ... ok test herdr::tests::read_config_treats_absent_as_empty_and_fails_on_non_utf8 ... ok test herdr::tests::saving_default_knobs_omits_the_herdr_block_until_one_moves ... ok test herdr::tests::the_compat_sweep_climbs_through_an_mcp_without_matching_its_rows ... ok test herdr::tests::the_foreground_chain_beats_a_delegate_row_in_the_sweep ... ok test herdr::tests::the_unpinned_release_note_names_the_error_and_the_fallback ... ok test herdr::tests::the_proc_walk_climbs_to_the_parent_row ... ok test herdr::tests::the_proc_walk_compat_sweep_climbs_through_an_mcp_without_ps ... ok test herdr::tests::the_proc_walk_resolves_the_foreground_chain_without_ps ... ok test herdr::tests::token_detection_walks_nested_groups ... ok test herdr::tests::the_spawned_watcher_picks_up_a_mid_pane_adoption ... ok test herdr::tests::the_split_right_knob_opens_a_split_without_sizing_flags_or_a_plain_retry ... ok test herdr::tests::unrelated_config_survives_verbatim ... ok test herdr::tests::version_from_parses_the_real_line ... ok test herdr::tests::version_from_stops_at_the_first_token ... ok test herdr::tests::the_split_top_knob_splits_the_pane_above_the_focused_one ... ok test herdr::tests::the_split_top_knob_without_a_neighbor_splits_the_focused_pane_down ... ok test hook_context::tests::a_divisible_threshold_renders_as_k_and_an_indivisible_one_as_a_plain_number ... ok test herdr::tests::the_split_top_knob_without_a_snapshot_splits_down_without_a_target ... ok test herdr::tests::the_tui_knob_push_rerun_on_an_agentless_pane_publishes_the_clears ... ok test herdr::tests::the_watcher_clears_and_exits_when_the_pane_runs_another_agent ... ok test herdr::tests::the_which_action_on_an_agentless_pane_publishes_the_clears_and_prints_nothing ... ok test herdr::tests::the_which_action_tags_a_codex_pane_with_the_codex_account ... ok test herdr::tests::two_rows_on_one_pid_resolve_to_the_newest ... ok clauth: this removes the clauth plugin from herdr /nix/var/nix/builds/nix-12670-2432953799/.tmpEkVxcB/config.toml: - # clauth herdr plugin - [[keys.command]] - key = "prefix+a" - type = "plugin_action" - command = "clauth.open" - description = "clauth accounts" - - # clauth herdr plugin: `$clauth` renders the account each Claude Code pane burns - [ui.sidebar.agents.rows_by_agent] - claude = [["state_icon", "workspace", "tab"], ["terminal_title_stripped"], ["agent", "$clauth"]] clauth: removed clauth's additions from /nix/var/nix/builds/nix-12670-2432953799/.tmpEkVxcB/config.toml test herdr::tests::uninstall_writes_the_clean_config_before_the_unlink ... ok test hook_context::tests::a_compaction_re_emits_while_the_usage_is_still_above ... ok test hook_context::tests::a_crossing_emits_once_and_a_second_fire_stays_silent ... ok test hook_context::tests::an_exact_million_threshold_renders_as_m ... ok test hook_context::tests::a_legacy_record_without_the_context_field_reads_as_untold ... ok test hook_context::tests::a_non_task_tool_use_is_not_counted_as_an_agent ... ok test hook_context::tests::a_payload_transcript_wins_over_the_record_and_a_missing_transcript_stays_silent ... ok test hook_context::tests::a_task_tool_use_on_a_user_role_message_counts ... ok test hook_context::tests::a_threshold_change_re_emits_while_the_usage_stays_above ... ok test hook_context::tests::a_usage_below_the_threshold_stays_silent ... ok test hook_context::tests::a_whole_prompt_row_counts_input_alone ... ok test hook_context::tests::an_agent_scope_fire_stays_silent ... ok test hook_context::tests::an_anthropic_row_sums_all_three_fields ... ok test hook_context::tests::an_input_equal_to_cache_read_counts_input_alone ... ok test hook_context::tests::an_off_threshold_stays_silent_and_a_turned_back_on_threshold_re_arms ... ok test hook_context::tests::an_open_task_counts_until_its_result_lands ... ok test hook_context::tests::an_out_of_range_threshold_reads_as_off ... ok test hook_context::tests::auto_compact_off_uses_the_off_arm_with_the_handoff_sentence ... ok test hook_context::tests::auto_compact_on_uses_the_on_arm_and_an_absent_key_defaults_true ... ok test hook_context::tests::repeated_partials_of_one_task_count_as_one_agent ... ok test hook_context::tests::the_config_dir_settings_win_over_the_home_fallback ... ok test hook_context::tests::the_later_of_two_usage_lines_wins ... ok test hook_context::tests::the_running_clause_lists_only_what_is_running ... ok test hook_context::tests::the_running_clause_stays_off_the_auto_compact_on_arm ... ok test hook_context::tests::the_tail_window_bounds_what_a_fire_counts ... ok test hook_context::tests::the_transcript_falls_back_to_the_records_stored_path ... ok test hook_note::tests::a_below_threshold_projection_fire_still_replays_the_chain_walk ... ok test hook_note::tests::a_below_threshold_window_whose_rate_caps_before_the_reset_emits ... ok test hook_note::tests::a_below_threshold_window_whose_rate_misses_the_reset_stays_silent ... ok test hook_note::tests::a_chain_target_a_missing_rate_and_a_late_cap_each_stay_silent ... ok test hook_note::tests::a_compaction_before_any_baseline_establishes_one ... ok test hook_note::tests::a_present_but_unusable_agent_id_is_refused ... ok test hook_note::tests::a_compaction_re_announces_the_note_it_dropped ... ok test hook_note::tests::a_compaction_with_nothing_ever_announced_stays_silent ... ok test hook_note::tests::a_conversation_record_and_its_dir_are_owner_only ... ok test hook_note::tests::a_fire_carrying_the_older_observation_defers_to_the_record ... ok test hook_note::tests::a_future_record_mtime_counts_as_within_the_grace ... ok test hook_note::tests::a_future_timestamp_from_a_clock_step_does_not_freeze_the_answer ... ok test hook_note::tests::a_lapsed_window_omits_the_clause ... ok test hook_note::tests::a_note_that_cannot_be_recorded_is_not_emitted ... ok test hook_note::tests::a_nudge_that_cannot_be_recorded_is_not_emitted ... ok test hook_note::tests::a_record_that_never_carried_a_transcript_ages_out ... ok test hook_note::tests::a_record_without_the_nudge_field_still_parses ... ok test hook_note::tests::a_resolution_is_retaken_once_the_ttl_expires ... ok test hook_note::tests::a_resume_never_carries_the_headroom_clause ... ok test hook_note::tests::a_resume_on_the_same_account_drops_the_previous_processes_note ... ok test hook_note::tests::a_resume_under_another_account_names_the_earlier_turns ... ok test hook_note::tests::a_startup_or_cleared_context_rebaselines_silently ... ok test hook_note::tests::a_still_firing_scope_survives_the_sweep_with_its_transcript_gone ... ok test hook_note::tests::a_subagent_and_the_main_thread_each_hear_the_same_move ... ok test hook_note::tests::an_event_name_is_bounded_without_being_held_to_the_id_charset ... ok test hook_note::tests::an_id_that_cannot_spell_a_bare_filename_is_refused ... ok test hook_note::tests::a_subagent_fire_stamps_no_owner_store_entry ... ok test hook_note::tests::a_subagent_or_non_task_fire_is_never_nudge_eligible ... ok test hook_note::tests::a_subagent_that_predates_the_move_hears_the_clause ... ok test hook_note::tests::a_switch_that_never_moves_a_pinned_session_does_not_suppress_its_nudge ... ok test hook_note::tests::an_unusable_transcript_path_is_not_stored ... ok test hook_note::tests::both_note_spellings_render_the_shipped_copy ... ok test hook_note::tests::a_task_past_the_threshold_with_nowhere_to_go_emits_the_approved_copy ... ok test hook_note::tests::the_bare_id_bounds_are_exactly_sixty_four_bytes_and_non_empty ... ok test hook_note::tests::the_envelope_echoes_the_event_that_produced_it ... ok test hook_note::tests::a_transcript_that_has_not_appeared_yet_keeps_its_record ... ok test hook_note::tests::a_usage_less_account_keeps_the_sentence_unchanged ... ok test hook_note::tests::an_account_change_names_the_new_accounts_headroom ... ok test hook_note::tests::an_armed_session_silences_the_reader_before_any_read ... ok test hook_note::tests::an_unattributable_account_says_nothing_and_keeps_the_name_it_told ... ok test hook_note::tests::an_unattributable_read_is_never_cached ... ok test hook_note::tests::an_unchanged_verdict_does_not_re_emit_across_fires_or_reloads ... ok test hook_note::tests::an_unrecognised_session_start_source_rebaselines_silently ... ok test hook_note::tests::resolved_account_reads_the_main_scope_record ... ok test hook_note::tests::the_first_fire_is_a_baseline_and_a_move_is_announced_once ... ok test hook_note::tests::the_gate_watches_the_config_fingerprint_and_the_credential_store_apart ... ok test hook_note::tests::the_runtime_dir_sid_parser_accepts_only_per_session_dirs ... ok test hook_note::tests::the_hook_fold_overwrites_a_contested_store_entry ... ok test hook_note::tests::the_hook_fold_skips_a_repeat_resolution_of_the_same_account ... ok test hook_note::tests::the_nudge_re_arms_on_a_window_reset_and_on_a_verdict_flip ... ok test hook_note::tests::the_projection_floor_keeps_a_low_window_with_a_huge_early_rate_silent ... ok test hook_note::tests::the_real_reader_replays_the_decision_leg_over_the_disk_cache ... ok test hook_note::tests::the_record_is_left_on_disk_for_the_next_process ... ok test hook_note::tests::the_tool_name_reaches_the_parser_leniently ... ok test hook_note::tests::two_earned_notes_join_into_one_envelope ... ok test hook_note::tests::the_replay_judges_a_third_party_members_windows_like_the_live_leg ... ok test hook_note::tests::the_replay_skips_a_key_rejected_sibling_like_the_live_leg ... ok test hook_note::tests::the_resolution_ttl_holds_just_inside_and_expires_just_outside ... ok test hook_note::tests::the_scope_lock_enters_its_rank ... ok test hook_note::tests::the_shared_config_arm_reads_the_shared_config_not_the_disk ... ok test hook_note::tests::the_stat_gate_skips_the_resolution_until_a_watched_input_moves ... ok test hook_note::tests::the_store_stamp_releases_the_scope_lock_before_the_state_flock ... ok test hook_note::tests::the_sweep_leaves_everything_that_is_not_a_record_alone ... ok test hook_note::tests::the_sweep_reaps_a_record_whose_transcript_is_gone ... ok test hook_note::tests::watch_now_sees_a_per_profile_config_edit ... ok test hook_note::tests::watch_now_sees_the_credential_store_move ... ok test jobs_cli::tests::a_dead_servers_row_still_carries_the_session_id_its_record_kept ... ok test jobs_cli::tests::a_silent_run_reads_never_and_a_finished_one_reads_nothing ... ok test jobs_cli::tests::an_empty_store_renders_a_named_empty_state_and_an_empty_json_array ... ok test keychain::tests::a_blob_past_the_stdin_ceiling_round_trips_intact ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test jobs_cli::tests::an_isolated_runs_row_is_marked_isolated ... ok [] test jobs_cli::tests::an_unreadable_job_store_is_an_error_and_a_missing_one_is_not ... ok test keychain::tests::a_line_just_under_the_stdin_ceiling_round_trips_intact ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test keychain::tests::a_locked_keychain_write_failure_names_the_cause_and_carries_its_code ... ok test keychain::tests::a_merge_over_unparseable_bytes_quarantines_them_and_still_writes ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test keychain::tests::a_sign_out_over_unparseable_bytes_quarantines_them_and_still_deletes ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test keychain::tests::a_spent_budget_refuses_before_spawning_anything ... ok test keychain::tests::a_write_error_reports_the_exit_code_and_stderr_size_never_the_bytes ... ok test keychain::tests::a_write_known_corrupt_fails_the_switch ... ok test keychain::tests::an_item_past_the_pipe_buffer_round_trips_and_verifies ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test keychain::tests::an_unparseable_items_debug_never_prints_the_bytes ... ok test keychain::tests::an_unverifiable_write_completes_the_switch ... ok test keychain::tests::an_unverifiable_write_lands_and_completes_the_switch ... ignored, touches the real login Keychain (throwaway service, ACL-seeded); the verify read blocks up to SECURITY_TIMEOUT at a console — run explicitly with --ignored test keychain::tests::argv_takes_over_up_to_its_own_ceiling ... ok test keychain::tests::carried_raw_quarantines_only_an_unparseable_reads_bytes ... ok test jobs_cli::tests::each_stored_shape_reads_as_its_own_phase ... ok test jobs_cli::tests::the_json_row_carries_every_key_on_every_state ... ok test keychain::tests::keychain_rotation_over_an_oversized_item_keeps_the_siblings ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test keychain::tests::keychain_round_trip_on_temp_service ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test keychain::tests::keychain_service_canonicalization_resolves_dot_dot ... ok test keychain::tests::keychain_service_name_differs_for_different_paths ... ok test keychain::tests::keychain_service_name_is_deterministic ... ok test keychain::tests::keychain_service_suffix_is_8_hex_chars ... ok test jobs_cli::tests::the_kill_column_names_whichever_deadlines_the_run_has ... ok test keychain::tests::keychain_write_keeps_the_siblings_its_keep_allows ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test keychain::tests::login_blob_is_ours_accepts_an_absent_item_and_a_blank_shell ... ok test keychain::tests::login_blob_is_ours_recognizes_the_bearer_being_replaced ... ok test keychain::tests::login_blob_is_ours_refuses_a_login_clauth_never_wrote ... ok test keychain::tests::merge_write_always_writes_when_it_could_not_read_the_item ... ok test keychain::tests::merge_write_skips_a_relink_that_reproduces_the_item ... ok test keychain::tests::merge_write_skips_when_only_the_carry_closes_the_difference ... ok test keychain::tests::merge_write_writes_whenever_the_merge_changes_the_item ... ok test keychain::tests::merged_blob_carries_only_the_allowlist_onto_a_different_login ... ok test keychain::tests::merged_blob_keeps_everything_when_the_login_is_unchanged ... ok test jobs_cli::tests::the_table_names_each_row_and_quotes_a_tail_on_its_own_line ... ok test keychain::tests::merged_blob_over_an_absent_item_is_the_incoming_store ... ok test keychain::tests::merged_blob_treats_two_logged_out_shells_as_different_logins ... ok test keychain::tests::merged_blob_under_a_rotation_keeps_the_accounts_own_blocks ... ok test keychain::tests::quarantine_path_is_timestamped_pid_separated_and_service_identified ... ok test keychain::tests::quarantine_tail_names_the_file_and_the_recovery_or_the_loss ... ok test keychain::tests::read_and_delete_errors_still_embed_stderr ... ok test keychain::tests::security_quote_escapes_quotes_backslashes_and_wraps ... ok test keychain::tests::security_quote_refuses_embedded_newlines ... ok test keychain::tests::stdin_carries_a_line_up_to_the_ceiling ... ok test keychain::tests::the_census_collects_unexplained_items_and_spares_live_dirs ... ignored, touches the real login Keychain (throwaway service); macOS re-prompts each rebuild — run explicitly with --ignored test keychain::tests::the_near_ceiling_fixture_composes_just_under_the_measured_line_cap ... ok test keychain::tests::the_over_cap_refusal_names_the_size_the_cap_and_the_remediation ... ok test keychain::tests::the_stdin_ceiling_is_pinned_to_the_measured_4096 ... ok test keychain::tests::the_verify_outcome_and_disposition_debug_never_print_the_bytes ... ok test keychain::tests::verify_outcome_carries_the_read_back_bytes_of_a_mismatch ... ok test keychain::tests::verify_outcome_marks_a_failed_read_unverified_with_the_cause ... ok test keychain::tests::verify_outcome_marks_an_absent_item_vanished ... ok test keychain::tests::verify_outcome_matches_a_read_back_equal_to_the_written_json ... ok test jobs_cli::tests::the_table_strips_bidi_overrides_but_keeps_orthographic_zero_width_marks ... ok test jobs_cli::tests::the_table_strips_control_characters_out_of_a_delegates_words ... ok test jobs_cli::tests::the_time_columns_never_share_a_meaning ... ok test keychain::tests::the_census_pays_no_subprocess_under_the_probe ... ok test list::tests::a_dead_api_key_is_told_the_key_was_rejected ... ok test list::tests::a_dead_credential_is_named_in_the_state_suffix ... ok test list::tests::a_profile_that_never_stored_a_session_is_told_it_needs_one ... ok test list::tests::list_table_collapses_the_identical_login_expired_pair ... ok test list::tests::list_table_dashes_a_lapsed_bars_last_reading ... ok test list::tests::list_table_falls_back_to_the_first_funded_wallet_when_no_bar_exists ... ok test list::tests::list_table_falls_through_to_the_wallet_over_a_non_canonical_bar_label ... ok test list::tests::list_table_hides_disabled_by_default_and_marks_the_active_profile ... ok test list::tests::list_table_leaves_a_live_account_unmarked ... ok test list::tests::list_table_leaves_an_env_keyed_third_party_profile_unmarked ... ok test list::tests::list_table_marks_a_canceled_account_and_keeps_its_real_tier ... ok test list::tests::list_table_marks_a_keyless_third_party_profile ... ok test list::tests::list_table_marks_a_stale_reading ... ok test list::tests::list_table_names_a_broken_oauth_credential ... ok test list::tests::list_table_names_a_quarantined_codex_chain_after_its_7d_cell ... ok test list::tests::list_table_prints_no_codex_section_for_an_empty_or_unreadable_roster ... ok test keychain::tests::deadline_feeds_stdin_payload_and_closes_the_pipe ... ok test list::tests::list_table_prints_the_codex_roster_as_its_own_section_under_the_claude_table ... ok test list::tests::list_table_prints_the_codex_section_alone_without_a_claude_account ... ok test list::tests::list_table_ranks_the_first_funded_wallet_not_the_empty_first_listed ... ok test list::tests::list_table_reads_no_claude_cancellation_off_a_codex_rows_cache ... ok test list::tests::list_table_renders_a_bars_own_absolute_amounts_when_it_carries_them ... ok test list::tests::list_table_renders_a_third_party_rows_own_headroom ... ok test list::tests::list_table_reports_no_accounts_when_empty ... ok test list::tests::list_table_reveals_disabled_with_a_trailing_marker_when_included ... ok test list::tests::list_table_shows_provider_as_plan_and_the_base_url_endpoint_for_a_third_party ... ok test list::tests::list_table_sizes_the_codex_section_off_wider_claude_columns_too ... ok test list::tests::list_table_stacks_both_dead_credentials_and_dedupes_the_identical_pair ... ok test live_sessions::tests::a_row_predating_the_opt_in_key_deserializes_as_not_following_the_chain ... ok test live_sessions::tests::a_session_that_never_swapped_counts_on_the_account_it_launched_on ... ok test list::tests::list_table_stacks_disabled_and_canceled_rather_than_letting_one_win ... ok test keychain::tests::a_child_pasting_the_stderr_pipe_buffer_completes_with_all_its_bytes ... ok test keychain::tests::a_child_pasting_the_stdout_pipe_buffer_completes_with_all_its_bytes ... ok test keychain::tests::keychain_deadline_returns_output_for_a_fast_command ... ok test live_sessions::tests::a_swapped_session_counts_on_its_current_member_and_not_its_launch_one ... ok test live_sessions::tests::an_account_with_no_sessions_tallies_empty ... ok test live_sessions::tests::a_codex_row_round_trips_its_harness_tag ... ok test keychain::tests::keychain_timeout_kills_a_hung_command ... ok test live_sessions::tests::a_concurrent_daemon_write_is_not_lost_under_a_parked_session_write ... ok test live_sessions::tests::a_held_bare_marker_counts_on_the_account_the_credential_link_resolves_to ... ok test live_sessions::tests::a_malformed_session_id_is_refused ... ok test live_sessions::tests::a_session_that_never_swapped_probes_start_profile_in_collect ... ok test live_sessions::tests::a_swapped_session_counts_on_current_member_after_its_launch_marker_is_removed ... ok test live_sessions::tests::an_absent_registry_and_bare_dir_read_as_zero ... ok test live_sessions::tests::only_opted_in_sessions_count_as_following_the_chain ... ok test live_sessions::tests::an_unattributed_bare_session_still_counts_toward_the_fleet_total ... ok test live_sessions::tests::an_unlistable_bare_dir_reads_as_no_total_even_beside_live_rows ... ok test live_sessions::tests::an_unlistable_registry_reads_as_no_total ... ok test live_sessions::tests::the_fleet_total_counts_every_session_whatever_its_account_or_chain_flag ... ok test live_sessions::tests::the_newest_swap_onto_an_account_is_the_one_reported ... ok test live_sessions::tests::an_update_of_a_missing_row_names_the_id ... ok test live_sessions::tests::bare_attribution_follows_the_credential_link_not_the_active_profile ... ok test live_sessions::tests::bare_attribution_ignores_the_readers_own_config_dir ... ok test live_sessions::tests::collect_drops_a_row_whose_session_is_no_longer_running ... ok test live_sessions::tests::each_writers_update_preserves_the_others_fields ... ok test live_sessions::tests::list_stays_empty_on_an_unlistable_registry ... ok test live_sessions::tests::register_then_list_returns_the_row ... ok test live_sessions::tests::releasing_a_bare_marker_stops_it_counting ... ok test live_sessions::tests::set_pid_rekeys_the_row_and_touches_nothing_else ... ok test live_sessions::tests::unregister_removes_the_row_and_is_idempotent ... ok 2026-10-05T00:08:39+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock test lock::tests::a_plain_budget_does_not_clamp_the_flock_wait ... ok test lockorder::tests::a_held_try_lock_still_reports_busy ... ok test lockorder::tests::a_poisoned_try_lock_is_recovered_rather_than_reported_as_busy ... ok test lockorder::tests::a_tier_pin_is_legal_under_a_home_sandbox ... ok test lockorder::tests::ranks_entered_outermost_first_are_legal_and_release_on_drop ... ok test logline::tests::a_capture_guard_cannot_be_carried_to_another_thread ... ok test logline::tests::a_capture_takes_only_the_lines_raised_on_its_own_thread ... ok test logline::tests::a_capture_takes_the_formatted_line_until_its_guard_drops ... ok test logline::tests::daemon_mode_prefixes_an_iso_utc_stamp ... ok test logline::tests::daemon_mode_stays_bare_on_stderr ... ok test logline::tests::only_a_non_daemon_line_on_a_terminal_diverts_to_the_log_file ... ok test logline::tests::the_census_diagnostics_route_through_the_durable_logfile_sink ... ok test logline::tests::to_logfile_calls_the_durable_sink ... ok test logline::tests::write_log_line_appends_each_call ... ok test logline::tests::write_log_line_creates_an_owner_only_file ... ok test lock::tests::a_reentrant_hold_keeps_spending_the_outer_budget ... ok test lock::tests::a_shared_budget_spans_sequential_acquisitions ... ok test lock::tests::a_shared_scope_inside_a_hold_adopts_its_budget ... ok 2026-10-05T00:08:39+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:08:39+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock test lock::tests::an_armed_budget_clamps_the_flock_wait ... ok test lock::tests::cross_thread_with_state_lock_serializes ... ok 2026-10-05T00:08:40+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock test lock::tests::held_flock_times_out_then_recovers_on_release ... ok test lock::tests::poison_recovery_after_panicking_closure ... ok test lock::tests::same_thread_reentrancy_does_not_deadlock ... ok test lock::tests::the_subprocess_budget_binds_only_inside_a_hold ... ok test mcp::background_sandbox_tests::a_dropped_sender_ends_the_wait_without_reporting_a_stall ... ok test mcp::background_sandbox_tests::a_job_left_running_fails_the_finalized_assertion ... ok test mcp::background_sandbox_tests::a_stuck_background_task_fails_by_name_instead_of_hanging ... ok clauth: the detach start gate was never released (50ms) — a test armed `arm_detach_gate` and did not send; proceeding so the run fails on its own assertion instead of hanging test mcp::background_sandbox_tests::an_unreleased_detach_gate_gives_up_instead_of_parking_the_task ... ok test mcp::background_sandbox_tests::registering_a_background_task_with_no_sandbox_fails_by_name ... ok test mcp::delegate_args_tests::a_background_fanout_notes_one_result_path_per_job ... ok test mcp::delegate_args_tests::a_background_handle_carries_the_targets_live_usage_footer ... ok test mcp::delegate_args_tests::a_background_handle_notes_where_the_result_file_will_land ... ok test mcp::delegate_args_tests::a_background_job_records_its_cwd_and_the_spawning_account ... ok test mcp::delegate_args_tests::a_blocking_fanout_returns_one_row_per_account_in_order_named ... ok test mcp::delegate_args_tests::a_blocking_single_delegate_is_not_a_fanout_and_a_fanout_resolves_members ... ok test mcp::delegate_args_tests::a_fanout_joins_its_detached_tasks_before_the_driver_returns ... ok test mcp::delegate_args_tests::a_fanout_reply_carries_headroom_for_every_target ... ok test mcp::delegate_args_tests::a_first_party_profile_with_a_stale_third_party_cache_passes ... ok test mcp::delegate_args_tests::a_funded_target_passes_the_unfunded_gate ... ok test mcp::delegate_args_tests::a_missing_prompt_is_refused_by_name ... ok test mcp::delegate_args_tests::a_path_shaped_prompt_that_does_not_resolve_is_refused_by_name ... ok test mcp::delegate_args_tests::a_path_shaped_resume_id_is_refused_not_read ... ok test mcp::delegate_args_tests::a_prompt_path_directory_is_refused_by_name ... ok test mcp::delegate_args_tests::a_prompt_path_oversize_is_refused_by_name ... ok test mcp::delegate_args_tests::a_prompt_path_refuses_a_fifo_without_blocking ... ok test mcp::delegate_args_tests::a_prompt_path_symlink_escape_is_refused_by_name ... ok test mcp::delegate_args_tests::a_prompt_path_that_escapes_cwd_is_refused_by_name ... ok test mcp::delegate_args_tests::a_relative_cwd_is_recorded_as_the_absolute_directory ... ok test mcp::delegate_args_tests::a_resolved_prompt_path_reads_the_file ... ok test mcp::delegate_args_tests::a_resume_record_naming_an_unknown_account_refuses_profile_not_found ... ok test mcp::delegate_args_tests::a_resume_whose_record_has_no_told_refuses_naming_profiles ... ok test mcp::delegate_args_tests::a_resume_with_no_record_refuses_naming_profiles ... ok test mcp::delegate_args_tests::a_resume_without_profiles_resolves_the_account_from_the_conversation_record ... ok test mcp::delegate_args_tests::a_target_with_no_third_party_cache_passes_preflight ... ok test mcp::delegate_args_tests::a_valid_fanout_returns_one_job_per_account ... ok test mcp::delegate_args_tests::args_carry_flag_matches_both_spellings ... ok test mcp::delegate_args_tests::allowed_tools_and_the_raw_flag_are_refused_together ... ok test mcp::delegate_args_tests::an_absent_target_is_refused_by_name ... ok test mcp::delegate_args_tests::an_absolute_prompt_path_that_does_not_resolve_is_refused_by_name ... ok test mcp::delegate_args_tests::an_explicit_profiles_wins_over_the_record_for_a_resume ... ok test mcp::delegate_args_tests::every_blocking_mint_carries_the_calls_origin ... ok test mcp::delegate_args_tests::fanout_is_error_requires_every_row_errored ... ok test mcp::delegate_args_tests::an_overlong_resume_id_is_echoed_bounded ... ok test mcp::delegate_args_tests::an_unfunded_fanout_member_refuses_the_call_before_any_spawn ... ok test mcp::delegate_args_tests::an_unfunded_target_is_refused_at_routing_time ... ok test mcp::delegate_args_tests::an_unrecognized_result_value_is_refused_by_name ... ok test mcp::delegate_args_tests::background_fanout_with_a_disabled_member_refuses_before_writing_jobs ... ok test mcp::delegate_args_tests::background_single_auth_broken_target_refuses_before_reserving_a_job ... ok test mcp::delegate_args_tests::background_single_disabled_target_refuses_before_reserving_a_job ... ok test mcp::delegate_args_tests::background_single_keyless_third_party_refuses_before_reserving_a_job ... ok test mcp::delegate_args_tests::fanout_prose_names_each_target_with_its_job ... ok test mcp::delegate_args_tests::fanout_reserve_failure_is_refused_by_name ... ok test mcp::delegate_args_tests::fold_fanout_rows_ages_a_rate_limit_off_after_the_recent_window ... ok test mcp::delegate_args_tests::fold_fanout_rows_keeps_a_lost_member_in_its_own_slot ... ok test mcp::delegate_args_tests::fold_fanout_rows_pairs_each_envelope_with_its_own_account ... ok test mcp::delegate_args_tests::fold_fanout_rows_turns_one_members_error_into_its_own_row ... ok test mcp::delegate_args_tests::permission_mode_and_the_raw_flag_are_refused_together ... ok test mcp::delegate_args_tests::profiles_duplicate_is_refused_by_name ... ok test mcp::delegate_args_tests::profiles_empty_is_refused_by_name ... ok test mcp::delegate_args_tests::profiles_over_cap_is_refused_by_name ... ok test mcp::delegate_args_tests::profiles_unknown_is_refused_by_name ... ok test mcp::delegate_args_tests::spawn_cwd_takes_the_workspace_then_the_callers_cwd_then_the_servers ... ok test mcp::delegate_args_tests::prompt_handle_at_cap_is_accepted ... ok test mcp::delegate_args_tests::subagent_type_is_passed_as_the_agent_flag ... ok test mcp::delegate_args_tests::prompt_handle_growth_past_cap_is_refused_by_name ... ok test mcp::delegate_args_tests::prompt_handle_invalid_utf8_is_refused_by_name ... ok test mcp::delegate_args_tests::the_exported_session_id_is_the_id_the_child_runs_under ... ok test mcp::delegate_args_tests::the_permission_flags_reach_the_child ... ok test mcp::delegate_args_tests::prompt_handle_multibyte_utf8_is_accepted ... ok test mcp::delegate_args_tests::prompt_path_detection_matches_the_spec ... ok test mcp::delegate_args_tests::prose_refusals_read_as_a_sentence_and_stay_one_block ... ok test mcp::delegate_args_tests::raw_session_flags_in_args_are_refused ... ok test mcp::delegate_args_tests::result_file_writes_the_envelope_and_returns_path_and_sha256 ... ok test mcp::delegate_args_tests::subagent_type_and_the_raw_agent_flag_are_refused_together ... ok test mcp::delegate_args_tests::the_disabled_sentence_outranks_the_unfunded_one ... ok test mcp::delegate_args_tests::the_keyless_sentence_outranks_the_unfunded_one ... ok test mcp::digest_tests::a_background_handle_reports_the_digest_once_and_consumes_it ... ok test mcp::digest_tests::a_fanout_reply_carries_one_top_level_digest_and_no_row_carries_one ... ok test mcp::digest_tests::a_first_digest_call_reports_nothing ... ok test mcp::digest_tests::a_generic_api_key_profiles_refresh_fires_off_the_cache_its_own_leg_writes ... ok test mcp::digest_tests::a_profile_change_is_never_reported_as_a_usage_cache_refresh ... ok test mcp::digest_tests::a_refused_switch_reports_external_changes ... ok test mcp::digest_tests::a_server_clone_shares_the_digest_baseline ... ok test mcp::digest_tests::a_sub_millisecond_mtime_move_is_still_a_change ... ok test mcp::digest_tests::a_successful_switch_reseeds_rather_than_reporting_its_own_write ... ok test mcp::digest_tests::the_sleeping_function_never_locks_and_the_locking_functions_never_sleep ... ok test mcp::digest_tests::a_third_party_profiles_leftover_oauth_cache_is_not_the_file_watched ... ok test mcp::format_tests::monitor_invalid_job_id_answers_prose_in_one_block ... ok test mcp::digest_tests::a_third_party_profiles_refresh_fires_off_the_cache_its_own_leg_writes ... ok test mcp::digest_tests::an_abandoned_blocking_delegate_reply_never_consumes_the_digest ... ok test mcp::digest_tests::monitor_batch_carries_one_top_level_digest ... ok test mcp::digest_tests::monitor_batch_prose_renders_the_digest ... ok test mcp::digest_tests::monitor_done_envelope_reports_the_digest ... ok test mcp::digest_tests::reporting_consumes_the_delta ... ok test mcp::digest_tests::the_all_scope_roster_carries_no_digest_and_consumes_nothing ... ok test mcp::format_tests::delegate_depth_refusal_answers_prose_in_one_block ... ok test mcp::format_tests::profiles_answers_prose_in_one_block ... ok test mcp::format_tests::session_scope_answers_prose_in_one_block ... ok test mcp::format_tests::switch_profile_refusal_answers_prose_in_one_block ... ok 2026-10-05T00:08:43+00:00 clauth: herdr pane report-metadata timed out (killed; pane state working not reported) test mcp::herdr_report_tests::a_hung_report_does_not_block_the_next_transition ... ok test mcp::background_sandbox_tests::detached_task_still_running_at_teardown_never_touches_the_real_home ... ok test mcp::herdr_report_tests::a_long_run_refreshes_working_until_the_end ... ok test mcp::herdr_report_tests::a_same_millisecond_pair_still_separates ... ok test mcp::herdr_report_tests::background_delegate_reports_working_then_idle ... ok 2026-10-05T00:08:45+00:00 clauth: herdr pane report-metadata exited exit status: 1 (pane state working not reported) 2026-10-05T00:08:45+00:00 clauth: herdr pane report-metadata exited exit status: 1 (pane state idle not reported) test mcp::herdr_report_tests::failing_herdr_does_not_fail_the_delegate ... ok test mcp::herdr_report_tests::fanout_reports_working_once_and_idle_last ... ok 2026-10-05T00:08:47+00:00 clauth: herdr pane report-metadata timed out (killed; pane state working not reported) 2026-10-05T00:08:49+00:00 clauth: herdr pane report-metadata timed out (killed; pane state idle not reported) test mcp::herdr_report_tests::hanging_herdr_does_not_block_the_delegate ... ok test mcp::herdr_report_tests::overlap_reports_idle_once_after_last_end ... ok test mcp::herdr_report_tests::refusal_before_commit_reports_nothing ... ok test mcp::herdr_report_tests::resolve_accepts_path_binary ... ok test mcp::herdr_report_tests::resolve_finds_bare_name_on_path ... ok test mcp::herdr_report_tests::resolve_requires_pane_id ... ok test mcp::herdr_report_tests::resolve_requires_resolvable_binary ... ok test mcp::herdr_report_tests::resolve_requires_the_delegate_dot_knob ... ok test mcp::herdr_report_tests::seq_starts_from_the_clock_so_a_restart_cannot_rewind ... ok test mcp::herdr_report_tests::server_with_knob_off_spawns_nothing_even_with_pane_env ... ok test mcp::herdr_report_tests::server_without_pane_env_spawns_nothing ... ok test mcp::herdr_report_tests::server_without_reporter_spawns_nothing_even_with_pane_env ... ok test mcp::herdr_report_tests::sync_delegate_reports_working_then_idle ... ok test mcp::herdr_report_tests::transition_order_and_seq_order_agree_under_contention ... ok test mcp::herdr_report_tests::unpaired_end_leaves_the_count_usable ... ok test mcp::jobs::tests::a_done_record_carries_the_envelopes_session_id ... ok test mcp::jobs::tests::a_done_record_is_claimable_once_and_the_claim_evicts_it ... ok test mcp::jobs::tests::a_heartbeat_rewrites_the_running_record_in_place ... ok test mcp::jobs::tests::a_job_file_from_an_older_server_still_parses ... ok test mcp::jobs::tests::a_job_still_talking_survives_the_corpse_sweep_however_old_it_is ... ok test mcp::jobs::tests::base36_spans_its_whole_domain ... ok test mcp::jobs::tests::a_leftover_claimed_file_is_invisible_to_list_and_reaped_only_by_the_full_sweep ... ok test mcp::jobs::tests::a_liveness_record_is_swept_on_the_same_rules_as_any_other_running_one ... ok test mcp::jobs::tests::a_record_from_a_dead_epoch_of_a_reused_pid_is_a_corpse ... ok test mcp::jobs::tests::a_record_owned_by_a_live_server_reads_live_until_its_marker_drops ... ok test mcp::jobs::tests::job_id_safety_rejects_traversal_and_separators ... ok test mcp::jobs::tests::new_job_id_is_unique_and_safe ... ok test mcp::jobs::tests::a_record_whose_owner_is_gone_reads_as_a_corpse_and_the_narrow_sweep_reaps_it ... ok test mcp::jobs::tests::a_stale_claimed_spelling_does_not_block_the_claim ... ok test mcp::jobs::tests::a_tombstone_reads_orphaned_not_done ... ok test mcp::jobs::tests::an_owned_live_record_silent_past_the_window_is_not_a_corpse ... ok test mcp::jobs::tests::an_ownerless_legacy_record_keeps_the_silence_rule ... ok test mcp::jobs::tests::claim_refuses_a_record_whose_self_report_disagrees_and_leaves_it_readable ... ok test mcp::jobs::tests::gc_reaps_expired_running_and_done_keeps_fresh ... ok test mcp::jobs::tests::gc_sweeps_stray_tmp_files ... ok test mcp::jobs::tests::job_files_and_dir_are_owner_only ... ok test mcp::jobs::tests::no_id_a_reader_accepts_can_resolve_a_liveness_record ... ok test mcp::jobs::tests::promote_moves_the_spelling_and_keeps_the_id ... ok test mcp::jobs::tests::records_sharing_an_anchor_are_ordered_by_id_not_by_readdir ... ok test mcp::jobs::tests::the_conversion_never_overwrites_a_finished_result ... ok test mcp::jobs::tests::the_corpse_sweep_touches_only_orphaned_running_files ... ok test mcp::jobs::tests::the_cwd_and_spawner_ride_the_mint_through_heartbeats_and_the_finish ... ok test mcp::jobs::tests::the_delivery_ledger_names_who_delivered_and_when ... ok test mcp::jobs::tests::the_done_ttl_measures_from_the_finish_not_the_mint ... ok test mcp::jobs::tests::the_full_sweep_keeps_a_fresh_ledger_and_reaps_a_stale_one ... ok test mcp::jobs::tests::the_id_tiebreak_never_outranks_the_anchor ... ok test mcp::jobs::tests::the_isolation_flag_rides_the_mint_through_heartbeats_and_the_finish ... ok test mcp::jobs::tests::the_listing_calls_a_corpse_what_the_sweep_would_reap ... ok test mcp::jobs::tests::the_listing_destroys_nothing_it_reads ... ok test mcp::jobs::tests::the_listing_orders_on_the_retention_anchor_across_both_spellings ... ok test mcp::jobs::tests::the_liveness_record_of_a_dead_owner_is_tombstoned_not_reaped ... ok test mcp::jobs::tests::the_server_marker_releases_when_its_holder_drops ... ok test mcp::jobs::tests::the_store_keeps_more_than_the_cap_while_the_ttls_protect_them ... ok test mcp::jobs::tests::the_sweep_converts_a_silent_liveness_record_into_a_tombstone ... ok test mcp::jobs::tests::the_windows_hold_for_a_day_each ... ok test mcp::jobs::tests::unknown_job_reads_none ... ok test mcp::jobs::tests::write_read_roundtrip_running_then_done ... ok test mcp::profiles_tool_tests::a_bars_carrying_z_ai_row_renders_the_headline_alone ... ok test mcp::profiles_tool_tests::a_codex_name_in_the_filter_is_refused_as_a_codex_account ... ok test mcp::profiles_tool_tests::a_generic_api_key_row_reports_its_own_figures_and_claims_no_anthropic_plan ... ok test mcp::profiles_tool_tests::a_single_wallet_profile_renders_unchanged ... ok test mcp::profiles_tool_tests::a_third_party_session_row_claims_no_unknown_it_structurally_has_none_of ... ok test mcp::profiles_tool_tests::a_two_wallet_profile_renders_its_funded_wallet_figure ... ok test mcp::profiles_tool_tests::a_userinfo_base_url_puts_no_credentials_on_the_profiles_row ... ok test mcp::profiles_tool_tests::a_wallet_series_renders_its_burn_rate_on_the_roster_row ... ok test mcp::profiles_tool_tests::an_env_authored_endpoint_renders_its_host_in_the_roster_row ... ok test mcp::profiles_tool_tests::an_unrecognised_scope_is_refused_by_name ... ok test mcp::profiles_tool_tests::an_unresolvable_name_is_refused_and_named ... ok test mcp::profiles_tool_tests::the_three_state_markers_render_as_one_group ... ok test mcp::render::tests::a_cost_with_no_endpoint_to_read_is_qualified_never_bare ... ok test mcp::render::tests::a_listing_row_renders_a_zero_span_as_a_length_not_as_an_instant ... ok test mcp::render::tests::a_local_endpoint_row_reads_apart_from_a_genuinely_unknown_one ... ok test mcp::render::tests::a_spent_window_still_outranks_the_richest_wallet ... ok test mcp::render::tests::a_userinfo_base_url_leaks_no_credentials_into_either_carrier ... ok test mcp::render::tests::an_orphaned_listing_row_carries_the_resume_handle_a_running_one_does_not ... ok test mcp::render::tests::an_orphaned_row_renders_the_day_scale_spelling ... ok test mcp::profiles_tool_tests::an_unresolved_session_reads_unknown_not_empty ... ok test mcp::render::tests::an_overdrawn_wallet_ranks_last_in_its_currency_group ... ok test mcp::render::tests::base_url_host_returns_the_host_not_the_authority ... ok test mcp::render::tests::both_carriers_spell_a_local_endpoint_the_same_way ... ok test mcp::render::tests::delegate_fanout_prose_carries_headroom_per_target_and_one_digest ... ok test mcp::render::tests::delegate_fanout_results_prose_names_each_row_and_digest_last ... ok test mcp::render::tests::delegate_prose_background_handle_carries_the_footer_and_the_digest ... ok test mcp::render::tests::delegate_prose_renders_background_and_sync_envelope ... ok test mcp::render::tests::delegate_refusal_prose_names_the_spelled_targets ... ok test mcp::render::tests::delegate_prose_shrinks_the_finished_envelope ... ok test mcp::render::tests::denial_names_counts_repeats_and_unnamed_entries ... ok test mcp::render::tests::denial_names_pluralizes_the_unnamed_group ... ok test mcp::render::tests::digest_prose_names_only_moved_observables ... ok test mcp::render::tests::denial_names_drops_empty_and_names_the_unparseable ... ok test mcp::render::tests::envelope_prose_gives_a_cancelled_run_its_own_verdict_word ... ok test mcp::render::tests::envelope_prose_leaves_usage_bare_for_an_anthropic_served_by ... ok test mcp::render::tests::envelope_prose_names_a_blank_usage_key ... ok test mcp::render::tests::envelope_prose_names_denials_and_marks_the_unreadable ... ok test mcp::render::tests::envelope_prose_qualifies_usage_for_a_non_anthropic_served_by ... ok test mcp::render::tests::envelope_prose_renders_the_old_clause_without_a_served_by_label ... ok test mcp::render::tests::fmt_cost_renders_four_decimals_trimmed_and_never_reads_free ... ok test mcp::render::tests::host_locality_places_local_hosts_and_leaves_the_rest_bare ... ok test mcp::render::tests::instructions_block_emits_stable_roster_router_and_safety_prose ... ok test mcp::render::tests::live_usage_prose_answers_for_a_third_party_target ... ok test mcp::render::tests::live_usage_prose_dates_an_all_lapsed_unknown ... ok test mcp::render::tests::live_usage_prose_names_every_window_and_warns ... ok test mcp::render::tests::monitor_batch_prose_derives_the_unknown_clause_from_the_payload_count ... ok test mcp::render::tests::monitor_batch_prose_never_opens_with_a_blank_line ... ok test mcp::render::tests::monitor_job_prose_renders_a_wrapped_scalar_self_report ... ok test mcp::render::tests::monitor_job_prose_renders_running_invalid_and_done ... ok test mcp::render::tests::monitor_state_prose_names_no_overflow_when_nothing_was_left_out ... ok test mcp::render::tests::monitor_state_prose_lists_the_delegates_and_says_nothing_when_there_are_none ... ok test mcp::render::tests::profiles_prose_handles_empty_roster_and_error_envelope ... ok test mcp::render::tests::profiles_prose_renders_each_row_with_unknown_for_null_fields ... ok test mcp::render::tests::roster_groups_identical_brackets_and_leads_with_most_headroom ... ok test mcp::render::tests::roster_ranks_wallets_within_a_currency_and_never_across_two ... ok test mcp::render::tests::session_auth_variants_shape_switch_note_and_runtime_paths ... ok test mcp::render::tests::session_scope_prose_names_the_row_its_source_and_usage ... ok test mcp::render::tests::session_scope_prose_says_unknown_when_unresolved ... ok test mcp::render::tests::switch_profile_prose_renders_success_and_failure ... ok test mcp::render::tests::the_cost_clause_is_bare_only_for_an_anthropic_target ... ok test mcp::render::tests::third_party_headline_all_lapsed_bars_fall_through_to_row ... ok test mcp::render::tests::third_party_headline_all_lapsed_bars_fall_through_to_wallet ... ok test mcp::render::tests::third_party_headline_all_lapsed_bars_keep_the_plan_prefix ... ok test mcp::render::tests::third_party_headline_all_lapsed_bars_render_the_refusal_beside_its_figure ... ok test mcp::render::tests::third_party_headline_all_lapsed_bars_with_nothing_stays_empty ... ok test mcp::render::tests::third_party_headline_bare_plan_when_no_bars_or_rows ... ok test mcp::render::tests::third_party_headline_drops_bars_whose_reset_has_passed ... ok test mcp::render::tests::third_party_headline_falls_back_to_first_row ... ok test mcp::render::tests::third_party_headline_joins_bars_with_plan_prefix ... ok test mcp::render::tests::third_party_headline_falls_back_to_the_bare_word_with_no_verdict_row ... ok test mcp::render::tests::third_party_headline_names_a_refusal_beside_its_figure ... ok test mcp::render::tests::third_party_headline_prefers_a_funded_wallet_over_an_empty_one ... ok test mcp::render::tests::third_party_headline_renders_a_refusal_alone_when_no_figure_reported ... ok test mcp::render::tests::third_party_headline_skips_value_less_heading_row ... ok test mcp::render::tests::third_party_headline_unavailable_when_empty ... ok test mcp::render::tests::throughput_prose_flags_appear_only_when_true_with_retry_delay ... ok test mcp::render::tests::throughput_prose_healthy_row_is_name_and_rate_only ... ok test mcp::render::tests::throughput_prose_renders_a_placeholder_row_without_a_model_name ... ok test mcp::render::tests::truncate_clause_walks_scalars_and_a_zero_budget_collapses_to_the_marker ... ok test mcp::render::tests::usage_prose_cuts_a_clause_only_a_little_over_the_budget ... ok test mcp::render::tests::usage_prose_documented_fields_read_english_and_unknown_keys_survive ... ok test mcp::render::tests::usage_prose_cuts_a_long_clause_and_ends_with_an_ellipsis ... ok test mcp::render::tests::usage_prose_does_not_cut_the_composite_heavy_envelope ... ok test mcp::render::tests::usage_prose_drops_a_stringified_zero_and_keeps_a_stringified_figure ... ok test mcp::render::tests::usage_prose_drops_fields_without_a_figure_and_keeps_wire_order ... ok test mcp::render::tests::usage_prose_empty_and_all_filtered_are_empty ... ok test mcp::render::tests::usage_prose_keeps_a_cache_total_that_disagrees_with_its_breakdown ... ok test mcp::render::tests::usage_prose_keeps_both_leaves_when_two_ttls_share_the_total ... ok test mcp::render::tests::usage_prose_keeps_input_and_output_tokens_even_at_zero ... ok test mcp::render::tests::usage_prose_names_an_empty_key_rather_than_rendering_empty_backticks ... ok test mcp::render::tests::usage_prose_reads_a_stringified_number_as_the_figure ... ok test mcp::render::tests::usage_prose_recurses_into_arrays_and_scalars ... ok test mcp::render::tests::usage_prose_renders_surviving_leaves_by_dotted_path ... ok test mcp::render::tests::usage_prose_renders_a_set_flag_and_drops_unset_and_null ... ok test mcp::profiles_tool_tests::keyless_flag_names_only_the_keyless_third_party_profile ... ok test mcp::render::tests::usage_prose_renders_the_documented_fields_even_without_a_number ... ok test mcp::render::tests::usage_prose_treats_a_non_finite_string_as_not_a_figure ... ok test mcp::render::tests::usage_prose_shows_a_single_ttl_cache_figure_once ... ok test mcp::render::tests::windows_prose_appends_the_wallet_burn_rate_to_the_figure ... ok test mcp::render::tests::windows_prose_dates_its_figures_and_marks_a_stale_one ... ok test mcp::render::tests::windows_prose_denies_a_5h_7d_limit_only_where_the_provider_publishes_none ... ok test mcp::render::tests::windows_prose_dates_an_unknown_and_never_marks_it_stale ... ok test mcp::render::tests::windows_prose_drops_a_past_resets_at ... ok test mcp::render::tests::windows_prose_drops_a_missing_or_unparseable_resets_at ... ok test mcp::render::tests::windows_prose_pins_the_reset_countdown_to_the_stored_delta ... ok test mcp::render::tests::windows_prose_renders_a_local_reset_stamp_with_a_countdown_not_the_raw_iso ... ok test mcp::profiles_tool_tests::names_filter_selects_one_profile_case_insensitively ... ok test mcp::profiles_tool_tests::prose_names_the_keyless_profile_and_leaves_the_others_unchanged ... ok test mcp::profiles_tool_tests::quiet_fields_are_absent_and_the_endpoint_prints_as_a_host ... ok test mcp::profiles_tool_tests::roster_flags_name_each_state_and_leave_a_clean_row_unchanged ... ok test mcp::profiles_tool_tests::session_scope_refuses_names_by_name ... ok test mcp::profiles_tool_tests::session_scope_reply_carries_the_session_notes ... ok test mcp::tests::a_blocking_delegate_ticks_progress_on_the_heartbeat_throttle ... ok test mcp::tests::a_blocking_fanout_keeps_every_sibling_when_one_member_panics ... ok test mcp::tests::a_blocking_fanout_ticks_progress_on_the_heartbeat_throttle ... ok test mcp::profiles_tool_tests::session_scope_resolves_the_tier_through_the_which_tiers ... ok test mcp::startup_tests::startup_heals_a_broken_plugin_registration ... ok 2026-10-05T00:08:50+00:00 clauth: bare-session marker not registered: marker /nix/var/nix/builds/nix-12670-2432953799/.tmpHcXjpb/.clauth/live_bare/28021 already held: lock acquisition failed because the operation would block test mcp::startup_tests::startup_herdr_heal_follows_the_saved_update_toggle ... FAILED test mcp::switch_tool_tests::a_switch_with_a_live_delegate_refuses_before_the_mutation ... ok test mcp::tests::a_cancelled_blocking_delegate_with_nothing_to_hand_off_still_waits_for_its_child ... ok test mcp::tests::a_cancelled_blocking_fanout_with_nothing_to_hand_off_still_waits_for_every_child ... ok test mcp::switch_tool_tests::the_live_jobs_guard_scopes_to_this_servers_own_runs ... ok test mcp::switch_tool_tests::unknown_target_is_rejected_without_stripping_live_creds ... ok test mcp::switch_tool_tests::valid_switch_repoints_active_through_the_blocking_task ... ok test mcp::tests::a_batch_polling_a_corpse_names_the_crash_and_hands_back_the_session_id ... ok test mcp::tests::a_batch_polling_a_crashed_tombstone_renders_the_owners_copy_raw ... ok test mcp::tests::a_blocking_run_finished_with_its_caller_waiting_releases_the_entry_with_the_record ... ok test mcp::tests::a_blocking_run_handed_off_keeps_one_id_and_leaves_one_collectable_record ... ok test mcp::tests::a_blocking_run_is_cancellable_from_its_spawn_and_the_entry_travels_with_the_crossing ... ok test mcp::tests::a_blocking_run_is_visible_from_its_spawn_and_leaves_nothing_when_it_finishes ... ok test mcp::tests::a_cancelled_run_finalizes_as_a_done_error_rather_than_stranding ... ok test mcp::tests::a_collect_never_sweeps_the_envelope_it_came_for ... ok test mcp::tests::a_corpse_polled_past_the_window_is_answered_with_its_session_id_not_the_aged_copy ... ok test mcp::tests::a_crashed_tombstone_renders_the_owners_isolated_copy ... ok test mcp::tests::a_finished_stream_yields_only_its_terminal_envelope ... ok test mcp::tests::a_crashed_tombstone_renders_the_owners_shared_copy ... ok test mcp::tests::a_dead_owners_record_answered_by_id_names_the_crash_and_its_handle ... ok test mcp::tests::a_dead_owners_row_lists_as_orphaned_not_running ... ok 2026-10-05T00:08:56+00:00 clauth: refusing to prune session owners: the global transcript walk was incomplete test mcp::tests::a_delegate_after_a_switch_off_does_not_pair_the_departed_key_with_the_target_endpoint ... ok test mcp::tests::a_delegate_env_override_qualifies_the_blocking_reply_cost_clause ... ok test mcp::tests::a_delegate_env_override_qualifies_the_collected_reply_cost_clause ... ok test mcp::tests::a_disabled_and_quarantined_target_refuses_as_disabled ... ok test mcp::tests::a_done_jobs_listing_renders_the_resume_sentence ... ok 2026-10-05T00:08:56+00:00 clauth: delegate hand-off failed, its result is lost: Not a directory (os error 20) test mcp::tests::a_failed_hand_off_keeps_the_entry_with_the_live_run ... ok test mcp::tests::a_folded_live_usage_clause_dates_the_figure_it_carries ... ok test mcp::tests::a_folded_live_usage_clause_gates_the_pct_fields_on_window_liveness ... ok test mcp::tests::a_generic_api_key_target_answers_with_the_figures_clauth_holds ... ok test mcp::tests::a_handed_off_run_is_not_reaped_by_the_monitor_that_comes_to_read_it ... ok test mcp::tests::a_handleless_corpse_falls_back_to_the_aged_branch ... ok test mcp::tests::a_handleless_tombstone_promises_no_resume_handle ... ok test mcp::tests::a_heartbeat_after_finalize_writes_nothing ... ok test mcp::tests::a_heartbeat_reaches_a_running_check ... ok test mcp::tests::a_non_zero_exit_still_hands_back_what_the_run_produced ... ok test mcp::tests::a_heartbeat_that_raced_the_crossing_cannot_outlive_it ... ok test mcp::tests::a_peer_that_sent_no_progress_token_still_gets_its_delegate_awaited ... ok test mcp::tests::a_pinned_output_format_is_captured_as_one_document ... ok test mcp::tests::a_pinned_output_format_is_recognized_in_both_spellings ... ok test mcp::tests::a_live_delegate_is_never_evicted_by_a_burst_of_finished_ones ... ok test mcp::tests::a_mid_run_401_invalid_names_the_key_dead_and_the_fix ... ok test mcp::tests::a_mid_run_401_without_a_fetch_fingerprint_keeps_the_plain_reason ... ok test mcp::tests::a_mid_run_402_rechecks_the_balance_before_naming_it_gone ... ok test mcp::tests::a_mid_run_402_with_a_confirmed_unfunded_cache_names_the_balance_gone ... ok test mcp::tests::a_resume_keeps_its_session_id_and_a_fresh_run_pins_a_new_one ... ok test mcp::tests::a_mid_run_402_without_a_cached_balance_says_the_recheck_found_nothing ... ok test mcp::tests::a_resume_refuses_the_cli_only_latest_shorthand ... ok test mcp::tests::a_minted_provider_rides_the_record_to_the_served_by_clause ... ok test mcp::tests::a_non_402_failure_keeps_the_existing_reason ... ok test mcp::tests::a_normal_isolated_done_record_renders_its_envelope ... ok test mcp::tests::a_quarantined_and_keyless_third_party_target_refuses_as_keyless ... ok test mcp::tests::a_run_with_no_session_id_says_why_there_is_no_handle ... ok test mcp::tests::a_run_with_no_session_never_claims_a_lost_transcript ... ok test mcp::tests::a_quarantined_keyed_third_party_target_is_admitted ... ok test mcp::tests::a_refused_job_ids_list_cancels_nothing ... ok test mcp::tests::a_reserved_job_is_cancellable_before_its_task_starts ... ok test mcp::tests::a_sinkless_reader_never_beats ... ok test mcp::tests::a_reserved_run_is_already_across_the_seam_and_a_hand_off_cannot_move_it ... ok test mcp::tests::a_resume_refuses_a_cwd_that_is_not_the_recorded_workspace ... ok test mcp::tests::a_resume_with_the_delivered_id_resolves_the_transcript ... ok test mcp::tests::a_tick_on_a_token_less_peer_builds_nothing_and_sends_nothing ... ok test mcp::tests::a_tick_sends_one_message_per_throttle_window_and_nothing_inside_it ... ok test mcp::tests::a_run_cancelled_before_it_spawns_says_the_window_was_not_spent ... ok 2026-10-05T00:08:56+00:00 clauth: delegate landed while `d-muuhqy22-79` was being minted; its result is lost test mcp::tests::a_run_that_finishes_first_keeps_its_envelope_and_leaves_no_job_file ... ok test mcp::tests::a_run_that_refused_before_spawning_leaves_the_seam_unarmed ... ok test mcp::tests::a_run_with_no_wall_clock_still_reports_its_idle_countdown_and_tail ... ok test mcp::tests::an_abandoned_blocking_wait_ends_the_moment_its_run_is_handed_off ... ok test mcp::tests::a_running_check_on_a_third_party_target_reports_that_accounts_own_figures ... ok test mcp::tests::a_running_check_renders_a_bar_shaped_provider_cache_too ... ok test mcp::tests::a_spawn_write_that_lost_the_race_to_the_crossing_is_cleared_too ... ok test mcp::tests::a_store_inside_the_bound_names_no_overflow ... ok test mcp::tests::a_streamed_session_id_round_trips_through_the_running_record ... ok test mcp::tests::a_two_wallet_profile_ranks_on_its_funded_wallet ... ok test mcp::tests::a_two_wallet_profile_ranks_on_the_first_currency_listed ... ok test mcp::tests::a_windows_publishing_provider_is_never_denied_over_a_bar_less_response ... ok test mcp::tests::an_abandoned_blocking_fanout_hands_every_member_off ... ok test mcp::tests::an_abandoned_run_with_a_live_child_hands_off_to_a_job_file ... ok test mcp::tests::an_abandoned_run_with_no_child_yet_mints_nothing_and_stops_instead ... ok test mcp::tests::an_empty_store_adds_no_listing_to_the_state_reply ... ok test mcp::tests::an_unparseable_envelope_still_hands_back_what_the_run_produced ... ok test mcp::tests::an_endpointless_done_record_collects_as_endpoint_unknown ... ok test mcp::tests::an_env_authored_endpoint_qualifies_the_cost_clause ... ok test mcp::tests::an_id_keyed_monitor_call_cannot_reach_what_the_listing_shows ... ok test mcp::tests::an_in_band_error_envelope_carries_the_scan_to_the_recording_site ... ok test mcp::tests::an_isolated_corpse_offers_no_resume_handle ... ok test mcp::tests::an_unknown_id_with_a_delivery_on_record_names_the_delivery ... ok test mcp::tests::an_unknown_job_id_names_which_cause_it_was ... ok test mcp::tests::an_unparseable_401_exit_names_the_key_dead_too ... ok test mcp::tests::an_unparseable_402_exit_rechecks_the_balance_too ... ok test mcp::tests::an_unreadable_profile_config_prices_as_endpoint_unknown ... ok test mcp::tests::background_depth_guard_refuses_without_writing_job ... ok test mcp::tests::background_fanout_refuses_a_keyless_member_before_writing_jobs ... ok test mcp::tests::both_deadlines_reach_a_running_check ... ok test mcp::tests::delegate_env_caller_reauthority_and_clauth_keys_win ... ok test mcp::tests::delegate_env_strips_active_profile_custom_env ... ok test mcp::tests::delegate_env_strips_inherited_provider_routing ... ok test mcp::tests::cancelling_a_finished_job_this_server_does_not_hold_says_it_finished ... ok test mcp::tests::cancelling_a_job_owned_by_a_live_foreign_server_names_that_server ... ok test mcp::tests::cancelling_a_job_whose_server_is_gone_removes_its_row_and_says_so ... ok test mcp::tests::every_completion_arm_stamps_the_pinned_session_id ... ok test mcp::tests::finalize_drains_in_flight_beats_before_any_of_its_io ... ok test mcp::tests::cancelling_a_live_job_flips_its_flag_and_the_reply_says_so ... ok test mcp::tests::cancelling_a_record_from_a_dead_epoch_of_this_pid_names_the_gone_server ... ok test mcp::tests::mark_spawned_registers_the_entry_before_it_writes_the_record ... ok test mcp::tests::minted_job_ids_round_trip_through_job_id_minted_at ... ok test mcp::tests::cancelling_a_tombstone_names_the_gone_server_and_renders_the_crash_copy ... ok test mcp::tests::cancelling_an_ownerless_running_record_keeps_the_hedge ... ok test mcp::tests::cancelling_an_unheld_self_owned_running_record_says_it_is_finishing ... ok test mcp::tests::cancelling_an_unsafe_job_id_refuses_it_rather_than_hedging_it ... ok test mcp::tests::depth_guard_also_refuses_above_one ... ok test mcp::tests::depth_guard_names_the_fanout_targets_the_caller_spelled ... ok test mcp::tests::depth_guard_refuses_at_depth_one_without_spawning ... ok test mcp::tests::fold_active_live_usage_wraps_non_objects_and_folds_objects ... ok test mcp::tests::fold_delegate_live_usage_wraps_non_objects_and_folds_objects ... ok test mcp::tests::monitor_batch_an_all_unknown_cap_batch_grows_by_exactly_one_clause ... ok test mcp::tests::monitor_batch_failed_job_is_a_protocol_error ... ok test mcp::tests::monitor_batch_names_an_unknown_cause_once_at_the_tail ... ok test mcp::tests::monitor_batch_never_evicts_a_mismatched_stored_job_id ... ok test mcp::tests::monitor_batch_prose_is_one_block_with_one_line_per_job ... ok test mcp::tests::monitor_batch_refuses_over_cap_and_empty_list ... ok test mcp::tests::monitor_batch_returns_one_result_per_id_in_order ... ok test mcp::tests::monitor_cannot_collect_a_blocking_run_under_either_spelling ... ok test mcp::tests::only_a_globally_authenticated_server_registers_a_bare_marker ... ok test mcp::tests::parse_envelope_collapses_verbose_transcript_array ... ok test mcp::tests::parse_envelope_errors_on_unparseable_output ... ok test mcp::tests::parse_envelope_passes_plain_json_object_through ... ok test mcp::tests::parse_envelope_recovers_result_from_ndjson_stream ... ok test mcp::tests::monitor_done_claims_the_job_before_the_result_renders ... ok test mcp::tests::monitor_done_returns_envelope_and_evicts ... ok test mcp::tests::monitor_done_scalar_envelope_is_wrapped_not_panicked ... ok test mcp::tests::monitor_invalid_job_id_is_error ... ok test mcp::tests::monitor_one_renders_a_mismatched_stored_id_without_evicting ... ok test mcp::tests::monitor_refuses_cancel_without_job_ids ... ok test mcp::tests::monitor_running_reports_status ... ok test mcp::tests::monitor_single_spelling_keeps_the_pre_merge_done_bytes_and_names_its_unknown_cause ... ok test mcp::tests::monitor_unknown_job_is_error ... ok test mcp::tests::record_dead_key_drops_the_balance_cache_and_records_the_fingerprint_verdict ... ok test mcp::tests::render_done_envelope_leaves_the_job_until_the_caller_evicts ... ok test mcp::tests::resolve_fanout_passes_when_every_member_is_delegable ... ok test mcp::tests::resolve_fanout_refuses_a_codex_member_as_a_codex_account ... ok test mcp::tests::resolve_fanout_refuses_a_keyless_third_party_member_by_name ... ok test mcp::tests::resolve_fanout_refuses_an_auth_broken_member_by_name ... ok test mcp::tests::run_delegate_never_returns_between_spawning_the_reader_and_taking_the_capture ... ok test mcp::tests::run_delegate_reads_the_cancel_flag_between_the_acquire_and_the_spawn ... ok test mcp::tests::run_delegate_records_the_spawn_only_after_the_child_exists ... ok test mcp::tests::resolve_fanout_refuses_an_empty_key_member_by_name ... ok test mcp::tests::roster_rank_ignores_a_retyped_profiles_leftover_oauth_cache ... ok test mcp::tests::roster_rank_ignores_a_stale_oauth_cache_on_an_api_key_account ... ok test mcp::tests::roster_rank_reports_free_percent_from_the_best_known_window ... ok test mcp::tests::roster_rank_skips_a_third_party_bar_whose_reset_has_passed ... ok test mcp::tests::roster_rank_skips_a_window_whose_reset_has_passed ... ok test mcp::tests::run_delegate_does_not_refuse_a_keyed_third_party_target ... ok test mcp::tests::salvaged_text_keeps_its_tail_on_a_char_boundary ... ok test mcp::tests::streamed_deltas_are_not_counted_twice_against_their_own_block ... ok test mcp::tests::run_delegate_does_not_refuse_an_env_authenticated_third_party_profile ... ok test mcp::tests::tail_line_collapses_whitespace_and_bounds_its_length ... ok test mcp::tests::the_401_stems_cover_a_dead_key_but_not_payment_or_timestamps ... ok test mcp::tests::run_delegate_does_not_refuse_an_oauth_profile ... ok test mcp::tests::the_blocking_delegate_awaits_its_task_through_the_progress_ticker ... ok test mcp::tests::the_blocking_delegate_folds_its_digest_on_the_abandoned_bit ... ok test mcp::tests::the_cancel_registry_holds_a_flag_only_while_the_run_is_registered ... ok test mcp::tests::the_capture_keeps_the_session_id_and_the_newest_throttle_line ... ok test mcp::tests::run_delegate_refuses_a_control_char_api_key_third_party_target ... ok test mcp::tests::the_dead_key_recording_forward_survives_each_completion_arm ... ok test mcp::tests::the_delegate_description_keeps_its_load_bearing_warnings ... ok test mcp::tests::the_delegate_description_names_the_usage_contract ... ok test mcp::tests::the_delegate_teardown_tail_is_the_rescue_leg_gated_on_isolation_alone ... ok test mcp::tests::run_delegate_refuses_a_disabled_target_before_acquiring_a_runtime ... ok test mcp::tests::run_delegate_refuses_a_keyless_alibaba_profile ... ok test mcp::tests::run_delegate_refuses_a_keyless_third_party_target_before_acquiring_a_runtime ... ok test mcp::tests::the_monitor_entry_names_the_listing_and_the_interrupted_delegate ... ok test mcp::tests::the_plugin_probes_own_child_registers_no_bare_marker ... ok test mcp::tests::the_prespawn_cancel_promises_no_session_handle ... ok test mcp::tests::the_production_heartbeat_passes_the_captured_session_id ... ok test mcp::tests::the_profile_not_found_builder_names_the_fix ... ok test mcp::tests::run_delegate_refuses_a_whitespace_api_key_third_party_target ... ok test mcp::tests::the_profile_not_found_sentence_is_composed_in_one_place ... ok test mcp::tests::the_profiles_entry_names_both_scopes_and_the_reply_shape ... ok test mcp::tests::the_session_id_description_discloses_the_env_split ... ok test mcp::tests::run_delegate_refuses_an_auth_broken_target_before_acquiring_a_runtime ... ok test mcp::tests::run_delegate_refuses_an_empty_api_key_third_party_target ... ok test mcp::tests::switch_profile_refuses_a_codex_name_as_a_codex_account ... ok test mcp::tests::the_supervision_cancel_forwards_the_pinned_session_id ... ok test mcp::tests::the_switch_profile_entry_points_at_the_pre_commit_check ... ok test mcp::tests::the_throttle_scan_carries_every_source_a_rate_limit_hides_in ... ok test mcp::tests::the_402_stems_cover_payment_and_quota_but_not_funding_or_timestamps ... ok test mcp::tests::throughput_row_omits_the_placeholder_non_name_and_keeps_real_names ... ok test mcp::tests::token_is_job_id_accepts_fresh_and_legacy_and_rejects_bad_shapes ... ok test mcp::tests::the_cli_listing_and_the_state_mode_listing_report_the_same_store ... ok test mcp::tests::the_fold_labels_the_serving_provider_from_the_calls_resolution ... ok test mcp::tests::the_heartbeat_method_writes_the_running_record_with_the_session_id ... ok test mcp::tests::the_listing_dates_every_state_by_the_stamp_that_state_makes_worth_reading ... ok test mcp::tests::the_refusal_tells_a_codex_name_apart_from_an_unknown_one ... ok test mcp::tests::the_state_mode_listing_is_bounded_and_newest_first ... ok test mcp::tests::the_state_mode_lists_a_handed_off_jobs_id ... ok test mcp::tests::throughput_note_drops_the_prefix_and_the_default_placeholder ... ok test mcp::tests::the_stdout_reader_throttles_the_heartbeat_sink ... ok test oauth::tests::a_state_lock_timeout_reads_as_contention_not_permissions ... ok test oauth::tests::a_captured_window_exhaustion_429_carries_the_limiters_rejection ... ok test oauth::tests::a_failed_clear_persist_is_logged_and_retried_by_the_next_call ... ok test oauth::tests::a_failed_persist_after_a_good_refresh_offers_a_retry ... ok test oauth::tests::a_failed_set_persist_is_logged_and_retried_by_the_next_call ... ok 2026-10-05T00:09:08+00:00 clauth: login for 'qp-dead' has expired: refresh token revoked or invalid: run clauth login qp-dead (flagged auth_broken) 2026-10-05T00:09:08+00:00 clauth: failed to persist auth_broken set for 'qp-dead': failed to read /nix/var/nix/builds/nix-12670-2432953799/.tmpb17MKf/.clauth/profiles.toml: Is a directory (os error 21) test oauth::tests::a_failed_set_persist_that_never_retried_stays_invisible_to_a_fresh_load ... ok test oauth::tests::a_live_session_on_a_rolling_chain_refuses_the_switch_with_the_live_session_copy ... ok test oauth::tests::a_live_session_on_a_rolling_chain_still_stamps_from_a_comfortable_chain ... ok test oauth::tests::a_rotation_keeps_a_design_login_the_live_file_held ... ok test oauth::tests::a_rotation_never_puts_an_older_live_copy_over_the_stores ... ok 2026-10-05T00:09:08+00:00 clauth: live login for 'adopt-dead-stored' is newer but its identity can't be proven (no cached account id and the stored token is dead). Not adopting; resolve in the clauth TUI or re-run clauth login adopt-dead-stored test oauth::tests::adopt_live_rotation::a_dead_stored_token_probe_is_suppressed_for_one_window ... ok test oauth::tests::adopt_live_rotation::a_different_foreign_login_announces_while_same_account_churn_stays_silent ... ok test oauth::tests::adopt_live_rotation::a_different_login_under_an_unprovable_state_announces_again ... ok test oauth::tests::adopt_live_rotation::a_refusal_reason_flip_announces_the_new_state_once ... ok test oauth::tests::adopt_live_rotation::a_resolved_link_clears_the_record_so_a_recurrence_announces_again ... ok 2026-10-05T00:09:08+00:00 clauth: live login for 'adopt-refusal-clear' is newer but its identity can't be proven (no cached account id and the stored token is dead). Not adopting; resolve in the clauth TUI or re-run clauth login adopt-refusal-clear 2026-10-05T00:09:08+00:00 clauth: adopted the live session's rotated login for 'adopt-refusal-clear' (the running claude refreshed first, so no token spent) test oauth::tests::adopt_live_rotation::a_resolving_adopt_clears_the_refusal_record ... ok 2026-10-05T00:09:08+00:00 clauth: live login for 'adopt-refusal-regime' belongs to a DIFFERENT account. Not adopting; capture it via the clauth TUI divergence flow if that was intentional test oauth::tests::adopt_live_rotation::a_session_token_regime_switch_clears_a_stale_refusal_record ... ok test oauth::tests::adopt_live_rotation::a_standing_adopt_refusal_is_announced_once_per_state ... ok 2026-10-05T00:09:08+00:00 clauth: live login for 'adopt-ttl-lapse' is newer but its identity can't be proven (no cached account id and the stored token is dead). Not adopting; resolve in the clauth TUI or re-run clauth login adopt-ttl-lapse test oauth::tests::adopt_live_rotation::a_suppressed_stored_probe_retries_after_the_ttl_lapses ... ok test oauth::tests::adopt_live_rotation::refuses_when_not_the_active_profile ... ok 2026-10-05T00:09:08+00:00 clauth: 'adopt-quarantined' re-authenticated: auth_broken cleared 2026-10-05T00:09:08+00:00 clauth: adopted the live session's rotated login for 'adopt-quarantined' (the running claude refreshed first, so no token spent) 2026-10-05T00:09:08+00:00 clauth: live login for 'adopt-refusal-durable' is newer but its identity can't be proven (no cached account id and the stored token is dead). Not adopting; resolve in the clauth TUI or re-run clauth login adopt-refusal-durable test oauth::tests::adopt_live_rotation::adopting_a_live_rotation_lifts_a_stale_quarantine ... ok test oauth::tests::adopt_live_rotation::the_adopt_refusal_record_is_durable_on_disk ... ok 2026-10-05T00:09:08+00:00 clauth: adopted the live session's rotated login for 'adopt-ok' (the running claude refreshed first, so no token spent) test oauth::tests::adopt_live_rotation::adopts_a_fresher_same_account_pair ... ok test oauth::tests::an_adoption_flock_failure_splits_contention_from_fault ... ok 2026-10-05T00:09:08+00:00 clauth: adopted the live session's rotated login for 'adopt-cached-anchor' (the running claude refreshed first, so no token spent) test oauth::tests::canonicalize_scopes_matches_claude_code_order ... ok test oauth::tests::adopt_live_rotation::cached_anchor_allows_adopt_even_with_a_dead_stored_token ... ok test oauth::tests::dead_chain_copy_alibaba_ignores_a_verdict_for_a_replaced_console ... ok test oauth::tests::dead_chain_copy_alibaba_renders_the_dead_console_sentence_on_a_matching_verdict ... ok test oauth::tests::adopt_live_rotation::refuses_a_stale_or_equal_mirror ... ok test oauth::tests::adopt_live_rotation::adopt_does_not_resurrect_a_deleted_profile ... ok 2026-10-05T00:09:08+00:00 clauth: live login for 'adopt-anchorless' is newer but its identity can't be proven (no cached account id and the stored token is dead). Not adopting; resolve in the clauth TUI or re-run clauth login adopt-anchorless test oauth::tests::adopt_live_rotation::refuses_without_an_identity_anchor ... ok 2026-10-05T00:09:08+00:00 clauth: refresh for 'rotate-unparseable-2xx' failed: HTTP 200 but the body did not parse as a token response (unexpected shape at line 1, column 34); 34 bytes withheld (contains live credentials) test oauth::tests::an_unparseable_2xx_tells_the_operator_to_wait ... ok test oauth::tests::adopt_live_rotation::refuses_a_blank_identity ... ok test oauth::tests::describe_kick_failure_names_status_and_error ... ok test oauth::tests::exchange_body_matches_cc_field_set ... ok test oauth::tests::force_true_bypasses_diverged_active_when_no_active_profile ... ok test oauth::tests::auto_start_kick_does_not_rotate_under_a_forced_live_session ... ok 2026-10-05T00:09:33+00:00 clauth: live login for 'adopt-foreign' belongs to a DIFFERENT account. Not adopting; capture it via the clauth TUI divergence flow if that was intentional test oauth::tests::adopt_live_rotation::refuses_a_live_login_from_a_different_account ... ok test oauth::tests::adopt_live_rotation::refuses_a_session_token_profile ... ok test oauth::tests::dead_chain_copy_alibaba_without_a_console_keeps_the_dead_chain_sentence ... ok test oauth::tests::dead_chain_copy_env_carried_api_key_keeps_the_dead_chain_sentence ... ok test oauth::tests::dead_chain_copy_env_token_without_a_key_renders_the_keyless_sentence ... ok test oauth::tests::dead_chain_copy_ignores_a_verdict_for_another_credential ... ok test oauth::tests::dead_chain_copy_renders_keyless_when_the_verdict_matches_the_current_key ... ok test oauth::tests::dead_chain_copy_without_a_verdict_keeps_the_dead_chain_sentence ... ok 2026-10-05T00:09:33+00:00 clauth: login for 'test-gate-no-rt' has expired: refresh token revoked or invalid: run clauth login test-gate-no-rt (flagged auth_broken) test oauth::tests::gate_expiring_without_refresh_token_is_broken ... ok 2026-10-05T00:09:33+00:00 clauth: 'test-gate-flagged-recovers' re-authenticated: auth_broken cleared test oauth::tests::gate_flagged_profile_refreshes_despite_a_valid_clock ... ok 2026-10-05T00:09:33+00:00 clauth: refresh for 'test-gate-flagged-dead' failed: HTTP 400 test oauth::tests::gate_flagged_profile_with_a_dead_chain_stays_broken ... ok test oauth::tests::gate_installs_as_is_under_a_forced_live_session ... ok test oauth::tests::gate_installs_as_is_under_a_live_session_on_macos ... ok 2026-10-05T00:09:33+00:00 clauth: refresh for 'test-gate-invalid' failed: HTTP 400 2026-10-05T00:09:33+00:00 clauth: login for 'test-gate-invalid' has expired: refresh token revoked or invalid: run clauth login test-gate-invalid (flagged auth_broken) test oauth::tests::gate_invalid_refresh_marks_broken_and_refuses ... ok test oauth::tests::gate_passes_a_quarantined_keyless_third_party_target_through ... ok test oauth::tests::gate_refreshes_expiring_token_and_installs ... ok 2026-10-05T00:09:33+00:00 clauth: 'test-gate-mint-window' long-lived token has expired (or sits inside Claude Code's own five-minute refresh window) — re-mint with `claude setup-token` (clauth login test-gate-mint-window --setup-token) test oauth::tests::gate_refuses_a_mint_inside_ccs_refresh_window ... ok test oauth::tests::gate_session_token_ready_even_when_auth_broken ... ok test oauth::tests::gate_third_party_bypasses ... ok 2026-10-05T00:09:33+00:00 clauth: refresh for 'test-gate-transient' failed: no response test oauth::tests::gate_transient_refresh_does_not_quarantine ... ok test oauth::tests::gate_under_guard_adopts_a_cross_process_rotation_from_disk ... ok 2026-10-05T00:09:33+00:00 clauth: 'test-gate-disk-quarantine' re-authenticated: auth_broken cleared test oauth::tests::gate_under_guard_disk_adoption_lifts_a_stale_quarantine ... ok test oauth::tests::gate_under_guard_installs_a_sibling_refreshed_pair_as_is ... ok test oauth::tests::kick_429_surfaces_limiter_metadata ... ok test oauth::tests::kick_beta_is_ccs_full_six_value_list ... ok test oauth::tests::kick_emits_cc_message_wire_shape ... ok test oauth::tests::kick_rate_limit_distills_status_reset_and_retry_after ... ok 2026-10-05T00:09:33+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock test oauth::tests::gate_under_guard_refuses_when_the_adoption_flock_is_wedged ... ok test oauth::tests::gate_under_guard_spends_the_currently_stored_refresh_token ... ok test oauth::tests::gate_under_guard_spends_the_disk_pair_after_an_external_rotation ... ok test oauth::tests::no_live_session_included_with_force_false ... ok test oauth::tests::no_live_session_included_with_force_true ... ok test oauth::tests::oauth_error_types_have_no_printable_escape_hatch ... ok test oauth::tests::gate_valid_token_ready_without_refresh ... ok test oauth::tests::profile_without_refresh_token_excluded ... ok test oauth::tests::refresh_body_matches_cc_field_set_and_scope ... ok test oauth::tests::guard_acquire_failure_names_the_filesystem_cause ... ok test oauth::tests::refresh_rejection_terminal_truth_table ... ok test oauth::tests::keychain_mirror_gate::live_file_matching_stored_pair_is_not_foreign ... ok test oauth::tests::keychain_mirror_gate::missing_live_file_is_not_foreign ... ok test oauth::tests::keychain_mirror_gate::stale_mirror_of_own_pre_rotation_pair_is_not_foreign ... ok test oauth::tests::keychain_mirror_gate::unrelated_live_login_is_foreign ... ok test oauth::tests::live_session_included_when_force_false ... ok test oauth::tests::live_session_included_with_force_true ... ok 2026-10-05T00:09:33+00:00 clauth: login for 'victim-row' has expired: refresh token revoked or invalid: run clauth login victim-row (flagged auth_broken) test oauth::tests::mark_auth_broken_does_not_resurrect_a_deleted_profiles_row ... ok test oauth::tests::poisoned_config_refusal_offers_no_retry ... ok 2026-10-05T00:09:33+00:00 clauth: refresh for 'gate-wire-dead' failed: HTTP 400 2026-10-05T00:09:33+00:00 clauth: login for 'gate-wire-dead' has expired: refresh token revoked or invalid: run clauth login gate-wire-dead (flagged auth_broken) 2026-10-05T00:09:33+00:00 clauth: refresh for 'gate-wire-flaky' failed: HTTP 503 test oauth::tests::refresh_classification_survives_the_real_wire_in_both_directions ... ok test oauth::tests::restamp_due_fires_inside_the_horizon_or_on_a_misfill ... ok test oauth::tests::restamp_never_parks_behind_a_held_rotation_lock ... ok 2026-10-05T00:09:45+00:00 clauth: 'test-misfill-nowait' preserved static mint has itself expired — not restoring it; re-mint with `clauth login test-misfill-nowait --setup-token` 2026-10-05T00:09:45+00:00 clauth: 'test-misfill-nowait' sidecar is mis-filled and no live static backup exists to restore — the split stays disengaged; re-capture with `clauth login test-misfill-nowait --setup-token` test oauth::tests::restamp_on_a_misfill_with_no_live_backup_never_takes_the_vanilla_gate ... ok 2026-10-05T00:09:45+00:00 clauth: re-stamped 'test-restamp-nospend' session token ahead of its expiry test oauth::tests::restamp_restamps_a_dying_bearer_the_switch_gate_calls_fresh ... ok test oauth::tests::restamp_rotates_when_the_chain_is_inside_the_horizon_too ... ok test oauth::tests::rolling_gate_absent_sidecar_arms_instead_of_vanilla_install ... ok 2026-10-05T00:09:45+00:00 clauth: refresh for 'test-feed-degrade' failed: HTTP 400 2026-10-05T00:09:45+00:00 clauth: login for 'test-feed-degrade' has expired: refresh token revoked or invalid: run clauth login test-feed-degrade (flagged auth_broken) 2026-10-05T00:09:45+00:00 clauth: 'test-feed-degrade' usage chain is dead — sessions degrade to the static long-lived mint (`clauth login test-feed-degrade` revives the chain and the rolling token) test oauth::tests::rolling_gate_dead_chain_restores_static_mint ... ok 2026-10-05T00:09:45+00:00 clauth: refresh for 'test-expired-backup' failed: HTTP 400 2026-10-05T00:09:45+00:00 clauth: login for 'test-expired-backup' has expired: refresh token revoked or invalid: run clauth login test-expired-backup (flagged auth_broken) 2026-10-05T00:09:45+00:00 clauth: 'test-expired-backup' preserved static mint has itself expired — not restoring it; re-mint with `clauth login test-expired-backup --setup-token` test oauth::tests::rolling_gate_dead_chain_with_expired_backup_stays_broken ... ok 2026-10-05T00:09:45+00:00 clauth: refresh for 'test-feed-broken' failed: HTTP 400 2026-10-05T00:09:45+00:00 clauth: login for 'test-feed-broken' has expired: refresh token revoked or invalid: run clauth login test-feed-broken (flagged auth_broken) test oauth::tests::rolling_gate_dead_chain_without_backup_stays_broken ... ok test oauth::tests::rolling_gate_disk_disarm_under_the_guard_stops_the_stamp ... ok test oauth::tests::rolling_gate_fresh_sidecar_ready_without_refresh ... ok 2026-10-05T00:09:45+00:00 clauth: 'test-feed-heal' mis-filled sidecar quarantined; static mint restored (the rolling token re-arms on the next rotation) test oauth::tests::rolling_gate_heals_a_misfilled_sidecar_when_a_backup_exists ... ok 2026-10-05T00:09:45+00:00 clauth: 'test-feed-misfill-vanilla' sidecar is mis-filled and no live static backup exists to restore — the split stays disengaged; re-capture with `clauth login test-feed-misfill-vanilla --setup-token` 2026-10-05T00:09:45+00:00 clauth: 'test-feed-misfill-vanilla' session-token.json holds a rotating pair (refresh token present), not a long-lived mint — ignoring it; re-capture with `clauth login test-feed-misfill-vanilla --setup-token` test oauth::tests::rolling_gate_misfill_without_backup_keeps_the_disengaged_vanilla_posture ... ok test oauth::tests::rolling_gate_stale_sidecar_feeds_from_comfortable_chain_without_spend ... ok test oauth::tests::rolling_gate_stale_sidecar_stale_chain_refreshes_and_restamps ... ok test oauth::tests::rolling_gate_supersedes_a_static_mint_with_a_fed_bearer ... ok 2026-10-05T00:09:45+00:00 clauth: 'test-grant-mint' usage chain's recorded grant cannot mint a rolling bearer (re-run `clauth login test-grant-mint` to record it); installing the static long-lived mint test oauth::tests::rolling_gate_unrecorded_grant_still_installs_a_live_mint ... ok 2026-10-05T00:09:45+00:00 clauth: refresh for 'rotate-keyless-third-party' failed: HTTP 400 test oauth::tests::rotate_names_the_api_key_command_for_a_keyless_third_party_profile ... ok 2026-10-05T00:09:45+00:00 clauth: refresh for 'rotate-keyed-third-party' failed: HTTP 400 test oauth::tests::rotate_names_the_split_state_for_a_keyed_third_party_profile ... ok test oauth::tests::rotate_one_inner_does_not_rotate_under_a_live_session_on_macos ... ok test oauth::tests::the_install_grace_is_ccs_refresh_window_shared_with_the_backup_verdicts ... ok test oauth::tests::rotate_one_inner_skips_under_a_forced_live_session has been running for over 60 seconds test oauth::tests::rotate_one_no_stamp_when_no_refresh_token has been running for over 60 seconds test oauth::tests::rotate_refusal_carries_no_wire_bytes_in_either_direction has been running for over 60 seconds test oauth::tests::rotated_tokens_do_not_resurrect_a_deleted_profile has been running for over 60 seconds test oauth::tests::rotation_guard_is_independent_across_profiles has been running for over 60 seconds test oauth::tests::rotation_hook_disk_disarm_stops_the_stamp has been running for over 60 seconds test oauth::tests::rotation_hook_leaves_non_rolling_split_sidecars_alone has been running for over 60 seconds test oauth::tests::rotation_hook_never_overwrites_a_misfilled_sidecar has been running for over 60 seconds test oauth::tests::rotation_hook_stamps_enabled_profiles_and_preserves_the_mint has been running for over 60 seconds test oauth::tests::rotate_one_inner_skips_under_a_forced_live_session ... ok test oauth::tests::rotate_one_no_stamp_when_no_refresh_token ... ok 2026-10-05T00:11:16+00:00 clauth: refresh for 'rotate-refusal-dead' failed: HTTP 400 2026-10-05T00:11:16+00:00 clauth: refresh for 'rotate-refusal-flaky' failed: HTTP 503 test oauth::tests::rotate_refusal_carries_no_wire_bytes_in_either_direction ... ok test oauth::tests::token_agent_surfaces_non_2xx_as_ok_not_a_transport_error ... ok test oauth::tests::token_endpoint_constants_match_cc_wire ... ok test oauth::tests::token_parse_error_redacts_the_2xx_body ... ok test oauth::tests::rotated_tokens_do_not_resurrect_a_deleted_profile ... ok test oauth_login::tests::authorize_rejection_has_no_printable_escape_hatch ... ok test oauth_login::tests::authorize_rejection_parses_rfc6749_codes_and_anonymizes_the_rest ... ok test oauth_login::tests::authorize_url_takes_the_manual_redirect_and_keeps_code_true ... ok test oauth_login::tests::authorize_url_uses_claude_ai_host_code_true_and_six_scopes ... ok test oauth_login::tests::base64url_nopad_matches_rfc4648_vectors ... ok test oauth_login::tests::begin_login_builds_both_urls_from_one_pair ... ok test oauth_login::tests::callback_aborts_on_a_state_mismatch ... ok 2026-10-05T00:11:28+00:00 clauth: the authorize callback refused the login: access_denied test oauth::tests::rotation_guard_is_independent_across_profiles ... ok 2026-10-05T00:11:28+00:00 clauth: the authorize callback refused the login: an error code outside RFC 6749's set (withheld) test oauth_login::tests::callback_accepts_matching_state_and_extracts_the_code ... ok test oauth_login::tests::callback_aborts_on_an_oauth_error_param_without_echoing_it ... ok 2026-10-05T00:11:28+00:00 clauth: the authorize callback refused the login: access_denied test oauth_login::tests::callback_ignores_unrelated_requests_and_keeps_waiting ... ok 2026-10-05T00:11:28+00:00 clauth: the authorize callback refused the login: server_error test oauth_login::tests::login_links_parse_accepts_its_own_state_and_refuses_any_other ... ok test oauth_login::tests::callback_pages_are_distinct_and_never_reflect_query_values ... ok test oauth_login::tests::login_names_the_status_on_stderr_but_not_in_the_toast ... ok test oauth_login::tests::login_summary_defers_when_the_token_claims_no_plan ... ok test oauth_login::tests::login_summary_names_the_plan_a_free_login_stored ... ok test oauth_login::tests::parse_manual_code_refuses_every_malformed_shape ... ok test oauth_login::tests::manual_code_errors_and_debug_carry_no_pasted_bytes ... ok test oauth_login::tests::parse_manual_code_splits_on_the_hash_and_trims ... ok test oauth::tests::rotation_hook_disk_disarm_stops_the_stamp ... ok test oauth_login::tests::percent_decode_survives_malformed_and_multibyte ... ok test oauth_login::tests::percent_encode_and_decode_round_trip ... ok test oauth_login::tests::pkce_challenge_matches_rfc7636_vector ... ok test oauth_login::tests::query_param_extracts_and_decodes ... ok test oauth_login::tests::request_target_pulls_path_and_query ... ok test oauth_login::tests::wait_for_code_times_out_naming_both_doors_and_the_bound ... ok test out::tests::a_closed_reader_is_an_outcome_not_a_panic ... ok test out::tests::a_full_disk_behind_a_stderr_redirect_still_panics - should panic ... ok test out::tests::a_reachable_reader_gets_the_bytes ... ok test out::tests::any_other_write_failure_still_panics - should panic ... ok test oauth::tests::rotation_hook_leaves_non_rolling_split_sidecars_alone ... ok test platform::tests::base64_std_matches_rfc4648_vectors ... ok test platform::tests::write_osc52_emits_the_whole_escape ... ok test platform::tests::write_osc52_reports_the_writer_error ... ok test plugin_host::tests::committed_root_marketplace_matches_agentgear_rules ... ok test plugin_host::tests::derive_metadata_is_wired ... ok test oauth::tests::rotation_hook_never_overwrites_a_misfilled_sidecar ... ok test plugin_host::tests::embedded_tree_is_baked_in ... ok test oauth::tests::rotation_hook_stamps_enabled_profiles_and_preserves_the_mint ... ok test out::tests::no_bare_print_macro_under_src ... ok test plugin_host::tests::install_sh_runs_self_heal_after_both_install_legs ... ok test oauth::tests::the_kick_reserves_the_shared_anthropic_request_slot has been running for over 60 seconds test oauth::tests::the_kick_reserves_the_shared_anthropic_request_slot ... ok test oauth::tests::the_quarantine_logline_splits_the_recovery_like_every_other_surface ... ok test oauth::tests::the_unavailable_lock_has_one_spelling_across_both_legs ... ok test oauth_login::tests::a_dropped_paste_sender_keeps_the_loopback_door_open ... ok test oauth_login::tests::pending_login_run_completes_the_loopback_door_against_its_redirect ... ok test oauth_login::tests::pending_login_run_completes_the_paste_door_against_the_manual_redirect ... ok test plugin_host::tests::detached_repoint_reports_skips_once_per_process ... ok test plugin_host::tests::heal_detached_skips_when_the_gate_says_healthy ... ok test plugin_host::tests::heal_detached_throttles_to_one_heal_per_window ... ok test plugin_host::tests::preflight_gate_fires_on_every_broken_or_divergent_shape ... ok test plugin_host::tests::repoint_registry_names_a_skip_only_pass ... ok test plugin_host::tests::session_start_hook_wires_self_heal_beside_the_note ... ok test plugin_host::tests::the_await_job_hook_matches_delegate_under_both_server_names ... ok test plugin_host::tests::the_delegate_hook_names_its_wake_summary_instead_of_the_host_placeholder ... ok test plugin_host::tests::repoint_registry_reroots_a_dead_path_and_names_a_missing_twin ... ok test plugin_host::tests::repoint_registry_says_nothing_when_clean ... ok test plugin_host::tests::preflight_gate_heals_when_a_registry_file_is_unparseable ... ok test plugin_host::tests::preflight_gate_ignores_project_scope_entries ... ok test plugin_host::tests::preflight_gate_stays_shut_on_a_healthy_registration ... ok test plugin_probe::tests::the_discover_probe_names_a_pre_stateless_binary ... ok test plugin_probe::tests::the_discover_probe_needs_an_advertised_tools_capability ... ok test plugin_probe::tests::the_mcp_probe_marks_its_child_as_a_probe ... ok test plugin_probe::tests::the_probe_frame_is_a_well_formed_stateless_opener ... ok test plugin_host::tests::preflight_gate_stays_shut_when_nothing_of_ours_is_registered ... ok test plugin_host::tests::preflight_gate_stays_shut_when_the_registry_files_are_absent ... ok test plugin_host::tests::registry_remap_matches_both_separator_spellings ... ok test plugin_host::tests::self_heal_says_nothing_when_healthy_and_reports_changes ... ok test poll::tests::a_disconnect_during_the_first_delay_ends_the_loop_without_ticking ... ok test poll::tests::a_fresh_stamp_waits_out_the_rest_of_the_interval ... ok test poll::tests::a_future_stamp_fetches_now ... ok test plugin_probe::tests::global_entry_drifted_flags_stale_command_and_args ... ok test poll::tests::a_stamp_exactly_at_the_interval_fetches_now ... ok test plugin_probe::tests::installed_records_empty_when_absent_or_other_plugin ... ok test poll::tests::an_expired_stamp_fetches_now ... ok test poll::tests::no_cache_fetches_now ... ok test plugin_probe::tests::installed_records_parses_entry ... ok test plugin_probe::tests::manual_mcp_wiring_detects_global_config ... ok test plugin_probe::tests::marketplace_known_parses_source_repo ... ok test plugin_probe::tests::wire_mcp_server_creates_file_when_absent ... ok test plugin_probe::tests::wire_mcp_server_preserves_other_servers ... ok test plugin_probe::tests::wire_mcp_server_replaces_non_object_mcpservers ... ok test plugin_probe::tests::wire_mcp_server_writes_entry_and_preserves_other_fields ... ok test presets::tests::a_builtin_name_refuses_both_writes_whatever_its_case ... ok test presets::tests::a_hand_written_file_cannot_shadow_a_builtins_slot ... ok test presets::tests::a_name_that_is_not_a_bare_filename_is_refused ... ok test pricing::tests::a_delisted_copy_whose_canonical_a_live_key_holds_never_prices ... ok test pricing::tests::a_model_with_no_named_maker_is_nobody_s_first_party_row ... ok test presets::tests::a_saved_preset_round_trips_and_joins_the_list_after_the_builtins ... ok test presets::tests::an_alibaba_preset_pins_every_alias_and_the_subagent_row ... ok test pricing::tests::a_null_bound_alias_prices_for_every_day ... ok test pricing::tests::a_pair_the_catalog_does_not_name_is_resold ... ok test pricing::tests::a_price_row_after_a_removal_relists_the_key_from_its_date ... ok test pricing::tests::a_same_day_observed_tie_goes_to_the_later_append ... ok test pricing::tests::a_verbatim_id_is_never_remapped_by_the_variant_strip ... ok test pricing::tests::a_removal_row_that_carries_rates_still_terminates_the_key ... ok test pricing::tests::aliases_fixture_distills_three_chains ... ok test pricing::tests::a_winning_history_rows_windows_price_per_hour ... ok test pricing::tests::an_alias_only_resolves_once_the_ladder_misses ... ok test pricing::tests::an_unpriced_id_is_remembered_as_unpriced ... ok test pricing::tests::an_unknown_pair_stays_its_own_key ... ok test presets::tests::an_unparseable_preset_is_skipped_not_fatal ... ok test presets::tests::delete_drops_the_file_and_then_reports_the_miss ... ok test pricing::tests::api_alias_prices_the_canonicals_dated_rate ... ok test pricing::tests::api_alias_retired_past_its_last_record_dashes ... ok test pricing::tests::api_alias_walks_its_chain_by_day ... ok test presets::tests::preset_file_and_dir_are_owner_only ... ok test pricing::tests::capture_appends_only_on_change ... ok test presets::tests::the_builtins_ship_with_their_endpoint_and_base_model ... ok test pricing::tests::catalog_reads_a_sources_value_as_a_list ... ok test pricing::tests::cost_at_uses_dated_rate ... ok test pricing::tests::capture_caps_history_at_180 ... ok test pricing::tests::cost_day_prices_each_hour_at_its_rate ... ok test pricing::tests::cost_none_for_unpriced_model ... ok test pricing::tests::cost_sums_all_four_buckets ... ok test pricing::tests::date_before_first_snapshot_uses_first ... ok test pricing::tests::distill_converts_mtok_to_per_token ... ok 2026-10-05T00:12:18+00:00 price feed: ai-pricelog index version missing (expected 4): parsing best-effort test pricing::tests::distill_drops_a_resold_row_whatever_its_id_spells ... ok test pricing::tests::distill_fails_when_no_models_survive ... ok test pricing::tests::distill_ignores_the_v4_keys_it_models_nothing_for ... ok test pricing::tests::distill_keeps_first_party_drops_resellers ... ok test pricing::tests::distill_keeps_quota_only_windows_as_window_only_entries ... ok test pricing::tests::distill_override_inherits_missing_axes_from_base ... ok test pricing::tests::distill_parses_overrides_and_effective_at ... ok test pricing::tests::distill_reads_an_override_window_without_re_deriving_its_timezone ... ok test pricing::tests::distill_skips_malformed_entries_not_the_row ... ok test pricing::tests::distill_skips_rows_with_malformed_price_fields ... ok test pricing::tests::distill_skips_unparseable_rows_and_sources ... ok test pricing::tests::distill_skips_volume_tier_overrides ... ok test pricing::tests::distill_splits_a_mixed_provider_row_by_row ... ok test pricing::tests::a_pre_source_cache_loads_with_empty_sources_and_stays_identity ... ok test pricing::tests::every_weekday_name_matches_the_feeds_spelling ... ok test pricing::tests::effective_at_gates_the_whole_row ... ok test pricing::tests::free_variant_prices_at_zero_on_a_full_walk_miss ... ok test pricing::tests::free_variant_row_carried_verbatim_wins ... ok test pricing::tests::cache_round_trip_preserves_history ... ok test pricing::tests::future_effective_row_prices_nothing_until_its_date ... ok test pricing::tests::history_distills_first_party_keys_only ... ok test pricing::tests::fixture_distills_resolvers_and_excludes_resellers ... ok test pricing::tests::ids_match_case_insensitively ... ok test pricing::tests::every_feed_file_failing_fails_the_whole_attempt ... ok test pricing::tests::later_window_entry_wins_when_both_match ... ok test pricing::tests::no_active_entry_prices_nothing ... ok test pricing::tests::history_drops_a_mixed_providers_resales_and_keeps_its_own ... ok test pricing::tests::peak_state_before_effective_at_is_none ... ok test pricing::tests::peak_state_crosses_the_weekend_off_peak ... ok test pricing::tests::peak_state_flip_lands_on_the_hour_boundary_from_mid_hour ... ok test pricing::tests::history_rows_with_unmodeled_keys_parse_and_a_resold_one_stays_dropped ... ok test pricing::tests::peak_state_none_for_flat_rates_and_absent_sources ... ok test pricing::tests::peak_state_for_profile_is_provider_bound ... ok test pricing::tests::peak_state_prices_the_two_window_shape_hour_by_hour ... ok test pricing::tests::peak_state_ignores_a_window_shadowed_by_a_later_flat_entry ... ok test pricing::tests::peak_state_walks_every_key_of_a_provider ... ok test pricing::tests::peak_state_source_reads_a_providers_own_rows ... ok test pricing::tests::peak_state_saturday_weekday_window_stays_off_peak ... ok test pricing::tests::provider_registry_keeps_only_named_vendors ... ok test pricing::tests::rate_retries_colon_before_provider_strip ... ok test pricing::tests::rate_retries_colon_strip_bare ... ok test pricing::tests::rate_retries_colon_strip_namespaced ... ok test pricing::tests::rate_bracket_strip_applies_to_original_only ... ok test pricing::tests::rate_retries_date_stamp_strip_repeated ... ok test pricing::tests::rate_retries_date_stamp_strip ... ok test pricing::tests::rate_retries_provider_strip_one_segment ... ok test pricing::tests::rate_retries_provider_strip_two_segments ... ok test pricing::tests::cache_round_trips_the_alias_table_and_old_caches_load_without_it ... ok test pricing::tests::rate_strips_bracket_suffix_before_match ... ok test pricing::tests::rate_retries_propagate_date_and_hour ... ok test pricing::tests::reseller_history_rows_neither_price_nor_delist ... ok test pricing::tests::removal_row_terminates_the_key_from_its_date ... ok test pricing::tests::removed_at_stamped_entries_price_nothing ... ok test pricing::tests::snapshot_picks_rate_live_on_date ... ok test pricing::tests::reseller_only_id_stays_a_dash ... ok test pricing::tests::store_history_dates_today_not_the_snapshot_log ... ok test pricing::tests::store_walk_dash_before_the_oldest_row ... ok test pricing::tests::store_walk_keeps_pricing_past_the_newest_observation ... ok test pricing::tests::store_walk_prices_each_side_of_a_reprice_at_its_own_rate ... ok test pricing::tests::cache_round_trips_the_store_dating_source ... ok test pricing::tests::store_walk_prices_the_weekday_peak_windows_per_hour ... ok test pricing::tests::store_walk_prices_weekend_days_in_the_retro_span_off_peak ... ok test pricing::tests::the_five_feed_urls_are_the_published_dist_tree ... ok test pricing::tests::the_memo_keys_on_the_date_so_two_snapshots_do_not_bleed ... ok test pricing::tests::store_walk_retro_dates_the_windowed_row_before_its_observation ... ok test pricing::tests::time_window_hour_granularity_boundaries ... ok test pricing::tests::the_catalog_keys_a_pair_on_the_source_the_feeds_spell ... ok test pricing::tests::two_window_peak_offpeak_peak ... ok test pricing::tests::two_live_keys_on_one_canonical_keep_first_seen_order ... ok test pricing::tests::unknown_index_version_warns_and_still_parses ... ok test pricing::tests::variant_suffix_prices_the_base_id ... ok test pricing::tests::the_cost_lens_walks_each_model_and_date_once ... ok test pricing::tests::zai_quota_entries_mark_windows_but_never_price ... ok test profile::tests::a_carried_array_of_tables_does_not_swallow_a_later_scalar ... ok test pricing::tests::canonical_map_round_trips_and_old_caches_load_identity ... ok test pricing::tests::load_cache_rejects_empty_history ... ok test pricing::tests::stale_caches_deleted_once ... ok test pricing::tests::the_v3_cache_name_is_not_the_one_this_build_reads ... ok test profile::tests::a_bare_store_stamp_does_not_discard_a_sidecar_staged_before_it ... ok test profile::tests::a_dead_listers_claim_does_not_count_as_a_collision ... ok test profile::tests::a_dead_members_list_hands_its_days_back_to_the_flag ... ok test profile::tests::a_captured_login_keeps_the_unmodelled_oauth_keys_it_was_minted_with ... ok test profile::tests::a_flag_on_an_account_the_walk_skips_is_home_on_no_day ... ok test profile::tests::a_fresh_login_serializes_with_no_catch_all_key ... ok test profile::tests::a_healthy_members_flag_still_answers_an_unclaimed_day ... ok test profile::tests::a_listed_day_stands_the_flag_down_elsewhere ... ok test profile::tests::a_carried_profiles_toml_scalar_stays_top_level_beside_herdr ... ok test profile::tests::a_non_members_list_reads_inert ... ok test profile::tests::a_passed_over_lister_names_what_became_of_the_day ... ok test profile::tests::a_passed_over_lister_with_no_carrier_names_the_fallback ... ok test profile::tests::a_profiles_toml_carrying_the_removed_auto_rescue_key_still_loads ... ok test profile::tests::a_round_trip_through_the_typed_model_keeps_the_extras ... ok test profile::tests::a_carried_scalar_stays_top_level_beside_a_trailing_table ... ok test profile::tests::a_commit_landing_after_a_stamp_still_discards_the_sidecar ... ok test profile::tests::a_console_session_round_trips_through_config_toml ... ok test profile::tests::a_console_table_without_a_token_reads_as_no_session ... ok test profile::tests::a_default_serve_table_carries_a_stray_key ... ok test profile::tests::a_modelled_key_moved_off_default_is_not_carried_beside_its_render ... ok test profile::tests::an_off_chain_list_is_not_home_on_a_day_the_chain_claims ... ok test profile::tests::an_unclaimed_day_leaves_the_flag_in_charge ... ok test profile::tests::a_serve_table_round_trips ... ok test profile::tests::app_state_burn_aware_switching_defaults_false ... ok test profile::tests::app_state_reads_burn_aware_switching_true ... ok test profile::tests::app_state_walk_order_defaults_chain_and_both_values_round_trip ... ok test profile::tests::auth_broken_round_trips_and_is_omitted_when_empty ... ok test profile::tests::a_staged_pair_is_the_one_state_the_lock_free_read_reads_differently ... ok test profile::tests::burn_aware_switching_round_trips_and_is_omitted_when_off ... ok test profile::tests::burn_horizon_cap_ms_resets_out_of_band_and_keeps_in_band ... ok test profile::tests::burn_switch_floor_pct_resets_out_of_band_and_keeps_in_band ... ok test profile::tests::burn_tunables_round_trip_and_omit_when_unset ... ok test profile::tests::carried_tables_and_scalars_keep_their_own_scopes ... ok test profile::tests::context_nudge_threshold_defaults_off_and_round_trips ... ok test profile::tests::a_state_file_with_a_wrongly_typed_modelled_key_carries_nothing ... ok test profile::tests::default_switch_percentages_are_pinned_at_98 ... ok test profile::tests::disabled_round_trips_through_config_toml ... ok test profile::tests::a_stray_serve_key_survives_while_the_table_renders_non_default ... ok test profile::tests::last_resort_round_trips_through_config_toml ... ok test profile::tests::listers_that_can_all_serve_raise_no_passed_over_notice ... ok test profile::tests::a_touch_receipt_only_resolves_the_store_it_names ... ok test profile::tests::an_env_token_profile_with_a_stored_pair_reads_usage_from_the_chain_cache ... ok test profile::tests::an_unparseable_state_file_carries_nothing ... ok test profile::tests::login_is_oauth_doc_names_the_managed_half_and_points_at_the_routing_answer ... ok test profile::tests::merge_nested_carried_keys_never_opens_string_state_on_a_single_line_value ... ok test profile::tests::merge_nested_carried_keys_never_reads_a_multiline_string_as_a_header ... ok test profile::tests::merge_nested_carried_keys_treats_a_dotted_subheader_as_end_of_block ... ok test profile::tests::model_settings_round_trip_through_config_toml ... ok test profile::tests::base_url_dropped_only_when_a_stored_pair_could_leak ... ok test profile::tests::credential_and_cache_files_have_restricted_permissions ... ok test profile::tests::one_claimant_or_none_raises_no_collision ... ok test profile::tests::disabling_persists_and_leaves_credentials_byte_unchanged ... ok test profile::tests::load_config_repairs_a_loose_clauth_tree ... ok test profile::tests::load_profile_seeds_usage_from_the_third_party_cache ... ok test profile::tests::loading_a_config_toml_with_unknown_keys_does_not_rewrite_it ... ok test profile::tests::non_finite_max_auto_spend_reads_as_zero_at_load ... ok test profile::tests::non_finite_percent_fields_read_as_unset_at_load ... ok test profile::tests::preemptive_rotation_defaults_true_and_an_explicit_off_survives_a_round_trip ... ok test profile::tests::preferred_days_parse_drops_only_what_it_cannot_read ... ok test profile::tests::preferred_days_round_trip_through_config_toml ... ok test profile::tests::preserve_non_login_keys_defaults_true_and_an_explicit_off_survives_a_round_trip ... ok test profile::tests::profile_config_disabled_defaults_false ... ok test profile::tests::profile_config_last_resort_defaults_false ... ok test profile::tests::profile_config_preferred_days_defaults_empty ... ok test profile::tests::profile_config_reads_auto_start_directly ... ok test profile::tests::profile_config_reads_bell_threshold ... ok test profile::tests::profile_config_reads_disabled_true ... ok test profile::tests::profile_config_reads_kick_timer_as_auto_start ... ok test profile::tests::profile_config_reads_last_resort_true ... ok test profile::tests::profile_config_reads_models_table ... ok test profile::tests::profile_config_usage_gates_default_unset ... ok test profile::tests::profile_name_is_serde_transparent ... ok test profile::tests::refresh_spent_accounts_defaults_true_and_round_trips ... ok test profile::tests::out_of_band_per_profile_thresholds_clamp_to_the_band_at_load ... ok test profile::tests::pending_recovery_preserves_the_stores_mcp_oauth ... ok test profile::tests::pending_sidecar_is_adopted_when_no_commit_exists_at_all ... ok test profile::tests::pending_sidecar_newer_than_the_commit_is_adopted_and_written_through ... ok test profile::tests::pending_sidecar_older_than_the_commit_is_discarded_not_reinstalled ... ok test profile::tests::pending_sidecar_with_an_equal_mtime_is_adopted ... ok test profile::tests::reload_fingerprint_advances_when_a_config_toml_is_edited ... ok test profile::tests::reload_fingerprint_bumps_when_a_config_toml_is_added ... ok test profile::tests::reload_fingerprint_bumps_when_a_session_token_is_added_or_changed ... ok test profile::tests::reload_fingerprint_catches_a_non_newest_config_edit ... ok test profile::tests::reload_fingerprint_catches_a_sidecar_write_no_expiry_can_see ... ok test profile::tests::reload_fingerprint_changes_when_profiles_toml_mtime_bumps ... ok test profile::tests::reset_display_pair_round_trips_and_is_omitted_at_the_default ... ok test profile::tests::reload_fingerprint_covers_the_codex_state_file ... ok test profile::tests::rolling_token_round_trips_through_config_toml ... ok test profile::tests::routing_endpoint_reads_env_first_and_a_blank_entry_is_no_override ... ok test profile::tests::reload_fingerprint_drops_when_a_config_toml_is_removed ... ok test profile::tests::reload_fingerprint_ignores_a_bare_session_token_stamp ... ok test profile::tests::reload_fingerprint_is_stable_with_no_change ... ok test profile::tests::remove_drops_auth_broken_entry ... ok test profile::tests::rename_carries_auth_broken_entry ... ok test profile::tests::resolving_a_home_with_no_sandbox_held_panics ... ok test profile::tests::save_app_state_carries_an_unknown_subkey_when_the_disk_table_is_all_unmodelled ... ok test profile::tests::save_app_state_carries_unknown_nested_keys_when_the_table_renders_default ... ok test profile::tests::save_app_state_does_not_resurrect_a_modelled_key_from_disk ... ok test profile::tests::scopes_joined_space_joins_preserving_order_and_maps_empty_to_none ... ok test profile::tests::set_auth_broken_reports_transitions_and_is_idempotent ... ok test profile::tests::switch_off_when_spent_keeps_its_wrap_off_key_on_disk ... ok test profile::tests::save_app_state_keeps_unknown_keys_the_file_already_holds ... ok test profile::tests::the_collision_notice_is_stable_per_day_and_moves_with_the_claimants ... ok test profile::tests::the_console_template_does_not_promise_a_fresh_48_hours ... ok test profile::tests::save_app_state_keeps_unknown_nested_keys_inside_a_modelled_table ... ok test profile::tests::save_profile_keeps_an_unknown_subkey_when_the_disk_table_is_all_unmodelled ... ok test profile::tests::save_profile_keeps_unknown_config_toml_keys ... ok test profile::tests::save_profile_preserves_mcp_oauth_across_a_login_refresh ... ok test profile::tests::save_profile_preserves_unmodelled_claude_ai_oauth_keys ... ok test profile::tests::the_auth_expired_record_is_owner_only ... ok test profile::tests::the_lock_free_third_party_read_agrees_with_a_full_load ... ok test profile::tests::the_perms_sweep_stops_at_a_codex_homes_threshold ... ok test profile::tests::the_pre_rename_session_feed_key_is_not_carried ... ok test profile::tests::the_rate_limit_tier_stamp_uses_claude_codes_key ... ok test profile::tests::two_claimants_raise_a_collision_naming_both ... ok test profile::tests::update_settings_defaults_on_and_an_explicit_off_survives_a_round_trip ... ok test profile::tests::the_poll_backfill_preserves_other_store_blocks ... ok test profile::tests::the_poll_backfill_skips_a_chain_the_tier_was_not_fetched_for ... ok test profile::tests::usage_gates_round_trip_through_config_toml ... ok test profile::tests::the_poll_backfill_skips_an_unconfigured_profile ... ok test profile::tests::the_poll_backfill_skips_while_a_rotation_sidecar_is_staged ... ok test profile::tests::the_poll_backfill_skips_without_an_oauth_chain ... ok test profile::tests::the_poll_backfill_stamps_a_missing_tier_into_the_stored_chain ... ok test profile::tests::weekly_threshold_round_trips_through_config_toml ... ok test profile::tests::usage_cache_write_creates_restricted_file_and_dir ... ok test profile::tests::usage_gates_default_on_through_the_load_boundary ... ok test profile::tests::weekly_switch_threshold_absent_loads_as_default ... ok test profile::tests::weekly_switch_threshold_in_band_survives_load ... ok test profile::tests::weekly_switch_threshold_out_of_band_resets_to_default_at_load ... ok test profile::tests::weekly_threshold_out_of_band_resets_to_unset_at_load ... ok test profile_cache::tests::a_correctly_paired_read_still_returns_the_value ... ok test profile_cache::tests::a_mismatched_usage_cache_read_returns_none ... ok test profile_json::tests::a_body_whose_windows_all_lapsed_is_never_stale ... ok test profile_json::tests::a_body_with_no_window_is_never_stale ... ok test profile_json::tests::a_figure_older_than_any_refresh_cadence_reads_stale ... ok test profile_json::tests::a_plan_only_rewrite_does_not_refresh_the_oauth_age ... ok test profile_json::tests::an_undatable_oauth_body_reads_stale_with_no_age ... ok test profile_json::tests::profile_windows_carries_no_wallet_rate_without_a_series ... ok test profile_json::tests::profile_windows_carries_the_funded_wallets_rate ... ok test profile_json::tests::profile_windows_leaves_an_unfetched_third_party_account_without_stats ... ok test profile_json::tests::profile_windows_reads_a_third_party_accounts_own_cache ... ok test profile_json::tests::profile_windows_reads_an_oauth_accounts_own_cache ... ok test profile_json::tests::stale_after_ms_floors_at_the_degraded_ceiling_and_scales_with_interval ... ok test profile_json::tests::the_stale_flip_is_exact_not_second_granular ... ok test profile_json::tests::the_stale_threshold_boundary_is_strict_at_the_constant ... ok test profile_json::tests::provider_label_names_all_three_cases ... ok test profile_json::tests::published_windows_carries_a_third_party_accounts_provider_windows ... ok test profile_json::tests::published_windows_carries_an_oauth_accounts_windows ... ok test profile_json::tests::published_windows_drops_a_lapsed_provider_bar ... ok test profile_json::tests::published_windows_drops_rows_whose_reset_has_passed ... ok test profile_json::tests::published_windows_is_empty_for_a_converted_profile ... ok test profile_json::tests::tier_label_is_none_for_a_converted_profile ... ok test profile_json::tests::tier_label_never_substitutes_canceled_for_a_paid_tier ... ok test providers::alibaba::tests::a_body_carrying_both_windows_orders_the_5h_first ... ok test providers::alibaba::tests::a_host_extension_never_claims_the_provider ... ok test providers::alibaba::tests::a_missing_console_credential_is_the_same_state_as_a_dead_one ... ok test providers::alibaba::tests::a_non_valid_subscription_status_renders_as_danger ... ok test providers::alibaba::tests::a_ratio_above_one_clamps_to_a_full_bar ... ok test providers::alibaba::tests::a_tier_the_quota_config_omits_keeps_its_bars ... ok test providers::alibaba::tests::a_weekly_only_body_yields_no_5h_bar ... ok test providers::alibaba::tests::a_zero_or_negative_allowance_row_is_no_allowance ... ok test providers::alibaba::tests::an_unknown_region_falls_back_to_the_cn_beijing_row_of_its_own_site ... ok test providers::alibaba::tests::an_unknown_tier_leaves_the_bar_without_absolutes ... ok test providers::alibaba::tests::console_url_tracks_matches_base_url_in_both_directions ... ok test providers::alibaba::tests::each_endpoint_resolves_to_its_own_console_page ... ok test providers::alibaba::tests::each_region_and_site_pair_picks_its_own_gateway ... ok test providers::alibaba::tests::every_shipped_alibaba_host_is_recognised ... ok test providers::alibaba::tests::not_logined_body_reads_as_console_expired ... ok test providers::alibaba::tests::other_gateway_failures_stay_ordinary_status_errors ... ok test providers::alibaba::tests::subscription_yields_plan_status_and_remaining_days ... ok test providers::alibaba::tests::the_base_url_decides_the_console_front_and_region ... ok test providers::alibaba::tests::the_params_json_carries_the_two_mandatory_blocks ... ok test providers::alibaba::tests::the_throttle_key_follows_the_credential_not_the_provider ... ok test providers::alibaba::tests::the_tier_quota_turns_percentages_into_absolutes ... ok test profile_json::tests::tier_label_reports_the_real_tier_when_not_canceled ... ok test providers::alibaba::tests::weekly_ratio_is_scaled_to_a_percentage ... ok test providers::deepseek::tests::stats_available_but_empty_yields_no_rows ... ok test providers::deepseek::tests::deepseek_response_parses_wire_shape ... ok test providers::deepseek::tests::stats_builds_heading_and_body_rows ... ok test providers::deepseek::tests::stats_unfunded_keeps_the_wallet_rows_beside_the_refusal ... ok test providers::deepseek::tests::stats_unfunded_with_no_wallets_carries_the_refusal_alone ... ok test providers::generic::tests::a_case_variant_map_key_normalizes_to_the_window_literal ... ok test providers::generic::tests::a_case_variant_window_literal_name_stays_a_literal ... ok test providers::generic::tests::a_hint_401_stops_the_probe_and_reads_auth_expired ... ok test providers::generic::tests::a_left_key_with_a_reset_sibling_is_a_window ... ok test providers::generic::tests::a_live_fraction_with_a_null_reset_is_not_a_window ... ok test providers::generic::tests::a_map_nested_percentage_window_key_beats_its_own_label_field ... ok test providers::generic::tests::a_map_nested_windows_key_beats_its_own_label_field ... ok test providers::generic::tests::a_percentage_key_beats_the_remaining_fraction ... ok test providers::generic::tests::a_remaining_above_one_is_not_a_window ... ok test providers::generic::tests::a_remaining_fraction_with_no_reset_sibling_is_not_a_window ... ok test profile_json::tests::tier_label_reports_the_tier_of_a_canceled_account ... ok test providers::generic::tests::a_root_level_window_uses_the_usage_fallback_label ... ok test providers::generic::tests::an_array_under_a_window_literal_key_keeps_the_literal ... ok test providers::generic::tests::a_zero_percentage_key_beats_the_remaining_fraction ... ok test profile_notes::tests::a_note_for_a_deleted_account_is_refused ... ok test providers::generic::tests::an_expiry_sibling_makes_a_fraction_a_window_and_bars_win ... ok test providers::generic::tests::an_unnamed_array_nested_window_falls_back_to_usage ... ok test providers::generic::tests::array_nested_windows_are_labelled_by_each_elements_own_name_field ... ok test providers::generic::tests::humanize_label_handles_cases ... ok test providers::generic::tests::scan_cc_mirror_remaining_fraction_window_yields_one_bar ... ok test providers::generic::tests::scan_zai_200_error_envelope_is_rejected ... ok test providers::generic::tests::scan_scalar_balance_shape_yields_rows_not_bars ... ok test providers::generic::tests::scan_zai_quota_shape_yields_bars_and_plan ... ok test providers::minimax::tests::a_lone_bucket_drives_the_bars_even_when_it_is_not_named_general ... ok test providers::minimax::tests::a_body_without_the_verdict_envelope_fails_closed ... ok test providers::minimax::tests::a_rejected_key_maps_to_auth_expired ... ok test providers::minimax::tests::a_spent_interval_marks_its_row_danger ... ok test providers::minimax::tests::a_stated_span_without_a_shorthand_prints_no_length ... ok test providers::minimax::tests::a_zero_verdict_publishes_the_plan ... ok test providers::minimax::tests::an_absent_percentage_yields_no_bar_rather_than_full_headroom ... ok test providers::minimax::tests::an_empty_plan_renders_nothing_rather_than_a_bare_heading ... ok test providers::minimax::tests::any_other_in_band_failure_stays_a_plain_failure ... ok test providers::minimax::tests::bars_carry_the_window_end_instants_as_iso ... ok test providers::minimax::tests::bars_invert_remaining_into_utilization_off_the_general_bucket ... ok test providers::minimax::tests::minimax_rejects_host_extensions_and_the_cn_host ... ok test providers::minimax::tests::out_of_range_remaining_percentages_clamp_into_the_bar_range ... ok test providers::minimax::tests::minimax_matches_its_anthropic_base_url ... ok test providers::minimax::tests::rows_state_what_is_left_under_a_remaining_heading ... ok test providers::minimax::tests::several_buckets_with_no_general_yield_no_bars ... ok test providers::generic::tests::a_candidate_401_is_just_another_miss ... ok test providers::minimax::tests::the_video_bucket_is_a_row_and_never_a_bar ... ok test providers::minimax::tests::the_video_row_states_its_own_window_lengths ... ok test providers::minimax::tests::stats_claim_no_plan_label ... ok test providers::openrouter::tests::credits_without_required_numbers_fails_to_parse ... ok test providers::openrouter::tests::both_responses_parse_wire_shape ... ok test providers::openrouter::tests::from_base_url_dispatches_openrouter ... ok test providers::openrouter::tests::key_cap_and_free_tier_rows_append_when_present ... ok test providers::openrouter::tests::key_endpoint_absent_drops_only_the_key_rows ... ok test providers::openrouter::tests::key_response_without_data_fails_to_parse ... ok test providers::openrouter::tests::remaining_danger_boundary_tracks_the_rendered_value ... ok test providers::openrouter::tests::stats_builds_wallet_rows ... ok test providers::openrouter::tests::from_base_url_rejects_host_extension_and_userinfo ... ok test providers::tests::a_userinfo_authority_is_not_the_provider_it_is_prefixed_with ... ok test providers::tests::api_origin_keeps_port_drops_query_and_fragment ... ok test providers::tests::api_origin_strips_path_to_scheme_host ... ok test providers::tests::balance_wallets_keeps_zero_amount_wallets_in_row_order ... ok test providers::tests::console_url_answers_none_for_a_base_url_the_provider_does_not_own ... ok test providers::tests::console_url_is_the_vendor_page_per_provider ... ok test providers::tests::api_origin_none_without_scheme_delimiter ... ok test providers::tests::deepseek_matches_base_url_with_path ... ok test providers::tests::deepseek_matches_exact_base_url ... ok test providers::tests::deepseek_matches_explicit_port ... ok test providers::tests::deepseek_matches_uppercase_host ... ok test providers::tests::deepseek_rejects_host_extension ... ok test providers::tests::deepseek_rejects_plain_http_and_unrelated_hosts ... ok test profile_notes::tests::a_note_round_trips_through_the_profile_dir ... ok test providers::tests::funded_wallets_drops_empty_wallets_and_keeps_row_order ... ok test providers::tests::parse_balance_takes_an_amount_and_a_currency_and_nothing_else ... ok test providers::tests::publishes_windows_names_every_provider ... ok test providers::tests::throttle_key_generic_falls_back_to_raw_when_schemeless ... ok test providers::tests::throttle_key_generic_strips_to_origin ... ok test providers::tests::throttle_key_known_provider_uses_canonical_origin ... ok test providers::tests::to_usage_info_clamps_a_bar_into_the_utilization_range ... ok test providers::tests::to_usage_info_declines_a_stats_with_no_recognised_window ... ok test providers::tests::to_usage_info_drops_windows_that_are_not_5h_or_7d ... ok test providers::tests::to_usage_info_maps_the_two_windows_the_chain_judges ... ok test providers::tests::to_usage_info_refuses_best_effort_stats ... ok test providers::zai::tests::fmt_count_scales_units ... ok test providers::zai::tests::matches_base_url_recognises_zai ... ok test providers::zai::tests::model_usage_all_zero_yields_no_rows ... ok test providers::zai::tests::model_usage_yields_token_rows ... ok test providers::zai::tests::quota_error_envelope_rejected ... ok test providers::zai::tests::quota_yields_bars_plan_and_detail_rows ... ok test providers::zai::tests::window_label_decodes_unit_number ... ok test providers::zai::tests::zai_date_param_is_space_separated_utc ... ok test profile_notes::tests::an_empty_note_removes_the_file ... ok test proxy::tests::a_port_another_row_holds_is_refused_naming_that_row ... ok test profile_notes::tests::the_note_file_and_its_dir_are_owner_only ... ok test proxy::tests::a_port_something_answers_on_is_skipped_and_refused ... ok test providers::tests::disk_cache_roundtrips_stats ... ok test providers::tests::disk_cache_missing_reads_as_none ... ok test poll::tests::signals_queued_during_the_first_delay_coalesce_into_one_tick ... ok test poll::tests::a_pending_first_delay_holds_the_tick_until_a_signal ... ok test poll::tests::a_zero_first_delay_ticks_immediately ... ok test proxy::tests::a_service_follows_the_cores_charset ... ok test proxy::tests::a_manifest_reads_back_typed ... ok test proxy::tests::an_asked_port_that_cannot_be_bound_is_refused_naming_why ... ok test proxy::tests::a_manifest_that_outruns_its_bound_is_stopped_and_refused ... ok test proxy::tests::a_missing_registry_reads_empty ... ok test proxy::tests::a_port_recorded_while_it_was_probed_is_refused_naming_the_row ... ok test proxy::tests::a_re_enable_asking_another_port_is_refused_naming_the_recorded_one ... ok test proxy::tests::discovery_ranks_a_dirs_suffixes_best_first ... ok test proxy::tests::a_re_enable_keeps_the_port_and_the_token ... ok test proxy::tests::a_re_enable_off_path_keeps_the_recorded_binary_while_it_exists ... ok test proxy::tests::a_re_enable_records_the_binary_path_now_resolves_to ... ok test proxy::tests::a_saved_registry_reads_back_and_is_owner_only ... ok test proxy::tests::a_short_proxy_token_is_refused_and_left_alone ... ok test proxy::tests::an_oversize_manifest_is_refused ... ok test proxy::tests::an_update_that_changes_nothing_leaves_the_file_alone ... ok test proxy::tests::disable_keeps_the_row_port_token_and_state_dir ... ok test proxy::tests::the_first_free_port_of_the_range_no_row_holds_is_picked ... ok test proxy::tests::disable_of_an_unregistered_service_names_enable ... ok test proxy_check::tests::a_base_url_is_http_or_https_with_a_host_and_nothing_after_it ... ok test proxy::tests::discovery_skips_what_is_not_a_runnable_proxy ... ok test proxy_check::tests::a_clean_report_is_one_line ... ok test proxy::tests::enable_picks_a_free_port_mints_the_token_and_writes_the_row ... ok test proxy::tests::enable_probes_ports_with_the_state_lock_free ... ok test proxy::tests::enable_refuses_a_foreign_contract_and_writes_nothing ... ok test proxy::tests::enable_without_the_binary_on_path_is_refused_naming_it ... ok test proxy::tests::every_file_clauth_owns_for_a_proxy_sits_in_its_state_dir ... ok test proxy::tests::every_invalid_row_is_refused_naming_the_row_and_the_field ... ok test proxy_check::tests::a_cancelled_flow_that_still_reads_back_fails_naming_it ... ok test proxy_check::tests::a_control_route_answering_without_the_token_fails_naming_it ... ok test proxy_check::tests::a_dot_segment_flow_is_never_cancelled_by_path ... ok test proxy_check::tests::a_failing_report_lists_each_violation_then_the_skips_then_the_tally ... ok test proxy_check::tests::a_foreign_contract_major_stops_the_check_at_health ... ok test proxy_check::tests::a_destructive_run_on_an_account_the_proxy_lacks_is_a_usage_error_naming_it ... ok test proxy_check::tests::a_cors_header_fails_naming_the_route ... ok test proxy_check::tests::a_cors_header_on_a_control_route_fails_naming_each_answer ... ok test proxy::tests::every_manifest_the_contract_refuses_is_refused_naming_why ... ok test proxy::tests::the_first_path_dir_holding_a_service_wins ... ok test proxy_check::tests::a_destructive_account_no_route_can_name_is_skipped_not_refused ... ok test proxy_check::tests::a_missing_secret_file_is_refused_naming_it ... ok test proxy_check::tests::a_numeric_setting_at_its_bound_moves_to_a_different_value ... ok test proxy_check::tests::a_destructive_run_consumes_the_named_account_and_names_no_violation ... ok test proxy_check::tests::a_delete_that_leaves_the_key_working_fails_naming_it ... ok test proxy_check::tests::a_json_answer_labelled_otherwise_fails_naming_the_route ... ok test proxy_check::tests::a_health_body_at_the_cap_fails ... ok test proxy_check::tests::a_login_answered_with_the_wrong_status_is_still_cancelled ... ok test proxy_check::tests::a_missing_route_fails_naming_it ... ok test proxy_check::tests::a_registered_proxy_answering_as_another_service_stops_at_health ... ok test proxy_check::tests::a_destructive_run_skips_a_setting_the_account_cannot_use_and_says_why ... ok test proxy_check::tests::a_registered_proxy_without_its_token_file_is_refused_naming_enable ... ok test proxy_check::tests::a_proxy_accepting_any_bearer_key_fails_naming_it ... ok test proxy_check::tests::a_secret_file_holding_whitespace_or_nothing_is_refused_naming_it ... ok test proxy_check::tests::a_secret_file_loses_its_trailing_newline_and_nothing_else ... ok test proxy_check::tests::a_secret_file_other_users_can_read_is_refused_naming_the_fix ... ok test proxy_check::tests::a_secret_is_redacted_raw_and_json_escaped ... ok test proxy_check::tests::a_secret_never_prints_through_debug ... ok test proxy_check::tests::a_service_target_takes_its_row_token_and_the_one_profile_on_its_bind ... ok test proxy_check::tests::a_signed_contract_major_stops_the_check_at_health ... ok test proxy_check::tests::a_target_that_is_neither_shape_is_refused_naming_both ... ok test proxy_check::tests::a_time_must_be_rfc_3339_in_utc ... ok test proxy_check::tests::a_url_target_takes_both_files_and_refuses_naming_a_missing_one ... ok test proxy_check::tests::a_login_opened_without_the_token_is_named_and_cancelled ... ok test proxy_check::tests::a_health_answer_slower_than_the_daemon_probe_fails ... ok test proxy_check::tests::a_proxy_checked_by_url_may_name_any_service ... ok test proxy_check::tests::an_unregistered_service_is_refused_naming_enable ... ok test proxy_check::tests::destructive_on_a_registered_proxy_needs_key_file ... ok test proxy_check::tests::escape_writes_every_control_and_bidi_character_as_its_code ... ok test proxy_check::tests::no_profile_on_the_bind_is_refused_naming_key_file ... ok test proxy_check::tests::nothing_listening_is_an_error_naming_the_url ... ok test proxy_check::tests::numbers_compare_by_value_and_nothing_else_does ... ok test proxy_check::tests::only_the_service_form_carries_the_service_to_expect ... ok test proxy_check::tests::a_proxy_echoing_a_credential_never_gets_it_printed ... ok test proxy_check::tests::a_safe_run_on_a_conformant_proxy_names_no_violation_and_changes_nothing ... ok test proxy_check::tests::a_proxy_supplied_control_character_is_escaped_in_the_report ... ok test proxy_check::tests::a_rebind_probe_the_proxy_wrongly_opens_is_named_and_cancelled ... ok test proxy_check::tests::an_account_missing_a_declared_settings_value_fails_naming_it ... ok test proxy_check::tests::a_wrong_field_type_fails_naming_the_route_and_the_field ... ok test proxy_check::tests::a_proxy_echoing_the_reminted_key_never_gets_it_printed ... ok test proxy_check::tests::a_remint_that_leaves_the_old_key_working_fails_naming_it ... ok test proxy_check::tests::an_event_stream_that_never_sends_its_head_is_named_as_such ... ok conformant: 679 checks passed test proxy_check::tests::run_checks_a_registered_proxy_by_its_service ... ok GET /clauth/v1/usage: expected accounts[0].figures[0].used: number, got string GET /clauth/v1/usage?account={id}: expected accounts[0].figures[0].used: number, got string 2 of 678 checks failed test proxy_check::tests::run_fails_naming_how_many_departures_a_proxy_makes ... ok test proxy_list::tests::the_empty_table_names_the_enable_path ... ok test proxy_list::tests::the_json_array_names_every_field_fixed ... ok test proxy_list::tests::the_table_renders_every_row_field ... ok GET /health: expected service: "stub", the registered proxy, got "other-proxy" 1 of 9 checks failed test proxy_check::tests::run_stops_a_registered_proxy_answering_as_another_service_at_health ... ok test proxy_check::tests::several_profiles_on_the_bind_are_refused_naming_each ... ok test runtime::tests::a_chain_opt_in_survives_only_where_the_executor_can_swap ... ok test runtime::tests::a_convergence_admits_only_rotatable_current_to_refreshless_selected ... ok test proxy_check::tests::the_flags_override_a_service_targets_picks ... ok conformant: 678 checks passed test proxy_check::tests::run_succeeds_on_a_conformant_proxy ... ok test runtime::tests::a_convergence_keychain_failure_routes_the_locked_keychain_as_silent ... ok test runtime::tests::a_convergence_signs_the_item_out_and_never_installs ... ok test proxy_list::tests::a_daemonless_feed_reads_record_only_not_live ... ok 2026-10-05T00:12:29+00:00 clauth: cannot read the proxy registry: invalid proxy registry /nix/var/nix/builds/nix-12670-2432953799/.tmpaGoHIZ/.clauth/proxies.toml: rows "qwen" and "zcode" both hold port 9101 test proxy_list::tests::an_unreadable_registry_errs_in_list_and_keeps_the_live_slot_in_entries ... ok test proxy_list::tests::list_reads_a_fresh_daemons_live_slots_and_falls_back_per_row ... ok test proxy_list::tests::list_reads_manifests_concurrently_under_one_bound ... ok test proxy_list::tests::list_rows_join_the_registry_discovery_and_record_only_entries ... ok test runtime::tests::a_bare_session_marker_is_invisible_to_has_live_session ... ok test runtime::tests::a_bare_store_stamp_does_not_beat_a_sibling_sessions_relogin ... ok test runtime::tests::a_convergence_does_not_move_a_session_without_an_armed_transition ... ok test runtime::tests::a_convergence_keychain_failure_memo_silences_a_standing_fault ... ok test runtime::tests::a_copied_config_is_owner_only_whatever_the_operators_mode ... ok test runtime::tests::a_corrupt_in_flight_record_refuses_the_write_fail_closed ... ok test runtime::tests::a_crashed_fake_isolated_home_keeps_the_only_rotated_chain ... ok test runtime::tests::a_db_codex_healed_in_place_reaches_the_durable_store ... ok test runtime::tests::a_failed_item_write_never_raises_the_fanout_warning ... ok test runtime::tests::a_failed_repoint_leaves_the_session_on_the_member_its_link_resolves_to ... ok test runtime::tests::a_fake_mode_codex_home_is_the_durable_store_and_survives_teardown ... ok test runtime::tests::a_fake_mode_codex_home_reconverges_the_auth_projection ... ok 2026-10-05T00:12:35+00:00 clauth: 'optin-fake' cannot follow the fallback chain on this host; the session stays on its launch account test runtime::tests::a_fake_mode_host_never_registers_a_session_as_following_the_chain ... ok test runtime::tests::a_fanout_warning_counts_the_session_whose_write_landed_even_while_its_row_names_its_previous_store ... ok test runtime::tests::a_fanout_warning_fires_at_two_and_three_live_sessions ... ok test runtime::tests::a_fanout_warning_ignores_dead_rows ... ok test runtime::tests::a_fanout_warning_ignores_rows_attributed_to_another_profile ... ok test runtime::tests::a_fanout_warning_ignores_rows_holding_a_refreshless_store ... ok test runtime::tests::a_ledger_row_outlives_its_profile_and_stays_authoritative ... ok test runtime::tests::a_foreign_holder_of_our_own_marker_never_blocks_acquire ... ok test runtime::tests::a_namespaced_write_is_refused_while_a_sweeps_delete_is_in_flight ... ok test runtime::tests::a_per_session_acquire_stamps_no_marker_at_the_bare_stem_path ... ok test runtime::tests::a_pid_dead_row_falls_back_to_the_age_bound ... ok 2026-10-05T00:12:35+00:00 clauth: session 28021-25 converged onto conv-a's rolling token test runtime::tests::a_pre_arming_session_converges_onto_the_armed_sidecar_on_one_poll ... ok 2026-10-05T00:12:35+00:00 clauth: watchdog kept canonical credentials (canonical written more recently than runtime); not overwriting with runtime re-login bytes test runtime::tests::a_real_write_after_a_stamp_still_keeps_canonical ... ok test runtime::tests::a_refreshless_session_does_not_converge_back_onto_the_rotating_store ... ok test runtime::tests::a_registered_session_is_opted_out_of_the_chain ... ok test runtime::tests::a_relogin_reaches_a_sibling_session_without_waiting_for_the_fallback ... ok test runtime::tests::a_rollout_written_through_the_linked_root_is_in_the_store_before_teardown ... ok test runtime::tests::a_second_swap_onto_a_member_keeps_reporting_its_real_last_write ... ok test runtime::tests::a_session_config_loses_the_keys_that_escape_the_home ... ok test runtime::tests::a_session_home_carries_the_profile_layers_and_the_plugin_store ... ok test runtime::tests::a_session_launched_on_a_refreshless_sidecar_does_not_block_rotation ... ok test runtime::tests::a_session_launched_on_a_rotating_pair_still_blocks_rotation ... ok test runtime::tests::a_shared_codex_home_links_the_table ... ok test runtime::tests::a_shared_fake_session_keys_its_marker_on_the_bare_sessions_stem ... ok test runtime::tests::a_stale_in_flight_record_is_swept_and_admits_the_write ... ok test runtime::tests::a_standing_refusal_is_announced_once_per_reason ... ok test runtime::tests::a_start_behind_a_rotation_that_releases_in_time_proceeds ... ok 2026-10-05T00:12:36+00:00 clauth: timed out after 0s taking 'wedged-rot' rotation lock; a token rotation or another session start is holding it — retry, or start a different account (/nix/var/nix/builds/nix-12670-2432953799/.tmpewXr4v/.clauth/rotation-locks/wedged-rot.lock) test runtime::tests::a_start_behind_a_wedged_rotation_fails_with_the_bounded_wait ... ok test runtime::tests::a_swap_adopts_a_crash_staged_sidecar_before_moving_the_store_mtime ... ok test runtime::tests::a_swap_back_onto_a_member_the_session_already_ran_on_succeeds ... ok test runtime::tests::a_swap_back_onto_a_refreshable_member_refuses_rotation_again ... ok test runtime::tests::a_swap_does_not_start_once_teardown_has_begun ... ok test runtime::tests::a_swap_drains_a_pending_relogin_into_the_launch_store ... ok test runtime::tests::a_symlink_loop_reads_as_unresolvable ... ok test runtime::tests::a_swap_holds_the_intended_members_per_session_marker ... ok test runtime::tests::a_swap_keeps_both_members_marked_live_and_both_rotation_candidates ... ok test runtime::tests::a_swap_moves_the_mtime_of_the_store_it_repoints_to ... ok test runtime::tests::a_swap_moves_the_mtime_without_importing_the_old_stores_skew ... ok test runtime::tests::a_swap_onto_a_refreshless_member_lets_the_launch_member_rotate_again ... ok test runtime::tests::a_swap_onto_the_member_already_current_changes_nothing ... ok test runtime::tests::a_swap_preserves_a_daemon_written_intended_member ... ok test runtime::tests::a_swap_refuses_a_member_whose_marker_another_process_holds ... ok test runtime::tests::a_swap_repoints_the_runtime_link_at_the_intended_store ... ok 2026-10-05T00:12:36+00:00 clauth: timed out after 0s taking 'rank-leak' rotation lock; a token rotation or another session start is holding it — retry, or start a different account (/nix/var/nix/builds/nix-12670-2432953799/.tmpvx7fJP/.clauth/rotation-locks/rank-leak.lock) test runtime::tests::a_timed_out_rotation_wait_leaves_no_rank_behind ... ok test runtime::tests::a_truncating_filesystem_gets_no_receipt_at_all ... ok test runtime::tests::acquire_builds_session_settings_from_the_profile_re_read_under_the_flock ... ok test runtime::tests::acquire_builds_the_runtime_partition_the_mcp_note_describes ... ok test runtime::tests::an_entry_that_vanished_mid_walk_reads_as_unresolvable ... ok test runtime::tests::acquire_creates_runtime_and_pid_file ... ok test runtime::tests::acquire_isolates_credentials_from_real_home ... ok test runtime::tests::an_unopenable_marker_reads_as_live_and_is_never_unlinked ... ok test runtime::tests::acquire_refuses_a_deleted_account_whose_directory_came_back ... ok test runtime::tests::acquire_refuses_a_profile_deleted_after_the_config_load ... ok test runtime::tests::acquire_refuses_a_record_removed_without_a_rotation_lock ... ok test runtime::tests::acquire_registers_a_row_and_teardown_removes_it ... ok test runtime::tests::both_fake_mode_publish_paths_preserve_the_executable_bit ... ok test runtime::tests::acquire_twice_same_process_counts_two_sessions ... ok test runtime::tests::acquire_wipes_a_stale_tree_at_its_own_path_when_no_marker_holds_it ... ok test runtime::tests::an_alive_delete_child_keeps_refusing_past_the_age_bound ... ok test runtime::tests::an_isolated_codex_home_links_only_the_auth ... ok test runtime::tests::an_isolated_session_never_swaps ... ok test runtime::tests::an_unparseable_operator_config_copies_through_verbatim ... ok test runtime::tests::an_unstampable_child_is_killed_not_run_unguarded ... ok test runtime::tests::an_unreadable_current_source_does_not_converge ... ok test runtime::tests::an_unreadable_profile_dir_reads_as_live_not_idle ... ok test runtime::tests::build_runtime_dir_active_env_strip_is_noop_when_target_is_active ... ok test runtime::tests::build_runtime_dir_credentials_not_from_claude_home ... ok test runtime::tests::build_runtime_dir_fake_preserves_live_runtime_credentials ... ok test runtime::tests::build_runtime_dir_isolated_omits_operator_extensions ... ok test runtime::tests::build_runtime_dir_isolated_settings_drop_operator_config ... ok test runtime::tests::build_runtime_dir_links_claude_json_from_parent ... ok test runtime::tests::build_runtime_dir_other_entries_materialized ... ok test runtime::tests::build_runtime_dir_other_entries_symlinked_on_unix ... ok test runtime::tests::build_runtime_dir_prunes_dangling_symlink ... ok test runtime::tests::copy_file_leaves_no_tmp_artifact ... ok test runtime::tests::copy_file_creates_missing_parent_dirs ... ok test runtime::tests::build_runtime_dir_real_keeps_invalid_runtime_credentials_for_retry ... ok test runtime::tests::copy_file_overwrites_existing_destination ... ok test runtime::tests::build_runtime_dir_real_preserves_live_runtime_credentials ... ok test runtime::tests::copy_tree_follows_a_directory_link ... ok test runtime::tests::copy_tree_replicates_files_and_subdirs ... ok test runtime::tests::copy_tree_skips_a_publish_in_flight ... ok test runtime::tests::build_runtime_dir_rewalk_picks_up_late_entries ... ok test runtime::tests::build_runtime_dir_shared_keeps_operator_extensions ... ok test runtime::tests::build_runtime_dir_strips_active_env_from_another_profile ... ok test runtime::tests::build_runtime_dir_writes_settings_not_symlink ... ok test runtime::tests::fake_convergence_breaks_a_full_tie_by_the_boundarys_prior ... ok test runtime::tests::fake_convergence_takes_the_later_last_refresh_over_the_newer_mtime ... ok test runtime::tests::codex_acquire_registers_and_teardown_keeps_the_durable_store ... ok test runtime::tests::cwd_is_real_home_matches_only_the_sandboxed_home ... ok test runtime::tests::detect_link_mode_returns_real_on_unix ... ok test runtime::tests::copy_file_visible_state_is_never_torn ... ok test runtime::tests::copy_tree_visible_state_is_never_torn ... ok test runtime::tests::dropping_one_shared_session_leaves_the_sibling_intact ... ok test runtime::tests::build_runtime_dir_skips_a_publish_in_flight ... ok test runtime::tests::failed_owner_persist_prevents_the_namespaced_item_write_decision ... ok test runtime::tests::every_unknown_launch_store_reads_as_rotatable ... ok test runtime::tests::fake_mode_isolated_sessions_get_independent_trees ... ok 2026-10-05T00:12:36+00:00 clauth: rescued 1 isolated session transcript(s) + 1 sidecar file(s) into the global store test runtime::tests::fake_mode_isolated_teardown_rescues_only_its_own_tree ... ok test runtime::tests::fake_mode_liveness_counts_both_shared_sessions ... ok test runtime::tests::fake_mode_refuses_the_second_flavor_of_one_profile ... ok test runtime::tests::fake_mode_registry_row_survives_gc ... ok test runtime::tests::fake_mode_second_session_does_not_rebuild_the_tree ... ok test runtime::tests::fake_mode_shares_one_tree_across_two_sessions ... ok test runtime::tests::gc_collects_a_dead_codex_home_and_spares_the_live_and_the_bare ... ok test runtime::tests::gc_collects_a_crashed_sessions_keychain_item_and_spares_a_live_one ... ok test runtime::tests::gc_collects_a_dead_per_session_pair_and_spares_a_held_one ... ok test runtime::tests::gc_collects_an_orphaned_sessions_dir_with_no_runtime_sibling ... ok test runtime::tests::gc_drops_a_registry_row_whose_marker_is_unlocked_and_keeps_a_held_one ... ok 2026-10-05T00:12:37+00:00 clauth: rescued 1 isolated session transcript(s) + 1 sidecar file(s) into the global store test runtime::tests::gc_finishes_a_stranded_rescue_tombstone ... ok test runtime::tests::gc_keeps_a_swapped_row_after_its_launch_profile_is_force_deleted ... ok test runtime::tests::gc_prunes_a_dead_bare_session_marker ... ok test runtime::tests::gc_leaves_profile_children_that_only_look_like_runtime_dirs ... ok test runtime::tests::gc_removes_a_shared_pair_without_rescuing ... ok test runtime::tests::gc_removes_stale_runtime_but_spares_live ... ok 2026-10-05T00:12:37+00:00 clauth: rescued 1 isolated session transcript(s) + 1 sidecar file(s) into the global store test runtime::tests::gc_rescues_a_per_session_isolated_tree_with_no_live_marker ... ok 2026-10-05T00:12:37+00:00 clauth: rescued 1 isolated session transcript(s) + 1 sidecar file(s) into the global store test runtime::tests::gc_rescues_an_isolated_tree_with_no_live_marker ... ok test runtime::tests::gc_skips_the_tree_sweep_under_the_plugin_tab_probe ... ok test runtime::tests::gc_spares_a_held_bare_session_marker ... ok test runtime::tests::gc_spares_a_swapped_members_marker_dir_while_the_session_lives ... ok test runtime::tests::gc_spares_an_isolated_tree_with_a_live_marker ... ok test runtime::tests::gc_spares_the_keychain_item_a_reminted_acquire_claims_mid_sweep ... ok test runtime::tests::gc_takes_no_state_flock_when_no_bare_marker_exists ... ok test runtime::tests::guard_home_project_settings_appends_setting_sources_only_at_home ... ok test runtime::tests::link_mode_of_reads_the_transport_off_the_existing_tree ... ok test runtime::tests::has_live_session_false_when_no_sessions_dir ... ok test runtime::tests::has_live_session_false_when_all_sessions_dead ... ok test runtime::tests::has_live_session_false_when_sessions_dir_empty ... ok test runtime::tests::live_session_blocks_liveness_probe ... ok test runtime::tests::live_sessions_at_reports_unknown_separately_from_zero ... ok test runtime::tests::mirror_credentials_newer_canonical_wins ... ok test runtime::tests::has_live_session_sees_a_per_session_dir_of_either_flavor ... ok test runtime::tests::has_live_session_sees_isolated_session ... ok test runtime::tests::mirror_credentials_newer_runtime_wins ... ok test runtime::tests::has_live_session_true_when_any_session_alive ... ok test runtime::tests::mirror_credentials_skips_empty_credentials ... ok test runtime::tests::mirror_credentials_skips_invalid_json ... ok test runtime::tests::has_live_session_true_with_mixed_alive_and_dead ... ok test runtime::tests::mirror_credentials_seeds_missing_side ... ok test runtime::tests::mirror_tree_alias_echo_does_not_outrank_a_siblings_real_edit ... ok test runtime::tests::live_isolated_stores_skip_codex_profiles_by_roster ... ok test runtime::tests::mirror_tree_breaks_an_mtime_tie_only_inside_an_alias_class ... ok test runtime::tests::live_namespaced_keychain_services_fails_closed_when_a_profile_dir_is_unreadable ... ok test runtime::tests::mirror_tree_converges_two_directory_aliases_on_one_target ... ok test runtime::tests::live_namespaced_keychain_services_fails_closed_when_the_profiles_root_is_unreadable ... ok test runtime::tests::live_namespaced_keychain_services_derives_every_runtime_dir ... ok test runtime::tests::mirror_tree_converges_two_names_when_the_first_sorted_is_newest ... ok test runtime::tests::mirror_tree_creates_canonical_side_dir_owner_only ... ok test runtime::tests::mirror_tree_does_not_write_through_a_runtime_side_symlink ... ok test runtime::tests::mirror_tree_converges_two_names_on_one_target_by_clock ... ok test runtime::tests::mirror_tree_seeds_canonical_only_file_to_runtime ... ok test runtime::tests::live_session_count_counts_only_alive ... ok test runtime::tests::mirror_tree_propagates_runtime_edit_to_canonical ... ok test runtime::tests::mirror_tree_seeds_canonical_only_nested_to_runtime ... ok test runtime::tests::mirror_tree_reads_a_canonical_symlinks_target_not_the_link ... ok test runtime::tests::mirror_tree_seeds_runtime_only_file_to_canonical ... ok test runtime::tests::mirror_tree_follows_a_directory_link ... ok test runtime::tests::mirror_tree_follows_a_directory_link_on_the_runtime_side ... ok test runtime::tests::mirror_tree_skips_identical_files_with_different_mtimes ... ok test runtime::tests::mirror_tree_seeds_runtime_only_nested_to_canonical ... ok test runtime::tests::mirror_tree_skips_top_level_settings_and_credentials ... ok test runtime::tests::orphaned_keychain_item_follows_the_dir ... ok test runtime::tests::paired_dir_names_key_on_link_mode ... ok test runtime::tests::mirror_tree_survives_a_dangling_canonical_link ... ok test runtime::tests::mirror_tree_survives_a_dangling_canonical_link_over_a_runtime_dir ... ok test runtime::tests::mirror_tree_survives_a_dangling_runtime_link ... ok test runtime::tests::mirror_tree_still_seeds_both_copies_of_a_benign_alias ... ok test runtime::tests::mirror_tree_writes_through_a_canonical_symlink ... ok test runtime::tests::prune_removes_a_dangling_directory_link ... ok test runtime::tests::namespaced_keychain_owner_records_service_profile_session_owner_only ... ok test runtime::tests::prune_removes_dead_keeps_alive ... ok test runtime::tests::resolve_credential_winner_prefers_recency_then_expiry ... ok test runtime::tests::no_live_session_is_not_rotatable ... ok test runtime::tests::rotation_is_blocked_by_a_live_session_only_on_macos ... ok test runtime::tests::prune_reports_an_unreadable_marker_dir_as_unknown_not_zero ... ok test runtime::tests::prune_with_two_live_sessions_returns_two ... ok test runtime::tests::scrub_profile_env_drops_managed_and_active_custom_keys ... ok test runtime::tests::pid_liveness_reads_self_alive_and_a_reaped_child_dead ... ok test runtime::tests::one_collectors_clear_cannot_erase_anothers_live_tracking ... ok test runtime::tests::seed_degrade_disposition_retries_only_the_classified_transient ... ok test runtime::tests::one_rotatable_session_refuses_for_the_whole_profile ... ok test runtime::tests::session_seed_arm_selection ... ok test runtime::tests::poll_does_nothing_until_the_daemon_names_a_member ... ok test runtime::tests::swap_eligible_refuses_exactly_the_config_grounds_the_precondition_does ... ok test runtime::tests::swap_item_arm_selection ... ok test runtime::tests::swap_support_refuses_a_shared_tree ... ok 2026-10-05T00:12:37+00:00 clauth: watchdog kept canonical credentials (canonical written more recently than runtime); not overwriting with runtime re-login bytes test runtime::tests::sync_canonical_wins_when_written_more_recently ... ok test runtime::tests::sync_creates_canonical_when_missing ... ok test runtime::tests::sync_credentials_unlocked_concurrent_same_link_consistent_end_state ... ok 2026-10-05T00:12:37+00:00 clauth: watchdog kept canonical credentials (canonical written more recently than runtime); not overwriting with runtime re-login bytes 2026-10-05T00:12:37+00:00 clauth: session 28021-81 swapped onto polled-b test runtime::tests::sync_falls_back_to_expires_at_on_equal_mtime ... ok test runtime::tests::sync_no_op_when_link_is_symlink ... ok test runtime::tests::sync_no_op_when_link_missing ... ok test runtime::tests::retiring_a_namespaced_keychain_owner_removes_later_delete_authority ... ok test runtime::tests::poll_executes_the_member_the_daemon_named ... ok test runtime::tests::sync_no_write_when_bytes_identical ... ok test runtime::tests::sync_relinks_when_content_matches_canonical ... ok test runtime::tests::sync_runtime_wins_when_canonical_missing_expires_at ... ok test runtime::tests::sync_runtime_wins_when_canonical_unparseable ... ok test runtime::tests::sync_runtime_wins_when_newer_mtime_despite_lower_expires_at ... ok test runtime::tests::sync_skips_empty_credentials ... ok test runtime::tests::sync_runtime_wins_when_written_more_recently ... ok test runtime::tests::sync_skips_invalid_json ... ok test runtime::tests::rotation_blocked_for_reads_what_the_live_session_holds ... ok test runtime::tests::sync_writes_canonical_when_differs ... ok test runtime::tests::runtime_settings_and_seed_are_owner_only ... ok test runtime::tests::the_census_delete_runs_through_the_in_flight_gate ... ok test runtime::tests::runtime_settings_retightens_a_loose_file_with_current_bytes ... ok test runtime::tests::seed_claude_json_leaves_existing_real_copy_untouched ... ok test runtime::tests::seed_claude_json_strips_oauth_account_from_fresh_member ... ok test runtime::tests::session_row_is_live_finds_the_marker_a_real_session_stamped ... ok test runtime::tests::the_gc_keychain_recheck_stamps_under_the_state_flock ... ok test runtime::tests::session_teardown_holds_the_state_flock_once ... ok test runtime::tests::teardown_leaves_an_untouched_durable_entry_on_its_own_inode ... ok test runtime::tests::the_guarded_delete_stamps_each_childs_pid_at_spawn ... ok test runtime::tests::the_keychain_delete_sink_requires_the_in_flight_witness ... ok test runtime::tests::the_mirror_walks_past_a_publish_in_flight ... ok test runtime::tests::the_mirror_write_counter_counts_a_same_second_publish ... ok 2026-10-05T00:12:37+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:37+00:00 clauth: final sync failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:37+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:37+00:00 clauth: final settings.json sync failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:37+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock test runtime::tests::teardown_racing_a_wedged_peer_removes_its_own_files_within_one_retry ... ok test runtime::tests::the_namespaced_keychain_sinks_require_a_durable_ownership_witness ... ok test runtime::tests::teardown_removes_every_marker_a_swap_stamped ... ok test runtime::tests::the_record_re_read_still_asserts_the_rotation_lock_is_held ... ok test runtime::tests::the_rescue_tombstone_name_is_rejected_by_the_pairing_predicate ... ok test runtime::tests::the_rotation_deadline_ends_before_the_host_idles_out_a_silent_call ... ok test runtime::tests::the_rotation_deadline_outlasts_a_healthy_holders_two_slow_legs ... ok 2026-10-05T00:12:37+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:37+00:00 clauth: final sync failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:37+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:37+00:00 clauth: final settings.json sync failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:38+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:38+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:38+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-10-05T00:12:38+00:00 clauth: drop cleanup failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock test runtime::tests::the_census_gate_spares_a_live_service_without_stamping ... ok test runtime::tests::the_seed_retries_a_write_refused_over_an_in_flight_delete ... ok test runtime::tests::the_stale_runtime_collector_takes_the_salvage_path ... ok test runtime::tests::teardown_retries_a_persistent_wedge_then_gives_up ... ok test runtime::tests::the_census_gate_stamps_an_orphaned_service_before_its_delete ... ok test runtime::tests::the_fake_mode_boundaries_break_a_full_tie_by_their_own_prior ... ok test runtime::tests::the_gc_recheck_blocks_while_a_peer_holds_the_state_flock ... ok 2026-10-05T00:12:39+00:00 clauth: cannot stamp the in-flight-delete record for Claude Code-credentials-c56fc9bd (failed to parse /nix/var/nix/builds/nix-12670-2432953799/.tmpcGNzFi/.clauth/keychain-deletes-in-flight.json: expected value at line 1 column 14); its item is not collected — a delete whose in-flight record cannot be persisted must not run test runtime::tests::the_gc_recheck_skips_the_delete_when_the_stamp_cannot_persist ... ok test runtime::tests::the_namespaced_keychain_ledger_rejects_malformed_owner_rows ... ok test runtime::tests::the_precondition_refuses_a_member_whose_transport_differs ... ok test runtime::tests::the_rotation_hold_ends_at_the_register_and_stamp_window ... ok test runtime::tests::the_swap_host_probe_names_each_unsupported_transport ... ok test runtime::tests::the_tick_after_a_swap_drains_into_the_intended_store ... ok 2026-10-05T00:12:39+00:00 clauth: watchdog kept the static session token (a session-side re-login is never adopted over it) test runtime::tests::the_tree_build_skips_a_publish_in_flight ... ok 2026-10-05T00:12:39+00:00 clauth: watchdog kept the static session token (a session-side re-login is never adopted over it) test runtime::tests::the_watchdog_keeps_what_a_session_saved_beside_a_static_token ... ok test runtime::tests::the_with_fallback_flag_reaches_the_row_only_where_a_swap_can_land ... ok test runtime::tests::two_shared_sessions_get_independent_trees ... ok test sessions::tests::a_shared_run_prunes_stale_owners ... ok test sessions::tests::a_shared_run_with_no_in_window_ids_still_prunes ... ok test sessions::tests::an_isolated_run_performs_no_prune ... ok test sessions::tests::annotate_dedupes_carried_forward_line_by_tok_key ... ok test sessions::tests::annotate_leaves_tokenless_session_blank ... ok test sessions::tests::annotate_owners_sets_only_known_entries ... ok test sessions::tests::annotate_priced_zero_cost_session_is_some_zero ... ok test sessions::tests::annotate_prices_each_day_at_its_dated_rate ... ok test sessions::tests::annotate_prices_peak_and_off_peak_hours_at_their_tiers ... ok test sessions::tests::annotate_sums_tokens_and_cost_across_models ... ok test sessions::tests::annotate_unpriced_model_has_tokens_but_no_cost ... ok test sessions::tests::bounded_head_and_tail_windows_recover_first_and_last_user ... ok test sessions::tests::build_index_covers_global_and_isolated_and_indexes_corrupt ... ok test sessions::tests::build_index_redacts_preview_without_touching_source ... ok test sessions::tests::collect_jsonl_reports_a_depth_cap_truncation ... ok test sessions::tests::contested_shared_session_reads_back_unknown ... ok test sessions::tests::duplicate_equal_mtime_breaks_tie_by_greater_path ... ok test sessions::tests::duplicate_session_id_collapses_to_newest_file ... ok test sessions::tests::exact_observation_outranks_a_stale_store_entry ... ok test sessions::tests::exact_observation_survives_both_runs_and_shows_in_listing ... ok test sessions::tests::find_session_picks_the_same_duplicate_the_index_does ... ok test sessions::tests::last_user_message_comes_from_the_tail_not_the_head ... ok test sessions::tests::lines_before_honours_the_cursor_and_drops_the_line_straddling_the_floor ... ok test sessions::tests::lines_before_visits_every_whole_line_newest_first_at_its_offset ... ok test sessions::tests::live_isolated_holds_ignores_a_runtime_with_no_live_session ... ok test sessions::tests::live_isolated_holds_reports_what_the_lookup_excludes ... ok test sessions::tests::locate_answers_from_both_stores_by_stem_alone ... ok test sessions::tests::newest_session_skips_the_nested_transcripts_a_resume_cannot_open ... ok test sessions::tests::newest_session_takes_the_greatest_mtime_then_the_smallest_id ... ok test sessions::tests::prune_keeps_a_grace_record_and_reaps_a_silent_one ... ok test sessions::tests::prune_keeps_a_live_isolated_owner_and_reaps_it_once_dead ... ok test sessions::tests::redact_secrets_masks_provider_token_bypasses ... ok test sessions::tests::redact_secrets_masks_secret_shapes_and_keeps_context ... ok test sessions::tests::redact_secrets_spares_pathlike_prose ... ok 2026-10-05T00:12:39+00:00 clauth: refusing to prune session owners: the global transcript walk was incomplete test sessions::tests::rescuable_sidecar_admits_only_known_session_state_trees ... ok test sessions::tests::prune_refuses_a_walk_that_skipped_a_symlinked_project_dir ... ok 2026-10-05T00:12:39+00:00 clauth: refusing to prune session owners: the global transcript walk returned nothing test sessions::tests::prune_refuses_an_empty_walk ... ok 2026-10-05T00:12:39+00:00 clauth: refusing to prune session owners: the global transcript walk was incomplete test sessions::tests::prune_refuses_an_incomplete_walk ... ok test sessions::tests::prune_removes_a_gone_transcript_and_keeps_a_nested_one ... ok test sessions::tests::read_page_handles_a_terminated_file_a_blank_line_an_array_line_and_a_mid_line_cursor ... ok test sessions::tests::read_page_keeps_to_its_byte_budget_unless_the_page_is_empty ... ok test sessions::tests::read_page_pages_backward_verbatim_and_counts_the_torn_line ... ok test sessions::tests::record_without_attribution_does_not_skip_the_sweep ... ok test sessions::tests::rescue_differing_target_lands_beside_without_overwriting ... ok test sessions::tests::rescue_identical_target_drops_source_without_duplicating ... ok test sessions::tests::rescue_move_creates_parent_dir_owner_only ... ok test sessions::tests::rescue_move_verifies_then_removes_and_noops_same_path ... ok test sessions::tests::rescue_moves_isolated_session_into_global_store_preserving_slug ... ok test sessions::tests::rescue_preserves_the_source_file_mode ... ok test sessions::tests::session_id_comes_from_file_stem_not_first_line ... ok test sessions::tests::sidecar_collision_lands_beside_without_clobbering ... ok 2026-10-05T00:12:39+00:00 clauth: left backups, daemon, debug, ide, security, statsig, telemetry in the isolated store (not session state) test sessions::tests::sidecar_rescue_leaves_everything_off_the_allowlist ... ok 2026-10-05T00:12:39+00:00 clauth: rescue depth cap reached at /nix/var/nix/builds/nix-12670-2432953799/.tmpl2qJRC/.clauth/profiles/iso/runtime-isolated/file-history/d/d/d/d/d/d/d, leaving the subtree test sessions::tests::sidecar_rescue_moves_up_to_the_depth_cap_and_stops_past_it ... ok test sessions::tests::sidecar_rescue_never_follows_a_symlink_into_the_global_store ... ok test sessions::tests::updated_iso_is_the_utc_machine_shape_and_clamps_pre_epoch ... ok test sessions::tests::sidecar_trees_land_in_global_store_with_contents_intact ... ok test sessions::tests::stamp_isolated_owns_all_sessions_ignoring_mtime ... ok test sessions::tests::stamp_shared_respects_run_window ... ok test sessions::tests::sweep_still_stamps_ids_the_exact_writer_never_saw ... ok test sessions::tests::the_tail_preview_recovers_a_straddling_user_line_and_stops_at_its_ceiling ... ok test sessions::tests::the_targeted_lookup_never_reaches_a_live_isolated_store ... ok test sessions::tests::transcript_rescue_preserves_the_source_file_mode ... ok 2026-10-05T00:12:39+00:00 clauth: skipping rescue of /nix/var/nix/builds/nix-12670-2432953799/.tmpaM7Kor/.clauth/profiles/iso/runtime-isolated/tasks/t1.json, /nix/var/nix/builds/nix-12670-2432953799/.tmpaM7Kor/.claude/tasks/t1.json is a symlink 2026-10-05T00:12:39+00:00 clauth: skipping rescue of /nix/var/nix/builds/nix-12670-2432953799/.tmpaM7Kor/.clauth/profiles/iso/runtime-isolated/plans, /nix/var/nix/builds/nix-12670-2432953799/.tmpaM7Kor/.claude/plans is a symlink test sessions::tests::sidecar_rescue_never_writes_through_a_symlinked_destination ... ok test sessions::tests::walk_lists_both_stores_and_preview_fills_the_row ... ok test sessions::tests::workspace_of_finds_a_sessions_recorded_cwd ... ok test sessions::tests::workspace_of_treats_a_cwd_less_transcript_as_unresolvable ... ok test sessions_cli::tests::resume_profile_choice_explicit_flag_forces_no_prompt ... ok test sessions_cli::tests::resume_profile_choice_piped_no_flag_uses_active_forced ... ok test sessions_cli::tests::resume_profile_choice_tty_known_last_ran_prompts_defaulting_to_it ... ok test sessions_cli::tests::resume_profile_choice_tty_unknown_prompts_defaulting_to_active ... ok test sessions_cli::tests::a_nested_isolated_transcript_does_not_shadow_latest ... ok test sessions_cli::tests::info_prints_the_resume_command_workspace_and_storage ... ok test sessions_cli::tests::info_reports_a_held_session_without_offering_a_resume_command ... ok test sessions_cli::tests::sessions_bad_flag_maps_to_exit_two ... ok test sessions_cli::tests::latest_refuses_rather_than_substituting_when_an_isolated_run_holds_the_newest ... ok test sessions_cli::tests::success_maps_to_exit_zero ... ok test sessions_cli::tests::latest_resolves_to_the_first_row_the_listing_emits ... ok Error: no sessions found test sessions_cli::tests::no_sessions_found_maps_to_exit_one ... ok test sessions_cli::tests::resume_candidates_excludes_disabled_accounts ... ok test sessions_cli::tests::switch_receipt_names_when_the_move_lands ... ok test sessions_cli::tests::resume_candidates_falls_back_when_the_default_is_disabled ... ok test sessions_cli::tests::resume_refuses_an_explicit_disabled_profile_before_any_spawn ... ok Error: can't resume 'siso': 'siso' belongs to a live isolated run under profile 'iso', whose store a resume can't read it moves into the shared store when that run ends test sessions_cli::tests::resume_refuses_an_isolated_held_session_without_calling_it_missing ... ok Error: no session found for 'ghost-id' test sessions_cli::tests::resume_unknown_id_errors_naming_it_at_exit_one ... ok test sessions_cli::tests::sessions_json_has_exact_fields_newest_first_with_null_and_redaction ... ok clauth: session '4242-0' is already on 'work' test sessions_cli::tests::switch_is_a_no_op_for_a_session_already_on_the_profile ... ok clauth: pointed session '4242-0' at 'keyed' the switch lands at the session's next request, never before it — a refused move is logged and the session stays put test sessions_cli::tests::switch_leaves_the_go_no_go_with_the_sessions_executor ... ok clauth: pointed session '4242-0' at 'spare' the switch lands at the session's next request, never before it — a refused move is logged and the session stays put test sessions_cli::tests::switch_points_the_row_at_the_named_profile_through_the_registry_seam ... ok test sessions_cli::tests::the_sessions_listing_rejects_extra_arguments ... ok Error: session '4242-0' is a codex session; switch is claude-only test sessions_cli::tests::switch_refuses_a_codex_session_row ... ok Error: session '4242-0' is no longer running its row is reaped by the next `clauth daemon` or `clauth resume` test sessions_cli::tests::switch_refuses_a_dead_session_row ... ok Error: profile 'nope' not found available: work test sessions_cli::tests::switch_refuses_an_unknown_profile ... ok Error: no live session 'cx' see `clauth sessions` to switch the global account: `clauth switch cx` test sessions_cli::tests::switch_refuses_an_unknown_sid_that_is_a_codex_profile_with_the_global_hint ... ok Error: no live session 'work' see `clauth sessions` to switch the global account: `clauth switch work` test sessions_cli::tests::switch_refuses_an_unknown_sid_that_is_a_profile_with_the_global_hint ... ok Error: no live session 'nope' see `clauth sessions` Error: no live session '999999-9' see `clauth sessions` test sessions_cli::tests::switch_refuses_an_unknown_sid_with_the_listing_hint ... ok test sessions_cli::tests::the_human_row_and_json_disagree_on_the_stamp_shape_by_design ... ok test sessions_cli::tests::the_listing_costs_a_full_read_of_every_transcript_only_under_tokens ... ok test sessions_cli::tests::the_stamp_age_renders_now_for_non_positive_ages_and_ago_for_positive ... ok test sessions_cli::tests::the_table_carries_the_token_columns_only_under_tokens ... ok test sessions_cli::tests::the_table_stamp_renders_local_wall_clock_with_a_relative_age ... ok test settings_sync::tests::every_credential_minting_top_level_key_is_per_profile ... ok test settings_sync::tests::every_managed_env_key_is_per_profile ... ok test settings_sync::tests::a_codex_profiles_config_is_never_read_here ... ok 2026-10-05T00:12:39+00:00 clauth: settings.json sync paused — /nix/var/nix/builds/nix-12670-2432953799/.tmpvJROc1/.clauth/profiles/p2/config.toml is not valid TOML (TOML parse error at line 1, column 5 | 1 | [env | ^ unclosed table, expected `]` ); the affected profiles' custom [env] keys are unknown, so no settings are synced until it reads cleanly 2026-10-05T00:12:39+00:00 clauth: settings.json sync paused — /nix/var/nix/builds/nix-12670-2432953799/.tmpvJROc1/.clauth/profiles/p2/config.toml is not valid TOML (TOML parse error at line 1, column 5 | 1 | [env | ^ unclosed table, expected `]` ); the affected profiles' custom [env] keys are unknown, so no settings are synced until it reads cleanly test settings_sync::tests::a_config_that_does_not_parse_aborts_the_tick ... ok test settings_sync::tests::a_dual_claimed_name_stays_claude_first_here ... ok test settings_sync::tests::a_non_object_env_on_the_winner_leaves_targets_alone ... ok test settings_sync::tests::an_api_key_target_keeps_its_routing_when_the_winner_has_none ... ok 2026-10-05T00:12:39+00:00 clauth: /nix/var/nix/builds/nix-12670-2432953799/.tmpHRkuiA/.clauth/codex-profiles.toml did not yield the codex roster (TOML parse error at line 1, column 13 | 1 | profiles = [ | ^ unclosed array, expected `]` ); settings.json sync reads every profile dir as claude until it reads cleanly 2026-10-05T00:12:39+00:00 clauth: settings.json sync paused — /nix/var/nix/builds/nix-12670-2432953799/.tmpHRkuiA/.clauth/profiles/p2/config.toml is not valid TOML (TOML parse error at line 1, column 5 | 1 | [env | ^ unclosed table, expected `]` ); the affected profiles' custom [env] keys are unknown, so no settings are synced until it reads cleanly test settings_sync::tests::an_unreadable_codex_roster_reads_as_no_codex_arm_and_never_pauses ... ok test settings_sync::tests::api_key_helper_and_model_stay_exactly_where_they_were ... ok test settings_sync::tests::custom_env_keys_are_unioned_across_every_profile ... ok test start::tests::a_dangling_model_flag_yields_nothing ... ok test start::tests::a_quoted_home_path_falls_back_to_a_basic_toml_string ... ok test settings_sync::tests::isolated_runtime_neither_wins_nor_receives ... ok test settings_sync::tests::known_paths_reach_per_session_copies_and_still_exclude_isolated ... ok test settings_sync::tests::per_profile_env_never_leaves_its_own_runtime ... ok test settings_sync::tests::runtime_copies_are_owner_only_and_the_base_keeps_its_posture ... ok test start::tests::apply_spawn_cwd_none_inherits_process_cwd ... ok test start::tests::apply_spawn_cwd_pins_child_to_workspace ... ok test start::tests::launch_models_unions_the_settings_models_and_the_model_args ... ok test start::tests::models_from_args_reads_both_spellings ... ok test settings_sync::tests::shared_env_key_dropped_by_the_winner_is_removed_from_targets ... ok test settings_sync::tests::shared_field_reaches_the_base_and_every_sibling_runtime ... ok 2026-10-05T00:12:39+00:00 clauth: settings.json sync paused — /nix/var/nix/builds/nix-12670-2432953799/.tmpUzUhbh/.clauth/profiles/p1/config.toml is not valid TOML (TOML parse error at line 1, column 5 | 1 | [env | ^ unclosed table, expected `]` ); the affected profiles' custom [env] keys are unknown, so no settings are synced until it reads cleanly test settings_sync::tests::the_pause_warning_latches_and_clears_on_recovery ... ok test settings_sync::tests::unparseable_member_is_skipped_not_clobbered ... ok test start::tests::a_refused_with_fallback_start_never_probes_the_disk ... ok test start::tests::status_code_preserves_child_signal_code ... ok test start::tests::status_code_preserves_plain_exit_code ... ok test start::tests::status_code_reports_parent_signal_after_successful_child_exit ... ok test runtime::tests::the_fake_mode_mirror_converges_under_concurrent_publishes ... ok test start::tests::the_managed_config_verdict_refuses_the_chain_killers_and_warns_on_the_rest ... ok 2026-10-05T00:12:44+00:00 clauth: refusing to prune session owners: the global transcript walk was incomplete test start::tests::a_start_after_a_switch_off_does_not_pair_the_departed_key_with_the_started_endpoint ... ok test start::tests::the_start_teardown_tail_is_the_rescue_leg_gated_on_isolation_alone ... ok test start::tests::the_unsupported_host_refusal_names_each_cause ... ok test start::tests::admit_runs_the_with_fallback_refusals_and_clears_without_the_flag ... ok 2026-10-05T00:12:45+00:00 clauth: rescued 1 isolated session transcript(s) + 1 sidecar file(s) into the global store test start::tests::an_isolated_teardown_moves_the_session_into_the_global_store ... ok 2026-10-05T00:12:45+00:00 clauth: skipping rescue, another isolated session is still live 2026-10-05T00:12:45+00:00 clauth: rescued 1 isolated session transcript(s) + 1 sidecar file(s) into the global store test start::tests::rescue_moves_nothing_while_a_sibling_session_is_live ... ok test start::tests::run_applies_the_chain_gate_only_to_an_opted_in_start ... ok test start::tests::run_codex_refuses_on_the_managed_config_before_building_a_home ... ok 2026-10-05T00:12:45+00:00 clauth: failed to rescue /nix/var/nix/builds/nix-12670-2432953799/.tmpRtm5NO/.clauth/profiles/iso/runtime-isolated/file-history/sess-a/edit-1.json: File exists (os error 17) 2026-10-05T00:12:45+00:00 clauth: rescued 1 isolated session transcript(s) + 1 sidecar file(s) into the global store test start::tests::sidecar_failure_leaves_teardown_and_transcript_rescue_intact ... ok test status::status_parse::active_definition_excludes_resolved_and_completed ... ok test status::status_parse::collects_components_with_status_paren_stripped ... ok test status::status_parse::component_status_falls_back_to_snapshot_without_transitions ... ok test status::status_parse::component_status_is_first_reported_not_snapshot ... ok test status::status_parse::dedup_keeps_worst_status ... ok test status::status_parse::empty_response_yields_empty_vec ... ok test status::status_parse::iso_ms_parse_correctness ... ok test status::status_parse::malformed_entry_is_skipped_not_panicked ... ok test status::status_parse::maps_impact_including_unknown_fallback ... ok test status::status_parse::maps_maintenance_statuses ... ok test status::status_parse::missing_optional_fields_default_gracefully ... ok test status::status_parse::null_affected_components_yields_no_transitions ... ok test status::status_parse::nullable_resolved_at_is_none ... ok test status::status_parse::offset_form_timestamps_parse_like_z_form ... ok test status::status_parse::parses_core_fields ... ok test status::status_parse::parses_ms_fraction_timestamps ... ok test status::status_parse::shorten_component_status_mapping ... ok test status::status_parse::strip_parens_cases ... ok test status::status_parse::transitions_filtered_to_actual_changes ... ok test status::status_parse::unknown_update_status_falls_back_to_other ... ok 2026-10-05T00:12:45+00:00 clauth: refusing to prune session owners: the global transcript walk was incomplete 2026-10-05T00:12:46+00:00 clauth: refusing to prune session owners: the global transcript walk was incomplete test start::tests::start_heals_the_plugin_registry_only_when_it_is_broken ... ok test start::tests::the_codex_spawn_command_carries_the_wire_facts ... ok test tests::a_subcommand_name_shadows_a_same_named_profile ... ok Error: unrecognized command 'strat acme'; run `clauth --help` for the command list test tests::an_unrecognized_multi_word_invocation_is_a_usage_error ... ok test start::tests::the_spawn_pins_the_state_db_home_past_a_copied_config_key ... ok test start::tests::with_fallback_refuses_a_chain_with_nowhere_to_go ... ok test start::tests::with_fallback_refuses_a_non_oauth_profile ... ok test start::tests::with_fallback_refuses_a_profile_outside_the_fallback_chain ... ok test start::tests::with_fallback_refuses_an_isolated_session ... ok test start::tests::with_fallback_refuses_when_no_daemon_is_running ... ok test start::tests::with_fallback_refuses_when_the_daemon_lock_cannot_be_read ... ok Error: failed to parse /nix/var/nix/builds/nix-12670-2432953799/.tmpkWsiOS/.clauth/codex-profiles.toml Caused by: TOML parse error at line 1, column 21 | 1 | profiles = [not toml | ^ unclosed array, expected `]` test tests::a_corrupt_codex_roster_fails_the_claude_only_verbs_as_a_runtime_error ... ok test tests::api_key_helper_tests::write_api_key_emits_no_trailing_newline ... ok Error: no clauth daemon is running test tests::api_reauth_snapshot_carries_the_stored_chain_through ... ok test tests::an_absent_daemon_reports_exit_one_not_the_usage_code ... ok test tests::api_reauth_snapshot_without_a_stored_chain_carries_none ... ok test tests::armed_report_copy::each_daemon_health_state_makes_its_own_restamp_claim ... ok test tests::armed_report_copy::the_clear_copy_names_the_disarm_the_backup_and_both_postscripts ... ok test tests::armed_report_copy::the_clear_postscripts_ride_exactly_what_moved ... ok test tests::api_key_helper_tests::api_key_for_profile_err_for_missing_profile ... ok test tests::armed_report_copy::the_scope_widening_disclosure_names_the_widening_and_the_way_back ... ok test tests::armed_report_copy::the_stranded_rollback_warning_owns_the_flag_and_the_exit ... ok test tests::api_key_helper_tests::api_key_for_profile_is_static_across_calls ... ok test tests::bare_invocation_selects_no_subcommand ... ok test tests::bare_listen_defaults_to_every_interface_without_eating_the_next_flag ... ok test tests::bare_word_is_captured_as_a_profile_name ... ok test tests::api_key_helper_tests::api_key_for_profile_none_when_profile_has_no_key ... ok test tests::capture_parses_with_a_profile_argument ... ok test tests::clauths_own_start_flags_are_still_recognized_after_the_profile_name ... ok test tests::cert_and_key_are_required_together_and_only_with_listen ... ok test tests::api_key_helper_tests::api_key_for_profile_returns_stored_key ... ok test tests::api_key_helper_tests::api_key_for_profile_treats_blank_key_as_absent ... ok test tests::api_key_helper_tests::dispatch_api_key_helper_fails_closed_for_missing_profile ... ok test tests::api_key_helper_tests::dispatch_api_key_helper_fails_closed_for_profile_without_key ... ok sk-dispatch-xyztest tests::api_key_helper_tests::dispatch_api_key_helper_returns_ok_for_profile_with_key ... ok Error: profile 'strat' not found available: test tests::bad_profile_name_is_a_usage_error::a_bare_unknown_word_exits_2 ... ok test tests::collect_api_endpoint_rejects_control_chars_in_key ... ok test tests::collect_api_endpoint_rejects_empty_flag_values ... ok clauth: warning: --api-key is visible in shell history and process listings; prefer the prompt test tests::collect_api_endpoint_trims_flag_values ... ok test tests::collect_api_reauth_snapshot_empty_flag_refuses ... ok clauth: warning: --api-key is visible in shell history and process listings; prefer the prompt test tests::collect_api_reauth_snapshot_headless_reuses_endpoint_key_and_chain ... ok Error: profile 'strat' not found available: test tests::collect_api_reauth_snapshot_headless_with_no_stored_endpoint_refuses ... ok test tests::bad_profile_name_is_a_usage_error::delete_with_an_unknown_profile_exits_2 ... ok Error: unexpected argument 'extra'; `clauth completions bash` takes no second value test tests::completions_rejects_a_second_value_after_a_shell_name ... ok test tests::completions_prints_for_a_shell_and_installs_with_an_optional_shell ... ok Error: profile 'strat' not found available: test tests::bad_profile_name_is_a_usage_error::switch_with_an_unknown_name_exits_2 ... ok test tests::delete_requires_a_name_and_rejects_an_unknown_flag_or_second_name ... ok test tests::delete_takes_yes_and_force_independently_in_any_order ... ok test tests::daemon_modes_are_mutually_exclusive_and_default_to_exit_if_running ... ok test tests::disable_takes_yes_but_has_no_force_override ... ok test tests::cli_codex_delete_refuses_while_a_rotation_holds_the_lock ... ok test tests::devices_parses_its_five_verbs ... ok test tests::cli_delete_refuses_while_a_rotation_holds_the_lock ... ok test tests::cmd_start_auto_refuses_an_empty_chain ... ok test tests::dump_openapi_conflicts_with_every_daemon_starting_or_probing_flag ... ok test tests::dump_openapi_ends_ok_when_the_reader_is_gone ... ok test tests::cmd_start_explain_auto_runs_the_with_fallback_refusals ... ok test tests::enable_takes_exactly_one_name ... ok test tests::dump_openapi_writes_the_served_bytes_verbatim ... ok test tests::every_visible_subcommand_is_listed_in_the_root_help ... ok test tests::feed_paste_key_decides_append_cap_backspace_submit_and_cancel ... ok test tests::every_bundled_hook_command_parses_as_a_subcommand ... ok test tests::herdr_install_parses_with_every_flag ... ok would start on 'a' * a ok usage 4m ago b ok usage 4m ago test tests::help_and_version_exit_zero_while_parse_failures_exit_two ... ok test tests::herdr_uninstall_parses_with_every_flag ... ok test tests::cmd_start_explain_launches_nothing ... ok test tests::hidden_entry_points_parse_but_never_appear_in_help ... ok 2026-10-05T00:12:46+00:00 clauth: codex refresh for 'cx' failed: chain is dead (expired) test tests::codex_start_refuses_a_quarantined_chain_by_name ... ok test tests::limit_reset_takes_list_or_yes_but_not_both ... ok test tests::codex_start_refuses_with_fallback_by_name ... ok test tests::list_takes_all_and_disabled_flags_with_neither_required ... ok test tests::login_accepts_a_short_alias_or_a_full_custom_model_id ... ok test tests::login_api_mode_one_flag_leaves_the_other_for_the_prompt ... ok test tests::login_api_mode_takes_both_endpoint_flags_in_any_order_with_model ... ok test tests::login_bare_name_is_oauth_mode ... ok test tests::listen_parses_an_address_and_composes_with_the_start_modes ... ok test tests::login_has_no_clear_flag_and_bare_yes_still_needs_setup_token ... ok test tests::login_rejects_the_removed_manual_flag ... ok test tests::login_rejects_flag_shaped_profile_names_and_a_second_positional ... ok test tests::login_route_case_variant_reauths_canonical_spelling ... ok test tests::login_route_existing_name_reauths ... ok test tests::login_route_new_name_creates ... ok test tests::login_route_new_name_trims_surrounding_whitespace ... ok test tests::login_setup_token_excludes_api_mode_and_bare_yes ... ok test tests::login_setup_token_flag_and_its_unprompted_replace ... ok test tests::disabled_target_refusal::cmd_start_explain_refuses_a_disabled_target ... ok test tests::per_subcommand_help_carries_that_commands_prose ... ok test tests::login_value_flags_reject_a_missing_or_flag_shaped_value ... ok test tests::proxy_check_parses_its_paths_and_the_destructive_account ... ok test tests::read_manual_code_from_accepts_one_bounded_line ... ok test tests::proxy_list_parses_its_json_flag ... ok test tests::resolve_reauth_base_url_a_tty_prompts ... ok test tests::reauth_confirmed_only_on_explicit_yes ... ok test tests::resolve_reauth_base_url_flag_wins_empty_included_and_ignores_the_terminal ... ok test tests::proxy_enable_and_disable_parse_their_service_and_port ... ok test tests::resolve_reauth_base_url_headless_reuses_the_stored_endpoint ... ok test tests::resolve_reauth_base_url_headless_with_no_stored_endpoint_bails ... ok test tests::start_args_accessors_map_flags_to_the_runtime_types ... ok test tests::start_auto_composes_with_with_fallback ... ok test tests::start_auto_defers_the_account_and_keeps_the_positional_free ... ok test tests::start_auto_folds_a_bare_first_argument_too ... ok test tests::resume_and_info_take_a_target_with_resume_alone_taking_a_profile ... ok test tests::start_auto_folds_the_positional_back_into_claude_args ... ok test tests::start_auto_refuses_a_bare_hyphen_argument_without_a_separator ... ok test tests::start_consumes_a_leading_double_dash_separator_and_forwards_the_rest ... ok test tests::start_forwards_claude_args_verbatim_including_leading_hyphens ... ok test tests::start_isolated_flag_precedes_the_name ... ok test tests::disabled_target_refusal::cmd_start_refuses_disabled_target_before_acquiring_a_runtime ... ok test tests::start_requires_a_profile_name ... ok test tests::start_no_longer_takes_the_removed_rescue_flags ... ok test tests::start_with_fallback_conflicts_with_isolated ... ok test tests::start_without_auto_keeps_the_named_target ... ok test tests::start_without_auto_requires_a_profile ... ok test tests::start_with_fallback_flag_parses_and_defaults_off ... ok test tests::static_token_bare_restores_and_clear_takes_an_unprompted_yes ... ok test tests::disabled_target_refusal::cmd_switch_refuses_disabled_target_with_no_side_effects ... ok test tests::disabled_target_refusal::switch_refuses_a_disabled_target_through_dispatch ... ok Error: 'cx' is a codex profile; disable is claude-only test tests::each_claude_only_verb_names_itself_in_the_codex_refusal ... ok Error: refusing to use a reset on 'cx' without confirmation; pass --yes test tests::limit_reset_off_a_terminal_without_yes_refuses_before_any_request ... ok test tests::limit_reset_refuses_a_claude_name_an_unknown_one_and_a_dead_chain_before_any_request ... ok clauth: 'cx' has 2 usage-limit resets available. usage-limit reset — available, expires 2027-06-01 00:00:00, granted 2026-01-01 00:00:00 * Full reset — available, expires 2027-01-01 00:00:00, granted 2026-01-02 00:00:00 (used next) clauth: aborted. no reset was used on 'cx'. clauth: used a usage-limit reset on 'cx': 2 windows reopened, 1 left. clauth: the daemon shows the new usage at its next poll. test tests::limit_reset_spends_the_credit_it_named_and_only_after_a_yes ... ok Error: no device named 'ghost'; `clauth devices` lists the paired ones test tests::revoking_an_unknown_device_exits_one_naming_it ... ok clauth: cleared the long-lived token for 'cl-flag'. Its stored OAuth login installs on the next switch: clauth cl-flag clauth: rolling-token is off · nothing re-stamps a sidecar for 'cl-flag' now. test tests::static_token_clear::a_set_flag_with_no_files_is_still_something_to_clear ... ok clauth: cleared the long-lived token for 'cl-mf'. Its stored OAuth login installs on the next switch: clauth cl-mf test tests::static_token_clear::clear_quarantines_a_misfilled_sidecar_instead_of_plain_deleting_it ... ok clauth: cleared the long-lived token for 'cl-roll'. Its stored OAuth login installs on the next switch: clauth cl-roll clauth: rolling-token is off · nothing re-stamps a sidecar for 'cl-roll' now. clauth: the preserved mint at session-token.static.json is gone · `clauth static-token cl-roll` has nothing to restore now. test tests::static_token_clear::clear_takes_the_sidecar_the_backup_and_the_flag_together ... ok clauth: 'cl-none' holds no long-lived token, so nothing to clear. test tests::static_token_clear::nothing_to_clear_is_a_noop_success ... ok test tests::static_token_clear::the_backup_slot_counts_as_the_last_credential ... ok clauth: cleared the long-lived token for 'cl-mid' and relinked the live credentials onto its stored OAuth login. test tests::static_token_clear::the_clear_relinks_before_the_backup_removal_can_fail ... ok test tests::static_token_clear::the_other_login_refusal_is_rechecked_under_the_guard ... ok 2026-10-05T00:12:47+00:00 clauth: 'st-corrupt' preserved static backup does not hold a mint — quarantined under the profile's quarantine/ dir; re-mint with `clauth login st-corrupt --setup-token` clauth: 'st-corrupt' is already on its static long-lived mint · the rolling token is off. Nothing to restore. test tests::static_token_verdicts::a_corrupt_backup_is_quarantined_and_the_recovery_path_stays_open ... ok clauth: warning: the usage chain for 'rt-back' is missing the user:profile scope or a subscriptionType stamp · rolling tokens may not unlock plan-gated models. A fresh `clauth login rt-back` browser sign-in fixes that. clauth: warning: the usage chain for 'rt-keep' is missing the user:profile scope or a subscriptionType stamp · rolling tokens may not unlock plan-gated models. A fresh `clauth login rt-keep` browser sign-in fixes that. test tests::static_token_verdicts::a_failed_arm_rolls_the_flag_back_to_what_it_found ... ok test tests::static_token_verdicts::the_reauth_confirm_promises_a_survivor_only_where_one_survives ... ok test tests::status_requires_json_and_treats_disabled_as_an_alias_for_all ... ok test tests::switch_splits_the_forms_on_arity_alone ... ok test tests::the_bare_profile_form_is_deprecated_in_the_help ... ok test tests::static_token_verdicts::a_failed_restore_error_owns_the_flag_it_flipped ... ok test tests::the_isolated_help_says_the_session_outlives_the_runtime ... ok clauth: 'st-mint' is already on its static long-lived mint · the rolling token is off. Nothing to restore. test tests::static_token_verdicts::a_mint_profile_is_a_noop_success ... ok test tests::the_paste_prompt_ends_on_a_landed_door_or_a_finished_worker ... ok test tests::the_retired_token_flags_are_unknown_arguments ... ok test tests::theme_accepts_both_spellings_ahead_of_a_subcommand ... ok test tests::which_and_sessions_take_only_json ... ok test tests::static_token_verdicts::a_rolling_bearer_with_no_backup_fails_loud ... ok 2026-10-05T00:12:47+00:00 clauth: 'st-aged' preserved static mint has itself expired — not restoring it; re-mint with `clauth login st-aged --setup-token` test tests::static_token_verdicts::an_expired_backup_is_named_and_kept ... ok test tests::static_token_verdicts::an_expired_mint_in_the_sidecar_is_a_failed_restore ... ok test tests::static_token_verdicts::rolling_token_on_a_dead_chain_touches_nothing ... ok test tests::static_token_verdicts::rolling_token_on_a_flagged_third_party_hybrid_names_the_split_state ... ok test token_ledger::tests::apply_skips_days_covered_by_stats_cache ... ok test token_ledger::tests::backfill_hours_fills_only_exact_matches ... ok test token_ledger::tests::effective_cutoff_takes_the_later_boundary ... ok test tests::static_token_verdicts::rolling_token_on_an_api_key_profile_names_the_missing_chain ... ok test tests::static_token_verdicts::the_arming_report_fails_on_what_it_cannot_verify ... ok test token_ledger::tests::record_never_stores_today ... ok test token_ledger::tests::record_then_apply_survives_transcript_loss ... ok test tests::the_claude_only_verbs_refuse_a_codex_name_and_list_the_claude_roster_alone ... ok test tests::the_not_found_listing_names_both_rosters ... ok test throughput::tests::degraded_when_recent_pace_far_below_best ... ok test token_ledger::tests::watermark_advances_across_idle_days_and_is_monotonic ... ok test tokens::tests::a1_fixture_corrects_input_to_uncached_tail ... ok test tokens::tests::a2_fixture_keeps_numbers_marks_shape ... ok test throughput::tests::rate_limit_recorded_and_expires ... ok test tokens::tests::b_fixture_reads_no_cache_reporting ... ok test throughput::tests::records_and_reads_back_pace ... ok test throughput::tests::unspecified_model_keys_under_default ... ok test throughput::tests::zero_tokens_or_duration_records_nothing ... ok test token_ledger::tests::hours_survive_record_save_load_apply ... ok test token_ledger::tests::load_missing_is_empty ... ok test token_ledger::tests::save_load_round_trip ... ok test token_ledger::tests::v1_ledger_without_flag_loads_backfill_pending ... ok test tokens::tests::bucket_activity_sums_counts_under_the_bucket_key ... ok test tokens::tests::bucket_start_week_and_month ... ok test tokens::tests::bucket_tokens_folds_days_into_calendar_buckets ... ok test tokens::tests::c_fixture_low_ratio_rows_below_cache_read_stay_anthropic ... ok test tokens::tests::cache_hit_ratio_math ... ok test tokens::tests::cache_hit_ratio_zero_denominator ... ok test token_ledger::tests::v1_ledger_without_hours_loads_applies_and_rerecords ... ok test tokens::tests::backfill_dedup_lands_in_the_path_sorted_winners_hour ... ok test tokens::tests::current_bucket_bounds_are_inclusive_start_to_today ... ok test tokens::tests::backfill_fills_hours_when_corpus_totals_match ... ok test tokens::tests::backfill_leaves_mismatched_rows_untouched_and_marks_done ... ok test tokens::tests::e_fixture_fully_cached_whole_prompt_zeroes_input ... ok test tokens::tests::backfill_persists_flag_on_disk_when_nothing_fills ... ok test tokens::tests::backfill_persists_when_record_has_nothing_new ... ok test tokens::tests::group_models_breaks_out_large_non_anthropic ... ok test tokens::tests::group_models_empty_input ... ok test tokens::tests::group_models_keeps_claude_individual_folds_others ... ok test tokens::tests::group_models_no_others_when_all_claude ... ok test tokens::tests::healthy_fixture_is_left_byte_identical ... ok test tokens::tests::backfill_routes_crossing_cutoff_lines_by_line_date ... ok test tokens::tests::identity_skips_pairs_after_a_read_absent_row ... ok test tokens::tests::identity_slack_floor_covers_small_early_pairs ... ok test tokens::tests::is_anthropic_recognition ... ok test tokens::tests::backfill_runs_once_and_second_run_visits_nothing ... ok test tokens::tests::base_stats_parsed_correctly ... ok test tokens::tests::collapse_keeps_first_occurrence_order ... ok test tokens::tests::model_display_name_mapping ... ok test tokens::tests::period_model_metric_honors_split_completeness ... ok test tokens::tests::period_models_aggregates_range_and_split_flags ... ok test tokens::tests::period_models_carries_per_day_split_rows_in_date_order ... ok test tokens::tests::cross_file_duplicate_lands_in_the_path_sorted_winners_hour ... ok test tokens::tests::d_inline_tails_above_cache_chain_accumulates ... ok test tokens::tests::dip_fraction_boundary_is_inclusive_half ... ok test tokens::tests::file_hourly_model_tokens_splits_by_model_and_day ... ok test tokens::tests::fully_cached_signature_decides_below_row_floor ... ok test tokens::tests::hourly_buckets_accumulate_into_hour_slots ... ok test tokens::tests::ladder_pins_whole_prompt_vs_anthropic ... ok test tokens::tests::load_populates_daily_models_from_stats_cache_and_topup ... ok test tokens::tests::load_returns_none_when_cache_absent ... ok test tokens::tests::rederive_adopts_mixed_day_beyond_exact_arithmetic ... ok test tokens::tests::rederive_corrects_a1_day_from_corpus ... ok test tokens::tests::rederive_leaves_equal_day_untouched ... ok test tokens::tests::rederive_marks_pruned_day_unverifiable ... ok test tokens::tests::rederive_runs_once ... ok test tokens::tests::rederive_unpoisons_over_subtracted_day ... ok test tokens::tests::rederive_v1_flag_file_owes_versioned_pass ... ok test tokens::tests::same_model_two_files_two_shapes ... ok test tokens::tests::thin_evidence_classifies_healthy ... ok test tokens::tests::today_bucket_aggregates_todays_transcript_lines ... ok test tokens::tests::today_hour_buckets_dedupe_like_the_flat_fields ... ok test tokens::tests::today_hours_track_todays_messages ... ok test tokens::tests::top_up_adds_new_day_updates_model_and_sets_topped_up_through ... ok test tokens::tests::top_up_counts_nested_subagent_transcripts ... ok test tokens::tests::top_up_counts_streamed_turn_by_completed_delta_not_first ... ok test tokens::tests::top_up_dedupes_idless_usage_lines_by_content ... ok test tokens::tests::top_up_dedupes_same_message_across_files ... ok test tokens::tests::top_up_none_when_no_last_computed_date ... ok test tokens::tests::top_up_reconstructs_messages_sessions_hours_after_cutoff ... ok test tokens::tests::top_up_skips_old_mtime_file ... ok test tui::app::tests::a_bad_paste_clears_the_field_toasts_and_keeps_the_modal ... ok test tui::app::tests::a_blanked_key_clears_the_stale_status_chrome ... ok test tui::app::tests::a_capture_overwrite_clears_the_stale_status_chrome ... ok test tui::app::tests::a_captured_console_session_replaces_only_the_session ... ok test tui::app::tests::a_card_edit_closes_when_a_reload_drops_its_account_from_the_roster ... ok test tui::app::tests::a_console_relogin_clears_the_stale_verdict ... ok test tui::app::tests::a_console_session_for_a_deleted_account_says_it_is_gone ... ok test tui::app::tests::a_console_session_from_the_other_front_is_discarded_rather_than_stored ... ok test tui::app::tests::a_console_session_is_discarded_when_the_account_stopped_being_alibaba ... ok test tui::app::tests::a_daemon_flip_probes_the_standalone_shunt_again ... ok test tui::app::tests::a_card_edit_writes_its_member_wherever_the_cursor_points ... ok test tui::app::tests::a_daemon_health_change_replans ... ok test tui::app::tests::a_day_save_keeps_a_field_another_writer_changed ... ok test tui::app::tests::a_day_save_refuses_an_account_deleted_since_the_reload ... ok test tui::app::tests::a_dead_account_stepping_to_never_raises_no_toast ... ok test tui::app::tests::a_dead_account_warns_once_per_day_picker_descend ... ok test tui::app::tests::a_dead_accounts_day_list_saves_with_the_claim_nothing_warning ... ok test tui::app::tests::a_committed_relogin_anchors_the_profile_it_swapped_onto ... ok test tui::app::tests::a_console_lapse_drops_a_pre_existing_mirror_entry_on_the_cadence ... ok test tui::app::tests::a_console_lapse_record_never_seeds_the_key_rejected_set ... ok test tui::app::tests::a_dead_daemon_reads_the_card_off_over_a_stale_healthy_slot ... ok test tui::app::tests::a_divergence_overwrite_clears_the_stale_status_chrome ... ok 2026-10-05T00:12:47+00:00 clauth: 'work' re-authenticated: auth_broken cleared test tui::app::tests::a_divergence_overwrite_lifts_the_auth_broken_quarantine ... ok test tui::app::tests::a_failed_action_replans ... ok test tui::app::tests::a_failed_day_list_save_keeps_memory_on_the_disk_value_and_names_the_error ... ok test tui::app::tests::a_failed_save_keeps_the_editor_open ... ok test tui::app::tests::a_failed_toggle_toasts_save_failed ... ok test tui::app::tests::a_gated_relogin_anchors_only_once_the_user_confirms ... ok test tui::app::tests::a_good_paste_lands_on_the_sessions_paste_door ... ok test tui::app::tests::a_landed_add_admin_key_re_settles_focus_to_the_enabled_row ... ok test tui::app::tests::a_landed_door_closes_the_code_field ... ok test tui::app::tests::a_landed_move_drops_the_stale_plan ... ok test tui::app::tests::a_landed_move_re_settles_focus_to_the_enabled_row ... ok test tui::app::tests::a_landed_move_whose_record_write_fails_reads_moved_then_save_failed ... ok test tui::app::tests::a_modal_drops_the_herdr_landing_and_f_drops_it ... ok test tui::app::tests::a_model_studio_account_satisfies_both_login_predicates ... ok test tui::app::tests::a_moved_then_failed_enable_toasts_both ... ok test tui::app::tests::a_real_linked_payload_reads_as_a_local_link ... ok test tui::app::tests::a_no_daemon_start_shunt_opens_the_daemon_start_confirm ... ok test tui::app::tests::a_panicking_herdr_probe_lands_as_no_herdr ... ok test tui::app::tests::a_picker_toggle_keeps_a_day_another_writer_saved ... ok test tui::app::tests::a_plain_app_lands_on_overview_with_the_first_row_selected ... ok test tui::app::tests::a_plain_launch_with_home_tab_set_lands_on_that_tab ... ok test tui::app::tests::a_poison_skipped_clear_still_retires_the_handle_verdict ... ok test tui::app::tests::a_preset_apply_clears_the_old_providers_streak ... ok test tui::app::tests::a_press_follows_the_shown_list_when_another_writer_raced_it ... ok test tui::app::tests::a_probe_drain_adopts_the_newest_result_and_skips_an_empty_one ... ok test tui::app::tests::a_record_written_by_another_process_seeds_the_key_rejected_set_on_the_cadence ... ok test tui::app::tests::a_refused_move_leaves_the_record_disabled ... ok test tui::app::tests::a_rekey_retires_the_handle_fetch_status_before_the_next_tick ... ok test tui::app::tests::a_reload_that_moves_the_card_off_its_member_forgets_the_custom_stop ... ok test tui::app::tests::a_rotation_result_keeps_a_later_oauth_refetch_spinner ... ok test tui::app::tests::a_running_gateway_shows_no_move_plan ... ok test tui::app::tests::a_saved_preset_applies_onto_another_account ... ok 2026-10-05T00:12:47+00:00 clauth: 2 accounts claim mon: 'work', 'personal' — the chain returns to whichever of them reads clear first 2026-10-05T00:12:47+00:00 clauth: mon: the list on 'spare' (it is not on the fallback chain) cannot claim it — 'work' carries it test tui::app::tests::a_second_day_notice_does_not_repaint_the_first ... ok test tui::app::tests::a_shunt_pick_acts_on_the_state_at_pick_time ... ok test tui::app::tests::a_standalone_claim_is_rechecked_while_the_services_tab_shows_it ... ok test tui::app::tests::a_successful_move_leaves_the_record_enabled ... ok test tui::app::tests::a_tick_re_tallies_live_sessions_that_appeared_after_startup ... ok test tui::app::tests::a_toml_name_linked_onto_yaml_reads_as_yaml ... ok test tui::app::tests::adopting_a_divergence_writes_the_targets_endpoint_into_the_live_settings ... ok test tui::app::tests::adopting_into_a_standalone_shunt_that_answers_writes_nothing ... ok test tui::app::tests::adopting_with_a_file_to_move_leaves_the_gateway_disabled ... ok test tui::app::tests::an_unadopted_shunt_row_names_what_runs_without_clauth ... ok test tui::app::tests::adopting_with_nothing_to_move_leaves_the_gateway_enabled ... ok test tui::app::tests::a_slow_herdr_probe_leaves_the_first_paint_unblocked ... ok test tui::app::tests::all_spent_banner_fires_at_the_weekly_hard_cap ... ok test tui::app::tests::all_spent_banner_ignores_a_member_line_under_the_hard_cap ... ok test tui::app::tests::all_spent_banner_ignores_a_soft_blocked_member_that_still_serves ... ok test tui::app::tests::all_spent_banner_needs_live_spent_window ... ok 2026-10-05T00:12:48+00:00 clauth: 'work' re-authenticated: auth_broken cleared test tui::app::tests::an_adopted_first_login_lifts_the_auth_broken_quarantine ... ok test tui::app::tests::an_env_bind_does_not_offer_adopt_for_an_unreadable_config ... ok test tui::app::tests::an_unadopted_gateway_row_probes_what_runs_standalone_with_no_key ... ok test tui::app::tests::an_unrecorded_daemon_env_offers_no_adopt ... ok test tui::app::tests::api_relogin_chain_walks_base_url_then_api_key ... ok test tui::app::tests::apply_preset_on_new_row_stamps_the_draft_buffers ... ok test tui::app::tests::bootstrap_active_false_empty_store_reports_idle ... ok test tui::app::tests::bootstrap_active_false_with_refreshing_slot_still_busy ... ok test tui::app::tests::bootstrap_active_true_reports_busy ... ok test tui::app::tests::bootstrap_active_true_with_refreshing_slot_reports_busy ... ok test tui::app::tests::apply_usage_cached_status_skips_bell_and_history_append ... ok test tui::app::tests::apply_usage_feeds_usage_stale_off_the_disk_cache_age ... ok test tui::app::tests::applying_over_set_fields_names_them_before_replacing_anything ... ok test tui::app::tests::auto_start_queue_space_noops_until_an_account_opts_in ... ok test tui::app::tests::auto_update_row_toggles_and_persists ... ok test tui::app::tests::bootstrap_one_shot_skips_a_non_fresh_active_read ... ok test tui::app::tests::apply_usage_reloads_history_when_an_append_keeps_the_mtime ... ok test tui::app::tests::apply_usage_reloads_history_written_by_another_process ... ok test tui::app::tests::budget_wrap_off_space_toggles_and_persists ... ok test tui::app::tests::burn_aware_row_is_reachable_by_cursor ... ok test tui::app::tests::burn_aware_space_toggles_and_persists ... ok test tui::app::tests::c_and_p_are_inert_without_an_open_paste_door ... ok test tui::app::tests::bootstrap_one_shot_switches_off_a_fresh_exhausted_active ... ok test tui::app::tests::apply_usage_fresh_status_fires_bell_and_never_writes_history ... ok test tui::app::tests::apply_usage_rate_limited_status_skips_bell_and_history_append ... ok test tui::app::tests::c_on_the_login_modal_sends_the_link_and_toasts ... ok test tui::app::tests::c_on_the_overview_cycles_the_harness_filter_and_leaves_count_cache_alone ... ok test tui::app::tests::chain_would_mix_returns_false_for_unknown_candidate ... ok test tui::app::tests::chain_would_mix_silent_on_empty_chain ... ok test tui::app::tests::chain_would_mix_silent_on_same_kind_add_to_homogeneous_chain ... ok test tui::app::tests::chain_would_mix_silent_when_chain_already_mixed ... ok test tui::app::tests::chain_would_mix_silent_when_oauth_added_to_already_mixed_chain ... ok test tui::app::tests::chain_would_mix_true_when_api_key_candidate_joins_all_oauth_chain ... ok test tui::app::tests::chain_would_mix_true_when_oauth_candidate_joins_all_api_key_chain ... ok test tui::app::tests::c_on_the_tokens_tab_flips_count_cache ... ok test tui::app::tests::capture_name_collision_opens_overwrite_confirm_instead_of_erroring ... ok test tui::app::tests::capture_overwrite_cancel_changes_nothing ... ok test tui::app::tests::capture_refuses_empty_snapshot ... ok test tui::app::tests::capture_row_over_a_stashed_mint_confirms_first ... ok test tui::app::tests::capture_row_over_an_owned_live_login_refuses ... ok test tui::app::tests::capture_row_stashes_and_create_account_commits ... ok test tui::app::tests::capture_row_with_nothing_live_refuses ... ok test tui::app::tests::chain_candidates_excludes_a_disabled_profile ... ok test tui::app::tests::clear_session_token_arms_then_clears_and_relinks_the_active_account ... ok test tui::app::tests::clear_session_token_disarms_a_flag_only_account_with_no_other_login ... ok test tui::app::tests::collect_tokens_carries_the_auth_broken_flag ... ok test tui::app::tests::clear_session_token_keeps_the_flag_when_the_persist_fails ... ok test tui::app::tests::clear_session_token_on_a_rolling_profile_disarms_and_takes_the_backup ... ok test tui::app::tests::clear_session_token_on_an_active_api_key_account_reports_the_sign_out ... ok test tui::app::tests::clear_session_token_on_an_idle_account_leaves_the_live_link_alone ... ok test tui::app::tests::clear_session_token_refuses_when_the_disk_login_is_gone ... ok test tui::app::tests::clear_session_token_refuses_while_a_rotation_holds_the_profile ... ok test tui::app::tests::clear_session_token_relinks_before_the_backup_removal_can_fail ... ok test tui::app::tests::clear_session_token_relinks_the_account_active_on_disk_not_in_the_snapshot ... ok test tui::app::tests::clear_session_token_row_is_inert_without_another_stored_login ... ok test tui::app::tests::commit_endpoint_clears_the_edited_profiles_stale_status_chrome ... ok test tui::app::tests::commit_new_account_consumes_the_draft_mint ... ok test tui::app::tests::committing_a_rename_takes_its_guard_outside_the_config_lock ... ok test tui::app::tests::compact_entry_sets_flag_no_toast ... ok test tui::app::tests::compact_exit_clears_banner ... ok test tui::app::tests::compact_rearm_after_exit ... ok test tui::app::tests::compact_yields_warning_banner ... ok test tui::app::tests::config_rows_account_actions_tail_matches_runtime_order ... ok test tui::app::tests::config_rows_clear_session_token_row_tracks_the_sidecar ... ok test tui::app::tests::config_rows_hybrid_shows_the_logout_row_for_its_oauth_pair ... ok test tui::app::tests::config_rows_login_and_delete_creds_visibility ... ok test tui::app::tests::config_rows_login_tracks_api_mode_when_draft_types_a_base_url ... ok test tui::app::tests::config_rows_on_the_new_form_carry_one_login_row ... ok test tui::app::tests::confirming_a_rotate_under_a_live_session_is_refused_on_macos ... ok test tui::app::tests::construct_probes_the_daemon_health_instead_of_seeding_a_constant ... ok test tui::app::tests::context_nudge_custom_value_commits_and_clears ... ok test tui::app::tests::context_nudge_enter_opens_editor_seeded ... ok test tui::app::tests::context_nudge_esc_discards_editor ... ok test tui::app::tests::context_nudge_out_of_range_keeps_editor_open ... ok test tui::app::tests::context_nudge_reopened_editor_seeds_a_custom_value_as_plain_tokens ... ok test tui::app::tests::delete_word_removes_run_left_of_caret ... ok test tui::app::tests::delete_word_respects_caret_position ... ok test tui::app::tests::context_nudge_space_cycles_the_full_ladder_wrapping_to_off ... ok test tui::app::tests::context_nudge_space_from_custom_lands_on_next_preset_or_off ... ok test tui::app::tests::context_nudge_space_persists_through_profiles_toml ... ok test tui::app::tests::d_on_a_builtin_keeps_the_picker_on_a_custom_pops_it ... ok test tui::app::tests::daemon_control_outcomes_toast_and_rearm_the_verb ... ok test tui::app::tests::delegate_row_text_confirm_copy_and_cancel_leave_everything_alone ... ok test tui::app::tests::delegate_row_text_confirm_persists_the_knob_then_heals ... ok test tui::app::tests::delegate_row_text_confirm_turns_the_knob_back_off ... ok test tui::app::tests::delegate_row_text_is_inert_when_herdr_config_does_not_parse ... ok test tui::app::tests::disable_row_arms_on_first_press_confirms_on_second ... ok test tui::app::tests::disabled_row_toggle_is_inert_for_the_active_account ... ok test tui::app::tests::disabled_row_toggle_is_inert_with_a_live_session ... ok test tui::app::tests::disabling_from_an_account_tab_confirms_first_while_enabling_is_immediate ... ok test tui::app::tests::disabling_the_active_account_from_a_menu_says_why_instead_of_no_opping ... ok test tui::app::tests::divergence_default_never_captures_a_sibling_owned_login ... ok test tui::app::tests::divergence_default_row_is_reachable_by_cursor ... ok test tui::app::tests::divergence_flags_the_banner_and_never_blocks_the_tui ... ok test tui::app::tests::divergence_identifies_a_sibling_owner_and_leads_with_switch_to_it ... ok test tui::app::tests::divergence_picker_saves_the_login_into_a_chosen_profile ... ok test tui::app::tests::divergence_poll_ignores_a_logged_out_shell ... ok test tui::app::tests::divergence_poll_ignores_a_macos_regular_file_mirror ... ok test tui::app::tests::divergence_poll_ignores_a_stale_clauth_symlink ... ok test tui::app::tests::divergence_renders_through_the_system_banner ... ok test tui::app::tests::drain_login_events_discards_a_superseded_result ... ok test tui::app::tests::duplicate_copies_the_settings_and_leaves_the_login_and_the_radios_behind ... ok test tui::app::tests::duplicate_refuses_a_name_already_on_the_roster ... ok test tui::app::tests::each_space_in_the_day_picker_saves_the_toggled_list ... ok test tui::app::tests::enable_row_fires_immediately_no_arm ... ok test tui::app::tests::enter_does_not_descend_into_the_delegates_detail ... ok test tui::app::tests::enter_esc_q_up_and_down_each_leave_the_day_picker ... ok test tui::app::tests::enter_on_a_chain_entry_with_no_account_opens_no_picker ... ok test tui::app::tests::enter_saves_the_note_and_esc_discards_it ... ok test tui::app::tests::enter_toggles_the_enabled_row ... ok test tui::app::tests::entering_the_services_tab_shows_the_herdr_row_with_no_key ... ok test tui::app::tests::entering_the_tab_replans ... ok test tui::app::tests::env_editor::a_failed_cancel_persist_restores_the_placeholder_for_retry ... ok test tui::app::tests::env_editor::add_field_with_fresh_key_inserts_and_edits_value ... ok test tui::app::tests::env_editor::add_field_with_managed_key_prompts_collision ... ok test tui::app::tests::env_editor::api_account_shows_api_key_drops_auto_start ... ok test tui::app::tests::env_editor::committing_an_emptied_env_value_removes_the_key_everywhere ... ok test tui::app::tests::escape_control_escapes_only_control_and_bidi_chars ... ok test tui::app::tests::env_editor::config_rows_insert_env_entries_then_add_row ... ok test tui::app::tests::env_editor::disable_row_sits_in_the_account_actions_group_not_at_the_top ... ok test tui::app::tests::env_editor::escape_after_a_value_commit_keeps_the_committed_value ... ok test tui::app::tests::env_editor::escape_on_an_existing_env_entry_keeps_the_saved_value ... ok test tui::app::tests::env_editor::escaping_a_just_added_env_entry_removes_the_row_everywhere ... ok test tui::app::tests::env_editor::oauth_account_hides_api_key_keeps_auto_start ... ok test tui::app::tests::env_editor::reveal_chip_expands_all_overrides ... ok test tui::app::tests::env_editor::set_override_renders_others_stay_collapsed ... ok test tui::app::tests::env_editor::unset_overrides_collapse_behind_reveal_chip ... ok test tui::app::tests::every_tab_offers_the_daemon_verb_that_applies ... ok test tui::app::tests::fallback_add_enter_commits_directly_when_add_would_not_mix ... ok test tui::app::tests::fallback_add_enter_raises_confirm_modal_when_add_would_mix_kinds ... ok test tui::app::tests::fallback_last_resort_is_exclusive_across_the_chain ... ok test tui::app::tests::fallback_last_resort_toggle_persists_and_refreshes_tokens ... ok test tui::app::tests::fallback_max_spend_editor_is_inert_while_spend_budget_is_off ... ok test tui::app::tests::fallback_max_spend_editor_refuses_an_infinite_ceiling ... ok test tui::app::tests::fallback_max_spend_editor_types_and_persists ... ok test tui::app::tests::fallback_max_spend_plus_minus_is_a_no_op ... ok test tui::app::tests::fallback_preferred_days_space_steps_a_custom_set_to_never ... ok test tui::app::tests::fallback_preferred_days_space_walks_the_preset_ladder_and_persists ... ok test tui::app::tests::fallback_threshold_plus_minus_still_nudge_both_ways ... ok test tui::app::tests::fallback_usage_gate_toggles_persist ... ok test tui::app::tests::fallback_weekly_at_and_max_spend_editors_still_open_via_space ... ok test tui::app::tests::fallback_weekly_at_nudge_clamps_at_lower_bound ... ok test tui::app::tests::fallback_weekly_at_nudge_clamps_at_upper_bound ... ok test tui::app::tests::fallback_weekly_at_nudge_from_unset_bases_on_resolved_default ... ok test tui::app::tests::fallback_weekly_at_nudge_is_inert_while_gate_is_off ... ok test tui::app::tests::fallback_weekly_at_plus_minus_nudge_both_ways ... ok test tui::app::tests::herdr_check_danger_on_registry_error ... ok test tui::app::tests::herdr_check_danger_on_registry_warnings ... ok test tui::app::tests::herdr_check_ok_when_fully_wired ... ok test tui::app::tests::herdr_check_reads_root_first_and_the_fix_last ... ok test tui::app::tests::herdr_check_warns_and_offers_fix_when_key_unbound ... ok test tui::app::tests::herdr_check_warns_and_offers_fix_when_sidebar_untemplated ... ok test tui::app::tests::herdr_check_warns_without_fix_when_config_does_not_parse ... ok test tui::app::tests::herdr_check_warns_without_fix_when_config_unreadable ... ok test tui::app::tests::herdr_check_warns_without_fix_when_disabled ... ok test tui::app::tests::herdr_check_warns_without_fix_when_not_installed ... ok test tui::app::tests::herdr_check_warns_without_fix_when_version_too_old ... ok test tui::app::tests::fallback_weekly_override_editor_is_inert_while_gate_is_off ... ok test tui::app::tests::fallback_weekly_override_editor_sets_and_clears ... ok test tui::app::tests::focused_account_types_the_hybrid_on_its_credential ... ok test tui::app::tests::gateway_slot_reads_a_fresh_feed_and_falls_back_otherwise ... ok test tui::app::tests::herdr_prose_lines_are_indented_so_they_do_not_read_as_fields ... ok test tui::app::tests::global_config_cursor_wraps ... ok test tui::app::tests::help_modal_arrows_scroll_within_the_rendered_bounds ... ok test tui::app::tests::herdr_border_label_toggle_reruns_the_pane_report_per_pane ... ok test tui::app::tests::herdr_border_label_toggle_spawns_nothing_outside_herdr ... ok test tui::app::tests::herdr_border_label_toggles_and_persists ... ok test tui::app::tests::herdr_delegate_dot_toggles_and_persists ... ok test tui::app::tests::herdr_mode_lands_on_the_plugin_tab_with_the_herdr_row_selected ... ok test tui::app::tests::login_event_maps_each_worker_milestone_to_its_stage ... ok test tui::app::tests::herdr_pane_tag_toggles_and_persists ... ok test tui::app::tests::herdr_popup_width_cycles_and_persists ... ok test tui::app::tests::herdr_row_absent_when_herdr_does_not_resolve ... ok test tui::app::tests::herdr_tag_refresh_steps_types_and_persists ... ok test tui::app::tests::home_tab_cycles_from_the_config_appearance_row ... ok test tui::app::tests::hybrid_login_row_routes_to_the_browser_mint_not_the_api_chain ... ok test tui::app::tests::hybrid_logout_clears_the_oauth_pair_and_keeps_the_api_shell ... ok test tui::app::tests::leaving_the_card_forgets_the_custom_stop ... ok test tui::app::tests::list_f_on_a_fresh_box_opens_the_install_confirm ... ok test tui::app::tests::login_modal_esc_collapses_without_canceling ... ok test tui::app::tests::login_result_on_the_new_form_stashes_into_the_draft ... ok test tui::app::tests::login_result_with_the_form_closed_is_dropped_with_a_warning ... ok test tui::app::tests::login_row_over_a_stashed_live_login_confirms_first ... ok test tui::app::tests::login_stage_events_advance_the_session ... ok test tui::app::tests::marking_last_resort_clears_preferred_on_the_same_member ... ok test tui::app::tests::marking_preferred_clears_last_resort_on_the_same_member ... ok test tui::app::tests::money_spent_is_inert_through_the_top_level_router ... ok test tui::app::tests::next_divergence_default_cycles_round_trip ... ok test tui::app::tests::money_spent_is_inert_while_spend_budget_is_off ... ok test tui::app::tests::moving_off_an_armed_remove_disarms_it ... ok test tui::app::tests::n_on_usage_opens_the_note_editor ... ok test tui::app::tests::new_account_model_row::create_form_carries_the_model_row_before_create ... ok test tui::app::tests::new_account_model_row::create_persists_a_custom_model_id_too ... ok test tui::app::tests::new_account_model_row::create_persists_the_picked_model_to_the_new_profile ... ok test tui::app::tests::new_account_model_row::create_without_touching_model_leaves_it_unset ... ok test tui::app::tests::parse_context_nudge_tokens_accepts_in_range_only ... ok test tui::app::tests::parse_max_spend_refuses_non_finite_and_negative ... ok test tui::app::tests::parse_refresh_secs_accepts_in_range_only ... ok test tui::app::tests::new_account_model_row::space_cycles_the_draft_model_buffer_with_no_profile_to_persist_into ... ok test tui::app::tests::parse_threshold_accepts_in_range_only ... ok test tui::app::tests::parse_weekly_pct_pins_the_band_edges ... ok test tui::app::tests::new_form_capture_row_tracks_an_unsaved_live_login ... ok test tui::app::tests::no_active_banner_without_spent_evidence ... ok test tui::app::tests::non_login_keys_row_toggles_and_persists ... ok test tui::app::tests::on_tick_drops_a_repaired_key_rejected_switch_away ... ok test tui::app::tests::on_tick_still_switches_an_ordinary_decision_beside_a_stale_mark ... ok test tui::app::tests::opening_and_leaving_the_day_picker_writes_nothing ... ok test tui::app::tests::overview_switch_request_never_opens_a_confirm_for_a_disabled_account ... ok test tui::app::tests::p_on_the_login_modal_opens_the_paste_field_and_esc_returns_to_it ... ok test tui::app::tests::perform_delete_with_live_session_arms_a_confirm_modal ... ok test tui::app::tests::perform_delete_without_live_session_deletes_immediately ... ok test tui::app::tests::picking_the_console_entry_without_a_page_says_so_and_opens_nothing ... ok test tui::app::tests::plugin_check_names_the_user_scope_record_when_one_exists ... ok test tui::app::tests::plugin_detail_up_steps_back_from_the_published_bound ... ok test tui::app::tests::preemptive_rotation_space_toggles_on_every_platform ... ok test tui::app::tests::preferred_is_exclusive_across_the_chain ... ok test tui::app::tests::pure_api_logout_clears_only_the_api_key ... ok test tui::app::tests::pure_oauth_logout_clears_the_credentials ... ok test tui::app::tests::r_c_and_q_are_data_while_the_field_is_open ... ok test tui::app::tests::r_during_a_running_probe_queues_one_follow_up_run ... ok test tui::app::tests::r_re_probes_herdr_on_the_services_tab ... ok test tui::app::tests::refresh_interval_custom_value_commits_and_clears ... ok test tui::app::tests::refresh_interval_enter_opens_editor_seeded_in_seconds ... ok test tui::app::tests::refresh_interval_esc_discards_editor ... ok test tui::app::tests::refresh_interval_out_of_range_keeps_editor_open ... ok test tui::app::tests::rotate_all_detail_promises_what_the_host_actually_does ... ok test tui::app::tests::refresh_interval_plus_minus_are_unbound ... ok test tui::app::tests::refresh_interval_space_cycles_without_opening_editor ... ok test tui::app::tests::refresh_interval_space_from_custom_lands_on_next_preset ... ok test tui::app::tests::refresh_interval_space_wraps_top_preset_to_min ... ok test tui::app::tests::shunt_check_escapes_the_untrusted_slot_strings ... ok test tui::app::tests::shunt_check_maps_each_state_to_its_dot_class ... ok test tui::app::tests::shunt_check_reads_the_slot_fields_in_order ... ok test tui::app::tests::shunt_check_renders_the_foreign_answerer ... ok test tui::app::tests::rekeying_an_endpoint_drops_the_live_broken_mark_immediately ... ok test tui::app::tests::reload_if_state_changed_does_not_invert_config_over_token_locks ... ok test tui::app::tests::relogin_gate_maps_divergence_defaults ... ok test tui::app::tests::relogin_on_a_stashed_new_form_confirms_before_replacing_the_stash ... ok test tui::app::tests::reorder_chain_member_keeps_the_cursor_when_the_save_fails ... ok test tui::app::tests::rotate_tokens_with_live_session_arms_an_acknowledge_notice_on_macos ... ok test tui::app::tests::rotate_tokens_without_live_session_arms_rotate_confirm ... ok test tui::app::tests::saved_off_update_leaves_new_app_with_no_update_handle ... ok test tui::app::tests::saving_a_preset_guards_both_an_existing_name_and_a_builtin ... ok test tui::app::tests::space_keeps_a_custom_day_list_in_the_cycle_while_the_card_is_open ... ok test tui::app::tests::space_on_a_chain_entry_with_no_account_does_nothing ... ok test tui::app::tests::space_on_the_enabled_row_flips_disabled_on_disk ... ok test tui::app::tests::spend_budget_space_toggles_and_persists ... ok test tui::app::tests::start_shunt_on_a_disabled_gateway_jumps_to_the_enabled_row_without_flipping_it ... ok test tui::app::tests::start_shunt_on_an_absent_gateway_jumps_to_the_adopt_line ... ok test tui::app::tests::startup_overwrite_default_routes_a_shell_through_the_guarded_sink ... ok test tui::app::tests::status_detail_up_steps_back_from_the_published_bound ... ok test tui::app::tests::stepping_the_cursor_reloads_the_note ... ok test tui::app::tests::the_account_tabs_offer_the_focused_account_plus_the_global_actions ... ok test tui::app::tests::the_admin_action_reaches_the_engine_and_toasts ... ok test tui::app::tests::the_adopt_refuses_an_unparsed_config_before_reading_any_bind ... ok test tui::app::tests::the_armed_remove_removes_its_member_through_a_reorder_reload ... ok test tui::app::tests::the_cached_gateway_state_follows_every_sync_site ... ok test tui::app::tests::the_codex_only_view_disarms_the_claude_selection_keys ... ok test tui::app::tests::the_daemon_verbs_reach_their_workers ... ok 2026-10-05T00:12:50+00:00 clauth: 2 accounts claim mon: 'work', 'personal' — the chain returns to whichever of them reads clear first 2026-10-05T00:12:50+00:00 clauth: 2 accounts claim mon: 'work', 'personal' — the chain returns to whichever of them reads clear first test tui::app::tests::the_day_collision_warning_fires_on_the_edge_only ... ok test tui::app::tests::the_day_picker_caret_wraps_both_ways ... ok test tui::app::tests::the_day_picker_closes_when_a_reload_drops_its_member ... ok test tui::app::tests::the_day_picker_follows_its_member_through_a_reorder_reload ... ok test tui::app::tests::the_day_picker_passes_help_and_dismiss_and_claims_actions_and_tab ... ok test tui::app::tests::the_delegates_detail_names_rate_limited_traffic ... ok test tui::app::tests::the_delegates_detail_reads_the_store_in_banded_order ... ok test tui::app::tests::the_drain_takes_the_door_from_the_workers_report ... ok test tui::app::tests::the_durable_auth_verdict_seeds_the_key_rejected_set_at_construction ... ok test tui::app::tests::the_live_session_rotate_refusal_names_the_keychain_mechanism ... ok test tui::app::tests::the_durable_auth_verdict_seeds_the_key_rejected_set_on_reload ... ok test tui::app::tests::the_held_state_reads_stopped_until_the_daemon_restarts ... ok test tui::app::tests::the_herdr_landing_fires_once_then_later_launches_open_the_home_tab ... ok test tui::app::tests::the_herdr_landing_is_the_draining_tick_or_never ... ok test tui::app::tests::the_install_fix_opens_a_default_cancel_confirm_before_installing ... ok test tui::app::tests::the_install_fix_runs_agentgear_user_scope_install ... ok test tui::app::tests::the_install_fix_warns_when_claude_is_missing ... ok test tui::app::tests::the_key_action_runs_the_key_edit ... ok test tui::app::tests::the_key_confirm_dispatches_the_key_job ... ok test tui::app::tests::the_login_row_keeps_its_other_two_flows ... ok test tui::app::tests::the_login_row_targets_a_console_only_for_a_model_studio_account ... ok test tui::app::tests::the_max_spend_field_commits_to_its_member_through_a_reorder_reload ... ok test tui::app::tests::the_move_confirm_counts_n_and_k_separately ... ok test tui::app::tests::the_move_failed_toast_escapes_control_and_bidi ... ok test tui::app::tests::the_move_plan_names_every_kept_reason_no_home_and_refusal ... ok test tui::app::tests::the_move_refuses_an_orphaned_gateway_still_answering ... ok test tui::app::tests::the_note_editor_keymap_edits_the_draft ... ok test tui::app::tests::the_paste_field_takes_every_character_as_data_and_stops_at_the_cap ... ok test tui::app::tests::the_plugin_check_folds_the_readouts_and_lists_problems_in_order ... ok test tui::app::tests::the_plugin_check_health_is_the_worst_of_the_four ... ok test tui::app::tests::the_plugin_check_reads_a_fresh_box_in_three_groups ... ok test tui::app::tests::the_plugin_check_reads_a_global_wire_as_wired ... ok test tui::app::tests::the_plugin_check_reads_a_user_install_as_healthy ... ok test tui::app::tests::the_pool_read_requires_an_admin_step_of_neither ... ok test tui::app::tests::the_problem_cursor_clamps_when_a_fix_lands_under_focus ... ok test tui::app::tests::the_provider_console_entry_follows_the_recognised_endpoints ... ok test tui::app::tests::the_rotate_at_field_commits_to_its_member_through_a_reorder_reload ... ok test tui::app::tests::the_seeded_key_rejection_heals_when_another_process_clears_the_record ... ok test tui::app::tests::the_setup_tab_offers_the_focused_accounts_whole_account_actions ... ok test tui::app::tests::the_shunt_action_toasts_follow_the_outcome ... ok test tui::app::tests::the_shunt_card_builds_the_enabled_admin_and_pool_section ... ok test tui::app::tests::the_shunt_card_escapes_control_and_bidi_in_a_provider_name ... ok test tui::app::tests::the_shunt_card_offers_adopt_only_for_a_toml_find ... ok test tui::app::tests::the_shunt_confirms_carry_the_approved_copy ... ok test tui::app::tests::theme_set_tier_round_trips ... ok test tui::app::tests::the_shunt_hold_toasts_follow_the_outcome ... ok test tui::app::tests::the_shunt_hold_verbs_write_and_remove_the_hold_through_the_menu ... FAILED test tui::app::tests::the_shunt_row_names_the_daemon_only_for_an_unobserved_record ... ok test tui::app::tests::the_shunt_verb_follows_the_daemon_verb_and_gates_on_in_flight ... ok test tui::app::tests::the_standalone_readout_probes_the_found_configs_bind ... ok test tui::app::tests::the_standalone_readout_without_a_readable_bind_probes_the_default ... ok test tui::app::tests::the_stop_confirm_counts_the_sessions_on_the_gateway ... ok test tui::app::tests::the_weekly_at_field_commits_to_its_member_through_a_reorder_reload ... ok test tui::app::tests::toggle_preferred_rolls_back_both_flags_when_the_save_fails ... ok test tui::app::tests::toggle_profile_disabled_persists_to_memory_and_disk_and_round_trips ... ok test tui::app::tests::tokens_action_menu_sets_and_swaps_the_model_filter ... ok test tui::app::tests::tokens_period_key_cycles_and_clamps_cursor ... ok test tui::app::tests::version_satisfies_compares_componentwise ... ok test tui::app::tests::version_satisfies_stays_quiet_on_unparseable ... ok test tui::app::tests::the_shunt_verb_table_holds_per_state_and_health ... ok test tui::app::tests::walk_order_space_cycles_and_persists ... ok test tui::app::tests::tokens_topping_up_tracks_the_load_lifecycle ... ok test tui::app::tests::tui_switch_gate_passes_a_healthy_target_through ... ok test tui::app::tests::tui_switch_gate_pending_blocks_switches_and_waits_for_modals ... ok 2026-10-05T00:12:51+00:00 clauth: 'flagged' re-authenticated: auth_broken cleared test tui::app::tests::tui_switch_gate_recovers_a_flagged_target ... ok 2026-10-05T00:12:51+00:00 clauth: refresh for 'dead' failed: HTTP 400 2026-10-05T00:12:51+00:00 clauth: login for 'dead' has expired: refresh token revoked or invalid: run clauth login dead (flagged auth_broken) test tui::app::tests::tui_switch_gate_refuses_a_dead_target_before_its_flag_is_set ... ok 2026-10-05T00:12:51+00:00 clauth: refresh for 'flaky' failed: no response test tui::app::tests::tui_switch_gate_transient_failure_refuses_without_quarantine ... ok test tui::render::chain::tests::a_swap_this_very_second_reads_as_just_now ... ok test tui::render::chain::tests::all_exhausted_shows_resumes_hint_under_any_selected_member ... ok test tui::render::chain::tests::auto_start_queue_view_resolves_slots_from_config_and_anchor ... ok test tui::render::chain::tests::blocked_member_shows_the_worst_reason_pill ... ok test tui::render::chain::tests::blocked_reason_never_reports_disabled_for_the_active_profile ... ok test tui::render::chain::tests::blocked_reason_ranks_disabled_above_canceled_and_auth_broken ... ok test tui::render::chain::tests::canceled_member_shows_the_short_shared_label ... ok test tui::render::chain::tests::disabled_and_canceled_share_the_marker_shape_and_split_on_hue ... ok test tui::app::tests::tui_switch_refuses_a_quarantined_target_with_login_hint ... ok test tui::render::chain::tests::edit_glyph_is_bold_like_the_selection_caret ... ok test tui::render::chain::tests::every_reason_fix_variant_is_reachable_and_non_empty ... ok test tui::render::chain::tests::headroom_member_shows_no_reason_pill ... ok test tui::app::tests::usage_refresh_queues_a_generic_api_key_account ... ok test tui::render::chain::tests::key_rejected_copy_is_pinned_by_equality ... ok test tui::render::chain::tests::last_resort_hint_names_the_currently_marked_member ... ok test tui::render::chain::tests::kick_rejected_member_shows_the_claude_code_blocked_pill ... ok test tui::render::chain::tests::last_resort_hint_wraps_on_a_narrow_pane ... ok test tui::render::chain::tests::last_resort_value_aligns_with_other_rows ... ok test tui::render::chain::tests::max_spend_dims_when_spend_budget_is_off ... ok test tui::render::chain::tests::max_spend_hint_covers_every_spend_state ... ok test tui::render::chain::tests::max_spend_row_renders_off_at_zero_and_dollars_when_set ... ok test tui::render::chain::tests::member_detail_rows_start_clears_the_session_block_at_every_height ... ok test tui::render::chain::tests::member_detail_stacks_the_health_pill_under_disabled ... ok test tui::render::chain::tests::member_detail_rows_start_indexes_the_first_fallback_row_at_every_header_height ... ok test tui::render::chain::tests::partially_exhausted_chain_hides_resumes_hint ... ok test tui::render::chain::tests::preferred_days_row_lights_the_held_rung_never_included ... ok test tui::render::chain::tests::preferred_days_row_hint_names_the_blocker_then_the_list_state ... ok test tui::render::chain::tests::preferred_hint_adds_the_unclaimed_days_when_the_flag_is_also_on ... ok test tui::render::chain::tests::preferred_hint_drops_a_day_list_the_account_cannot_serve ... ok test tui::render::chain::tests::preferred_hint_names_the_day_list_when_one_is_set ... ok test tui::render::chain::tests::preferred_hint_says_which_days_are_left_when_another_account_claims ... ok test tui::render::chain::tests::scoped_spent_pill_names_the_window_and_respects_the_gate ... ok test tui::app::tests::wallet_series_loads_at_bootstrap_and_reloads_on_change ... ok test tui::app::tests::wallet_series_reloads_when_a_head_trim_keeps_the_tail_and_mtime ... ok test tui::app::tests::wallet_series_reloads_when_a_same_length_rewrite_keeps_the_mtime ... ok test tui::app::tests::wallet_series_reloads_when_an_append_keeps_the_mtime ... ok test tui::render::chain::tests::the_day_picker_row_marks_picks_and_carries_its_caret_in_a_slot ... ok test tui::app::tests::write_threshold_silently_noops_for_a_vanished_member ... ok test tui::render::chain::tests::the_last_swap_age_renders_one_unit_and_a_date_past_thirty_days ... ok test tui::render::chain::tests::the_member_card_places_the_session_block_above_the_five_hour_gauge ... ok test tui::render::chain::tests::the_session_block_dates_the_last_swap_and_says_when_it_is_picked_up ... ok test tui::render::chain::tests::the_session_block_emits_the_follower_qualifier_when_one_session_follows ... ok test tui::render::chain::tests::the_session_block_is_absent_when_nothing_is_live ... ok test tui::render::chain::tests::a_chain_row_carries_no_live_session_tally ... ok test tui::render::chain::tests::the_session_block_omits_the_qualifier_when_no_session_follows ... ok test tui::render::chain::tests::a_narrow_pane_clamps_a_marked_members_name_rather_than_dropping_its_marker ... ok test tui::render::chain::tests::disabled_chain_member_dims_its_name_and_takes_the_blocked_reason_marker ... ok test tui::render::chain::tests::usage_gate_rows_hint_the_current_state ... ok test tui::render::chain::tests::weekly_at_default_reminder_only_shows_when_value_differs_from_default ... ok test tui::render::chain::tests::remove_row_stays_reachable_on_a_40x24_pane ... ok test tui::render::chain::tests::weekly_at_row_distinguishes_default_override_and_gated_off ... ok test tui::render::config::tests::action_rows_bold_on_select_and_keep_their_color ... ok test tui::render::config::tests::capture_and_logout_hints_state_the_act_alone ... ok test tui::render::config::tests::clear_session_token_button_is_delete_class_and_arms_on_second_press ... ok test tui::render::config::tests::clear_session_token_button_dims_without_another_stored_login ... ok test tui::render::config::tests::clear_session_token_hint_lets_a_flag_only_account_past_the_gate ... ok test tui::render::config::tests::clear_session_token_hint_names_the_gate_then_what_the_clear_falls_back_to ... ok test tui::render::config::tests::disable_button_dims_while_gated_and_ignores_a_stale_arm ... ok test tui::render::config::tests::disable_button_is_delete_class_danger_and_arms_on_second_press ... ok test tui::render::config::tests::disabled_hint_follows_the_gate_then_the_value ... ok test tui::render::config::tests::edit_glyph_is_bold_like_the_selection_caret ... ok test tui::render::chain::tests::selector_rail_shows_hash_n_at_constant_width ... ok test tui::render::config::tests::enable_button_is_accent_class_bold_only_on_select ... ok test tui::render::config::tests::login_labels_read_the_same_for_every_flow ... ok test tui::render::config::tests::long_lived_token_row_counts_down_and_escalates ... ok test tui::render::config::tests::model_cycle_appends_a_custom_id_without_brackets ... ok test tui::render::config::tests::model_cycle_brackets_the_active_option_only_on_focus ... ok test tui::render::config::tests::rolling_token_row_counts_to_the_restamp_and_escalates ... ok test tui::render::config::tests::selection_caret_is_bold_like_every_other_card ... ok test tui::render::chain::tests::the_add_picker_names_a_carried_day_list_before_the_add ... ok test tui::render::config::tests::self_describing_rows_have_no_hint_and_sibling_hints_are_pinned ... ok test tui::render::config::tests::setup_hints_follow_the_row_value ... ok test tui::render::chain::tests::the_add_picker_names_the_blocker_before_a_carried_list ... ok test tui::render::chain::tests::the_blocked_reason_marker_holds_the_rows_last_content_column ... ok test tui::render::format::tests::account_type_label_dashes_an_unfetched_plan ... ok test tui::render::format::tests::account_type_label_keeps_every_known_tier ... ok test tui::render::format::tests::an_overdue_reset_never_renders_a_clock ... ok test tui::render::format::tests::brackets_stay_dim_regardless_of_fetch_state ... ok test tui::render::format::tests::cell_is_always_exactly_width ... ok test tui::render::format::tests::clock_reset_suffix_degrades_when_the_column_is_too_narrow ... ok test tui::render::format::tests::clock_text_drops_the_day_on_todays_date ... ok test tui::render::format::tests::clock_text_h12_handles_midnight_and_noon ... ok test tui::render::format::tests::clock_text_qualifies_the_day_by_distance ... ok test tui::render::format::tests::cue_absent_for_api_key_profiles ... ok test tui::render::format::tests::cue_absent_when_live_or_never_fetched ... ok test tui::render::chain::tests::the_fallback_tab_reads_the_apps_live_session_tally ... ok test tui::render::format::tests::cue_amber_on_cached_and_rate_limited ... ok test tui::render::format::tests::cue_red_on_failed ... ok test tui::render::format::tests::each_surface_words_the_clock_its_own_way ... ok test tui::render::format::tests::far_over_truncates_with_ellipsis ... ok test tui::render::format::tests::every_surface_falls_back_to_the_countdown_without_a_clock ... ok test tui::render::format::tests::fits_exactly_no_ellipsis ... ok test tui::render::format::tests::is_past_reset_false_while_the_stamp_is_future ... ok test tui::render::format::tests::is_past_reset_false_with_no_reset_stamp ... ok test tui::render::format::tests::is_past_reset_true_at_the_exact_boundary ... ok test tui::render::format::tests::is_past_reset_true_once_the_stamp_has_passed ... ok test tui::render::format::tests::no_data_dash_stays_faint ... ok test tui::render::format::tests::one_char_over_truncates_with_ellipsis ... ok test tui::render::format::tests::overview_reset_middle_dot_stays_uncolored_in_both_mode ... ok test tui::render::chain::tests::typed_max_spend_caret_lands_on_its_row_under_a_wrapped_day_list ... ok test tui::render::format::tests::relative_age_switches_to_a_local_stamp_at_thirty_days ... ok test tui::render::format::tests::shorter_pads_to_width ... ok test tui::render::format::tests::stale_window_fades_only_fill_and_percent ... ok test tui::render::format::tests::relative_reset_suffix_ignores_the_column_width ... ok test tui::render::format::tests::the_resume_caption_keeps_its_tilde_on_the_countdown ... ok test tui::render::format::tests::width_zero_yields_nothing ... ok test tui::render::format::tests::the_widest_column_text_still_fits_the_wide_overview_tier ... ok test tui::render::global_config::tests::a_non_default_value_shows_a_faint_default_reminder ... ok test tui::render::global_config::tests::active_first_option_aligns_with_inactive_first_option ... ok test tui::render::global_config::tests::auto_start_queue_dims_when_no_account_opts_in ... ok test tui::render::global_config::tests::auto_start_queue_renders_as_a_toggle_with_both_hints_pinned ... ok test tui::render::global_config::tests::auto_update_renders_the_toggle_glyphs_and_exact_hints ... ok test tui::render::global_config::tests::auto_update_sits_in_the_scheduler_band_after_rotation ... ok test tui::render::global_config::tests::band_header_underlines_only_the_focused_band ... ok test tui::render::global_config::tests::clock_row_dims_until_a_reset_renders_a_clock ... ok test tui::render::global_config::tests::config_bands_stay_contiguous ... ok test tui::render::global_config::tests::burn_tunables_dim_when_burn_aware_is_off ... ok test tui::render::global_config::tests::context_nudge_custom_value_appends_in_accent_without_bracketing_a_preset ... ok test tui::render::global_config::tests::context_nudge_cycle_line_renders_off_then_presets ... ok test tui::render::global_config::tests::context_nudge_default_reminder_appears_only_when_set ... ok test tui::render::global_config::tests::context_nudge_hint_tracks_the_live_value ... ok test tui::render::global_config::tests::context_nudge_edit_line_marks_invalid_buffer_danger ... ok test tui::render::global_config::tests::context_nudge_range_tooltip_marks_invalid_input_danger ... ok test tui::render::global_config::tests::context_nudge_sits_in_the_scheduler_band_after_the_refresh_rows ... ok test tui::render::global_config::tests::cycle_row_renders_the_contract_shape ... ok test tui::render::global_config::tests::edit_line_buffer_starts_at_the_value_column ... ok test tui::render::global_config::tests::focus_wraps_the_active_option_in_brackets ... ok test tui::render::global_config::tests::home_tab_renders_in_the_appearance_band_at_the_shared_value_column ... ok test tui::render::global_config::tests::every_blurred_row_starts_its_value_at_the_shared_column ... ok test tui::render::global_config::tests::key_cell_is_uniform_width ... ok test tui::render::global_config::tests::longest_key_aligns_with_shortest ... ok test tui::render::global_config::tests::money_spent_dims_when_spend_budget_is_off ... ok test tui::render::global_config::tests::money_spent_hint_states_the_halt_not_inertness ... ok test tui::render::global_config::tests::non_login_keys_renders_the_toggle_and_exact_hints ... ok test tui::render::global_config::tests::non_login_keys_sits_after_on_mismatch ... ok test tui::render::global_config::tests::refresh_spent_renders_as_a_toggle_not_a_cycle ... ok test tui::render::global_config::tests::reset_display_row_shows_all_three_shapes ... ok test tui::render::global_config::tests::rotation_row_is_live_on_every_platform ... ok test tui::render::global_config::tests::reset_rows_hints_track_their_value ... ok test tui::render::global_config::tests::selection_caret_is_bold_like_every_other_card ... ok test tui::render::global_config::tests::value_rows_interpolate_the_live_value_into_their_hint ... ok test tui::render::global_config::tests::walk_order_renders_as_a_cycle_with_both_hints_pinned ... ok test tui::render::header::gauge_tests::gauge_fit_drops_bar_entirely_before_touching_name ... ok test tui::render::header::gauge_tests::gauge_fit_drops_name_only_after_bar_is_already_gone ... ok test tui::render::header::gauge_tests::gauge_fit_hides_entirely_below_the_percent_width ... ok test tui::render::header::gauge_tests::gauge_fit_provider_profile_never_shows_a_bar ... ok test tui::render::header::gauge_tests::gauge_fit_shows_full_name_bar_pct_when_roomy ... ok test tui::render::header::gauge_tests::gauge_fit_shrinks_bar_first_before_name ... ok test tui::render::header::gauge_tests::gauge_fit_truncates_name_only_after_bar_is_already_gone ... ok test tui::render::chain::tests::typed_threshold_caret_lands_on_the_rotate_at_row_at_every_header_height ... ok test tui::render::chain::tests::typed_threshold_row_scrolls_into_view_and_carries_the_caret ... ok test tui::render::config::tests::disabled_account_only_dims_its_name_in_the_setup_list ... ok test tui::render::config::tests::setup_status_row_renders_only_while_disabled ... ok test tui::render::config::tests::snap_rolling_token_is_the_sidecar_content_not_the_config_flag ... ok test tui::render::config::tests::stalled_rolling_fix_line_uses_the_title_that_survives_a_draft ... ok test tui::render::footer::tests::the_usage_hints_advertise_the_note_key ... ok test tui::render::header::gauge_tests::a_count_wider_than_the_hold_renders_whole ... ok test tui::render::header::gauge_tests::an_unread_tally_renders_a_dash_not_a_zero ... ok test tui::render::header::gauge_tests::header_height_is_always_three ... ok test tui::render::header::gauge_tests::no_header_row_counts_accounts_at_any_width_tab_or_filter ... ok test tui::render::header::gauge_tests::row1_carries_no_gauge_in_compact_mode_or_without_an_active_profile ... ok test tui::render::header::gauge_tests::row1_carries_the_live_count_alone_where_no_gauge_renders ... ok test tui::render::header::gauge_tests::row1_gauge_falls_to_the_name_and_percent_before_the_name_clips ... ok test tui::render::header::gauge_tests::row1_gauge_falls_to_the_percent_alone_and_then_away ... ok test tui::render::header::gauge_tests::row1_gauge_for_a_provider_profile_carries_no_bar ... ok test tui::render::header::gauge_tests::row1_gauge_shrinks_its_bar_before_it_touches_the_name ... ok test tui::render::header::gauge_tests::row1_is_the_live_count_the_gauge_and_the_status_indicator_when_wide ... ok test tui::render::header::gauge_tests::row1_keeps_the_live_count_in_compact_mode ... ok test tui::render::header::gauge_tests::row1_leads_with_the_fleet_live_count_before_the_gauge ... ok test tui::render::header::gauge_tests::row1_sheds_the_live_count_before_the_gauge_or_the_indicator ... ok test tui::render::header::gauge_tests::row1_shows_zero_live_so_the_gauge_holds_its_place ... ok test tui::render::header::gauge_tests::row2_is_tabs_only ... ok test tui::render::header::gauge_tests::the_daemon_chip_cells_carry_the_pill_grammar ... ok test tui::render::header::gauge_tests::the_daemon_chip_is_always_present_and_maps_health_to_color ... ok test tui::render::header::gauge_tests::the_held_live_chip_width_is_charged_to_the_shed_gate ... ok test tui::render::header::gauge_tests::the_live_chip_cells_carry_the_counter_chip_grammar ... ok test tui::render::header::gauge_tests::the_live_chip_hold_is_seeded_from_the_first_tally ... ok test tui::render::header::gauge_tests::the_live_chip_holds_its_widest_width_so_the_gauge_stays_put ... ok test tui::render::header::gauge_tests::the_status_indicator_drops_rather_than_clipping_when_the_row_runs_short ... ok test tui::render::modals::tests::add_chain_candidate_modal_pins_body_and_named_confirm_button ... ok test tui::render::header::gauge_tests::the_word_accounts_renders_on_the_panel_title_alone ... ok test tui::render::header::herdr_mode_tests::herdr_mode_shows_the_tag_between_the_brand_and_the_version ... ok test tui::render::modals::tests::fallback_tab_key_grammar_rows_pin_exact_order_and_copy ... ok test tui::render::modals::tests::setup_tab_key_grammar_rows_pin_exact_order_and_copy ... ok test tui::render::header::herdr_mode_tests::row0_sheds_the_tag_first_then_the_chip_never_the_version ... ok test tui::render::modals::tests::the_add_admin_table_confirm_button_is_dangerous ... ok test tui::render::modals::tests::the_daemon_start_confirm_renders_its_rows_and_spans ... ok test tui::render::header::herdr_mode_tests::the_chip_renders_without_a_daemon_and_the_tag_only_in_herdr_mode ... ok test tui::render::header::herdr_mode_tests::the_plain_launch_chip_seam_holds_the_same_content_gap ... ok test tui::render::header::herdr_mode_tests::the_version_sits_behind_the_brand_and_the_chip_holds_the_right_edge ... ok test tui::render::modals::tests::the_shunt_confirm_buttons_name_their_verb ... ok test tui::render::modals::tests::a_help_modal_that_fits_renders_without_a_scrollbar ... ok test tui::render::modals::tests::the_usage_help_section_documents_the_note_key ... ok test tui::render::modals::tests::the_stop_shunt_confirm_renders_its_rows_and_a_danger_stop ... ok test tui::render::modals::tests::a_modal_with_no_room_to_draw_publishes_no_scroll_range ... ok test tui::render::modals::tests::a_single_group_action_menu_draws_no_rule_and_names_no_account ... ok test tui::render::modals::tests::an_all_scoped_action_menu_names_its_account_without_a_rule ... ok test tui::render::modals::tests::every_sub_focus_tab_documents_esc_in_help ... ok test tui::render::modals::tests::the_action_menu_titles_its_scope_and_rules_off_the_global_group ... ok test tui::render::modals::tests::the_help_modal_legend_names_every_marker_and_its_hue ... ok test tui::render::modals::tests::the_help_modal_scrolls_its_overflow_instead_of_dropping_it ... ok test tui::render::modals::tests::the_help_modal_spaces_every_arrow_run ... ok test tui::render::overview::tests::a_codex_row_shows_the_reset_chip_only_while_one_is_available ... ok test tui::render::overview::tests::a_codex_rows_usage_cells_sit_under_their_headers ... ok test tui::render::overview::tests::a_deepseek_cache_written_before_the_rename_still_shows_its_balance ... ok test tui::render::overview::tests::an_empty_title_keeps_the_full_rule_run ... ok test tui::render::overview::tests::a_quarantined_codex_row_renders_the_broken_marker ... ok test tui::render::overview::tests::a_title_row_narrower_than_the_eyebrow_and_its_slot_clips_the_slot ... ok test tui::render::overview::tests::a_wallet_bearing_active_shows_its_drains_line ... ok test tui::render::overview::tests::a_wallet_bearing_active_without_a_series_shows_no_drains_line ... ok test tui::render::overview::tests::active_dot_outranks_the_peak_marker ... ok test tui::render::overview::tests::all_exhausted_wrap_mode_shows_resumes_hint ... ok test tui::render::overview::tests::chain_panel_height_caps_so_accounts_keeps_minimum ... ok test tui::render::overview::tests::chain_panel_height_fits_its_content ... ok test tui::render::overview::tests::chain_panel_height_floors_at_three_without_panicking ... ok test tui::render::overview::tests::all_exhausted_wrap_off_active_cleared_shows_resumes_hint ... ok test tui::render::overview::tests::an_account_with_no_live_sessions_renders_a_blank_live_cell ... ok test tui::render::overview::tests::an_empty_roster_pair_renders_no_meta_slot ... ok test tui::render::overview::tests::bell_marker_shows_when_login_is_fine ... ok test tui::render::overview::tests::bell_outranks_the_peak_marker ... ok test tui::render::overview::tests::broken_login_marker_outranks_bell_and_active ... ok test tui::render::overview::tests::broken_login_outranks_token_danger_marker ... ok test tui::render::overview::tests::cached_row_colors_countdown_amber_and_underlines_nothing ... ok test tui::render::overview::tests::canceled_marker_is_dead_first ... ok test tui::render::overview::tests::chain_row_drops_switch_hint_before_reason_marker_when_narrow ... ok test tui::render::overview::tests::chain_row_renders_every_projected_hop_with_the_return_glyph ... ok test tui::render::overview::tests::chain_row_shows_both_switch_hint_and_reason_marker_when_they_fit ... ok test tui::render::overview::tests::chain_row_switch_hint_rides_the_target_row ... ok test tui::render::overview::tests::chain_rows_align_the_threshold_percent_column ... ok test tui::render::overview::tests::codex_rows_plan_falls_back_to_the_id_token_claim ... ok test tui::render::overview::tests::codex_rows_read_the_roster_and_its_own_cache ... ok test tui::render::overview::tests::credentialed_long_label_clamps_to_kind_width ... ok test tui::render::overview::tests::deepseek_all_zero_shows_the_highest ... ok test tui::render::overview::tests::deepseek_amount_w_spans_all_currencies ... ok test tui::render::overview::tests::deepseek_balance_currencies_align_across_rows ... ok test tui::render::overview::tests::deepseek_multi_currency_only_shows_above_zero ... ok test tui::render::overview::tests::deepseek_multi_currency_shows_all_above_zero ... ok test tui::render::overview::tests::deepseek_row_shows_total_balance_in_5h_column ... ok test tui::render::overview::tests::deepseek_row_without_balance_shows_no_data_dash ... ok test tui::render::overview::tests::deepseek_single_wallet_renders_unchanged ... ok test tui::render::overview::tests::deepseek_two_wallet_renders_only_the_funded_wallet ... ok test tui::render::overview::tests::drain_reset_style_7d_runs_dry_first_is_warning ... ok test tui::render::overview::tests::drain_reset_style_low_drain_is_dim_hue ... ok test tui::render::overview::tests::drain_reset_style_none_without_a_positive_rate ... ok test tui::render::overview::tests::disabled_and_past_reset_row_stays_fully_dim ... ok test tui::render::overview::tests::drain_reset_style_reads_a_7d_rate_as_per_day ... ok test tui::render::overview::tests::drain_reset_style_runs_dry_first_is_warning ... ok test tui::render::overview::tests::every_give_way_term_measures_wide_glyphs_in_display_cells ... ok test tui::render::overview::tests::disabled_peak_row_dims_the_marker ... ok test tui::render::overview::tests::disabled_row_blanks_the_refresh_countdown_at_full_width ... ok test tui::render::overview::tests::disabled_row_dims_its_name_and_keeps_the_real_type_value ... ok test tui::render::overview::tests::disabled_row_flattens_every_semantic_hue_to_dim ... ok test tui::render::overview::tests::disabled_row_type_cell_does_not_pulse ... ok test tui::render::overview::tests::drain_rate_covers_third_party_windows_from_avg_pace ... ok test tui::render::overview::tests::drain_rate_oauth_five_hour_uses_recent_burn ... ok test tui::render::overview::tests::drain_rate_seeded_third_party_window_keeps_avg_pace ... ok test tui::render::overview::tests::live_column_width_is_monotone_in_inner_width ... ok test tui::render::overview::tests::failed_row_colors_countdown_red ... ok test tui::render::overview::tests::fallback_panel_marks_a_blocked_member ... ok test tui::render::overview::tests::fallback_panel_parks_trailers_next_to_the_content ... ok test tui::render::overview::tests::five_hour_stamp_never_lost_without_a_7d_bar_gain ... ok test tui::render::overview::tests::gap_widening_never_clips_the_row ... ok test tui::render::overview::tests::header_keeps_plain_5h_when_no_deepseek_profile_is_present ... ok test tui::render::overview::tests::header_reads_5h_balance_when_a_deepseek_profile_is_present ... ok test tui::render::overview::tests::healthy_chain_hides_resumes_hint ... ok test tui::render::overview::tests::live_cell_stays_under_header_when_7d_reset_is_two_digit_hours ... ok test tui::render::overview::tests::long_lived_token_expired_marks ... ok test tui::render::overview::tests::no_table_no_peak_marker ... ok test tui::render::overview::tests::no_tier_type_cell_does_not_pulse ... ok test tui::render::overview::tests::no_tier_type_cell_reads_faint_unless_something_real_shares_the_cell ... ok test tui::render::overview::tests::oauth_row_drain_colors_the_seven_day_countdown ... ok test tui::render::overview::tests::off_peak_row_keeps_the_active_dot ... ok test tui::render::overview::tests::partially_exhausted_chain_hides_resumes_hint ... ok test tui::render::overview::tests::peak_marker_renders_on_inactive_rows ... ok test tui::render::overview::tests::the_harness_filter_cycles_and_names_itself ... ok test tui::render::overview::tests::stale_window_fades_bar_fill_and_percent ... ok test tui::render::overview::tests::the_accounts_meta_slot_counts_both_harnesses_whatever_the_filter_shows ... ok test tui::render::overview::tests::the_accounts_meta_slot_omits_a_roster_with_no_accounts ... ok test tui::render::overview::tests::the_accounts_meta_slot_sheds_before_the_title_loses_its_rule ... ok test tui::render::overview::tests::the_accounts_scrollbar_counts_the_codex_rows ... ok test tui::render::overview::tests::the_accounts_title_opens_with_the_corner_dash_and_the_counts_keep_their_gap ... ok test tui::render::overview::tests::the_accounts_title_row_carries_the_harness_filter ... ok test tui::render::overview::tests::the_counts_slot_sheds_before_the_filter_slot ... ok test tui::render::overview::tests::the_filter_slot_is_dim_data_and_the_eyebrow_keeps_its_title_style ... ok test tui::render::overview::tests::the_live_column_counts_live_sessions_and_marks_chain_followers ... ok test tui::render::overview::tests::the_live_column_holds_its_place_while_nothing_is_live ... ok test tui::render::overview::tests::the_live_column_is_dropped_rather_than_clipped_when_it_does_not_fit ... ok test tui::render::overview::tests::third_party_row_drain_colors_both_countdowns ... ok test tui::render::overview::tests::token_danger_marker_outranks_bell_and_active ... ok test tui::render::render_smoke::a_custom_day_list_at_rest_wraps_between_days ... ok test tui::render::render_smoke::a_hand_written_day_list_renders_without_rewriting_its_file ... ok test tui::render::render_smoke::a_mid_list_add_candidate_keeps_its_whole_note_on_screen ... ok test tui::render::render_smoke::a_modal_owns_the_arrows_so_the_footer_drops_the_tab_hint ... ok test tui::render::render_smoke::a_narrow_login_line_keeps_the_open_editors_exit_hint ... ok test tui::render::render_smoke::a_picker_taller_than_the_pane_keeps_its_caret_in_view ... ok test tui::render::render_smoke::a_stepped_past_custom_list_stays_on_the_row_as_a_faint_stop ... ok test tui::render::render_smoke::a_two_line_toast_bolds_the_head_and_dims_the_detail ... ok test tui::render::render_smoke::a_wrapped_hint_scrolls_into_view_with_its_row ... ok test tui::render::render_smoke::all_tabs_render ... ok test tui::render::render_smoke::an_editor_owning_the_arrows_names_them_and_drops_the_tab_hint ... ok test tui::render::render_smoke::an_overflowing_member_card_draws_its_scrollbar ... ok test tui::render::render_smoke::banner_renders ... ok test tui::render::render_smoke::capture_name_caret_follows_edit_position ... ok test tui::render::render_smoke::config_bands_are_separated_by_one_blank_row ... ok test tui::render::render_smoke::config_context_nudge_custom_editor_renders ... ok test tui::render::render_smoke::config_refresh_interval_custom_editor_renders ... ok test tui::render::render_smoke::empty_state_renders ... ok test tui::render::render_smoke::fallback_edit_caret_follows_the_blocked_reason_pill ... ok test tui::render::render_smoke::fallback_preferred_days_footer_hints ... ok test tui::render::render_smoke::fallback_selector_marks_a_blocked_member ... ok test tui::render::render_smoke::fallback_threshold_editor_shows_range_tooltip ... ok test tui::render::render_smoke::form_panes_keep_the_focused_row_on_screen_when_they_overflow ... ok test tui::render::render_smoke::hybrid_renders_the_activity_and_deadline_of_its_provider_cache ... ok test tui::render::render_smoke::login_modal_drops_the_url_and_offers_a_retry ... ok test tui::render::render_smoke::scroll_offset_keeps_the_whole_focused_block_on_screen ... ok test tui::render::render_smoke::login_modal_offers_both_doors_while_waiting_then_only_the_stage ... ok test tui::render::render_smoke::narrow_footer_degrades_to_essential_hints ... ok test tui::render::render_smoke::narrow_master_detail_stacks_wide_stays_side_by_side ... ok test tui::render::render_smoke::narrow_modal_body_wraps_instead_of_clipping ... ok test tui::render::render_smoke::narrow_overview_chain_row_keeps_its_figures_on_one_line ... ok test tui::render::render_smoke::narrow_status_detail_duration_drops_to_its_own_line ... ok test tui::render::render_smoke::narrow_tokens_dashboard_keeps_card_text_whole ... ok test tui::render::render_smoke::new_form_renders_the_capture_row_and_its_done_state ... ok test tui::render::render_smoke::overview_reset_column_never_loses_ground_to_the_clock_setting ... ok test tui::render::render_smoke::setup_api_account_shows_relogin_and_logout_rows ... ok test tui::render::render_smoke::setup_delete_row_hint_names_usage_history ... ok test tui::render::render_smoke::setup_hybrid_account_reads_logged_in_on_its_oauth_pair ... ok test tui::render::render_smoke::setup_hybrid_logout_hint_names_the_oauth_login ... ok test tui::render::render_smoke::status_selected_row_tint_spans_both_lines ... ok test tui::render::render_smoke::status_tab_incident_stamps_render_local_wall_clock ... ok test tui::render::render_smoke::the_actions_hint_tracks_whether_the_menu_has_anything_in_it ... ok test tui::render::render_smoke::the_add_picker_follows_its_cursor_and_draws_its_scrollbar ... ok test tui::render::render_smoke::the_code_field_shows_the_typed_text_and_the_placeholder ... ok test tui::render::render_smoke::the_console_login_modal_keeps_r_alone ... ok test tui::render::render_smoke::the_day_picker_wraps_between_chips_at_every_width ... ok test tui::render::render_smoke::the_five_hour_gauge_shrinks_so_its_figure_reads_whole ... ok test tui::render::render_smoke::the_home_tab_row_wraps_between_chips_at_a_narrow_pane ... ok test tui::render::render_smoke::the_live_column_appears_monotonically_in_width ... ok test tui::render::render_smoke::the_login_line_names_the_keys_an_open_editor_takes_first ... ok test tui::render::render_smoke::the_new_account_form_labels_esc_done_and_keeps_the_typed_value ... ok test tui::render::render_smoke::the_overview_column_budget_never_pays_for_a_new_column_with_an_old_one ... ok test tui::render::render_smoke::the_preferred_days_hint_reads_whole_on_a_narrow_card ... ok test tui::render::render_smoke::the_preferred_days_row_at_rest_is_the_preset_run ... ok test tui::render::render_smoke::the_setup_and_fallback_cards_open_their_values_on_one_column ... ok test tui::render::render_smoke::tokens_models_view_empty_filter_names_the_filter ... ok test tui::render::render_smoke::usage_tab_reset_follows_the_reset_display_setting ... ok test tui::render::render_smoke::usage_weekly_teach_keys_on_the_hard_cap_not_the_member_line ... ok test tui::render::services::tests::a_card_change_pushing_every_stop_off_screen_resettles_to_none ... ok test tui::render::services::tests::a_delegate_cwd_renders_control_and_bidi_characters_escaped ... ok test tui::render::services::tests::a_delegate_row_carries_the_figures_its_own_record_holds ... ok test tui::render::services::tests::detail_line_truncates_paths_and_prose_to_the_pane ... ok test tui::render::services::tests::a_live_delegate_outranks_finished_ones_however_recently_they_landed ... ok test tui::render::services::tests::a_resize_pushing_focus_off_screen_resettles_to_the_first_line_in_view ... ok test tui::render::services::tests::a_shunt_action_running_drops_the_footer_fix_hints ... ok test tui::render::services::tests::a_stopless_card_still_scrolls_one_line_per_press ... ok test tui::render::services::tests::an_unadopted_shunt_state_reads_dim ... ok test tui::render::services::tests::ascending_keeps_the_card_highlight_but_drops_the_detail_caret ... ok test tui::render::services::tests::bringing_the_stops_back_into_view_resettles_the_none_focus_then_walks_from_it ... ok test tui::render::services::tests::delegate_lines_pin_the_overflow_count_and_the_directory_exactly ... ok test tui::render::services::tests::delegate_row_text_renders_inert_with_tooltip_when_herdr_config_does_not_parse ... ok test tui::render::services::tests::down_from_none_lands_on_the_first_stop_in_view ... ok test tui::render::services::tests::down_scrolls_the_refused_card_one_line_each_to_its_last_words ... ok test tui::render::services::tests::down_up_walk_the_shunt_stops_on_a_fitting_card ... ok test tui::render::services::tests::each_delegate_state_carries_its_own_hue ... ok test tui::render::services::tests::f_on_the_focused_move_line_opens_the_move_confirm ... ok test tui::render::services::tests::herdr_options_render_all_six_rows_on_both_tiers ... ok test tui::render::services::tests::herdr_options_render_blurred_when_focus_sits_on_the_selector ... ok test tui::render::services::tests::herdr_row_renders_danger_dot_on_registry_error ... ok test tui::render::services::tests::herdr_row_renders_danger_dot_on_registry_warnings ... ok test tui::render::services::tests::herdr_row_renders_ok_dot_without_fix ... ok test tui::render::services::tests::herdr_row_renders_warn_dot_and_a_bare_f_line_when_key_unbound ... ok test tui::render::services::tests::herdr_row_renders_warn_dot_and_a_bare_f_line_when_sidebar_untemplated ... ok test tui::render::services::tests::herdr_row_renders_warn_dot_without_fix_when_config_does_not_parse ... ok test tui::render::services::tests::herdr_row_renders_warn_dot_without_fix_when_config_unreadable ... ok test tui::render::services::tests::herdr_row_renders_warn_dot_without_fix_when_not_installed ... ok test tui::render::services::tests::herdr_row_renders_warn_dot_without_fix_when_version_too_old ... ok test tui::render::services::tests::herdr_tag_refresh_editor_renders_the_edit_state ... ok test tui::render::services::tests::redescending_keeps_the_held_focus_when_its_line_is_in_view ... ok test tui::render::services::tests::scrolling_past_the_last_stop_leaves_focus_none_until_a_stop_returns_to_view ... ok test tui::render::services::tests::the_band_sort_keeps_each_band_newest_first ... ok test tui::render::services::tests::the_delegates_detail_marks_its_overflow_with_a_count ... ok test tui::render::services::tests::the_delegates_detail_names_each_state_and_carries_the_steer_line ... ok test tui::render::services::tests::the_delegates_detail_renders_its_empty_state_with_the_steer_line ... ok test tui::render::services::tests::the_delegates_detail_renders_the_rate_limit_warning ... ok test tui::render::services::tests::the_delegates_detail_reports_what_monitor_reports_for_the_same_record ... ok test tui::render::services::tests::the_delegates_dot_is_green_while_a_job_runs_and_dim_when_none ... ok test tui::render::services::tests::the_list_f_fixes_the_first_fixable_problem ... ok test tui::render::services::tests::the_pane_title_opens_with_the_corner_dash ... ok test tui::render::services::tests::the_plugin_detail_folds_the_readouts_and_renders_bare_f_lines ... ok test tui::render::services::tests::the_plugin_detail_renders_a_shrunk_problem_set_without_panicking ... ok test tui::render::services::tests::the_plugin_detail_tones_the_mcp_and_install_values ... ok test tui::render::services::tests::the_plugin_detail_walks_problems_and_f_fixes_the_focused_one ... ok test tui::render::services::tests::the_refused_plans_last_line_is_reachable_at_80x20_and_58x24 ... ok test tui::render::services::tests::the_selector_lists_each_service_row_dot_and_label_only ... ok test tui::render::services::tests::the_services_footer_hints_pin_each_focus_state ... ok test tui::render::services::tests::the_shunt_action_renders_the_enabled_and_fix_rows_inert ... ok test tui::render::services::tests::the_shunt_path_keys_truncate_on_the_shared_middle_ellipsis ... ok test tui::render::services::tests::the_shunt_card_renders_the_action_section_verbatim ... ok test tui::render::services::tests::the_shunt_card_renders_the_enabled_toggle_on_and_off ... ok test tui::render::services::tests::the_shunt_card_renders_the_pool_and_refused_lines_in_the_warning_tone ... ok test tui::render::services::tests::the_shunt_card_renders_the_pool_failure_line ... ok test tui::render::services::tests::the_shunt_card_wraps_the_refused_and_pool_sentences ... ok test tui::render::services::tests::the_shunt_detail_escapes_a_planted_screen_clear ... ok test tui::render::services::tests::the_shunt_detail_hint_names_what_updown_does ... ok test tui::render::services::tests::the_shunt_detail_renders_every_set_field ... ok test tui::render::services::tests::the_shunt_dot_maps_each_state_to_its_class ... ok test tui::render::services::tests::the_title_spinner_shows_while_a_services_probe_runs ... ok test tui::render::tabs::tab_overflow_tests::truncate_label_plain ... ok test tui::render::tabs::tab_overflow_tests::truncate_label_preserves_suffix ... ok test tui::render::toasts::tests::col_width_equals_content_width_plus_chrome ... ok test tui::render::toasts::tests::empty_input_yields_one_empty_line ... ok test tui::render::toasts::tests::short_line_unchanged ... ok test tui::render::toasts::tests::single_word_exceeding_cap_hard_breaks ... ok test tui::render::toasts::tests::wraps_at_word_boundary ... ok test tui::render::tokens::tests::activity_caption_names_the_granularity ... ok test tui::render::tokens::tests::activity_caption_reports_the_busiest_bucket_only ... ok test tui::render::tokens::tests::bar_chart_nonzero_keeps_the_floor_cell ... ok test tui::render::tokens::tests::bar_chart_peak_fills_the_full_height ... ok test tui::render::tokens::tests::bar_chart_short_series_is_left_padded ... ok test tui::render::tokens::tests::bar_chart_sqrt_lifts_quiet_days_above_linear ... ok test tui::render::tokens::tests::bar_chart_sqrt_peak_alone_fills_the_full_height ... ok test tui::render::tokens::tests::bar_chart_zero_series_renders_a_baseline ... ok test tui::render::tokens::tests::bucket_layout_widens_only_when_there_is_room ... ok test tui::render::tokens::tests::composition_pcts_anchor_to_the_card_edge ... ok test tui::render::tokens::tests::cost_lens_reads_rates_loading_before_any_pricing_result ... ok test tui::render::services::tests::the_toggle_paints_its_parts_in_the_contract_colours ... ok test tui::render::tabs::tab_overflow_tests::count_cache_toggle_switches_token_basis ... ok test tui::render::tabs::tab_overflow_tests::normal_form_labels_untruncated_at_tight_boundary ... ok test tui::render::tabs::tab_overflow_tests::normal_form_shows_all_tabs ... ok test tui::render::tokens::tests::determinate_bar_is_bare_with_a_trailing_label ... ok test tui::render::tokens::tests::hour_bars_and_ticks_widen_on_wide_cards ... ok test tui::render::tokens::tests::hour_lines_carry_baseline_ticks_only_when_tall_enough ... ok test tui::render::tabs::tab_overflow_tests::overflow_chevrons_at_middle_tab ... ok test tui::render::tokens::tests::indeterminate_bar_is_bracketed_with_a_bouncing_block ... ok test tui::render::tokens::tests::model_detail_cost_sums_buckets_across_hourly_days ... ok test tui::render::tokens::tests::model_detail_marks_nothing_on_incomplete_split ... ok test tui::render::tabs::tab_overflow_tests::overflow_form_shows_only_active ... ok test tui::render::tokens::tests::model_lines_dash_unpriced_models_when_a_table_is_loaded ... ok test tui::render::tokens::tests::model_detail_total_floors_mixed_priced_days ... ok test tui::render::tokens::tests::peak_window_boundary_hour_16_prices_peak ... ok test tui::render::tabs::tab_overflow_tests::overflow_no_left_chevron_at_first_tab ... ok test tui::render::tokens::tests::model_detail_marks_cache_write_not_reported ... ok test tui::render::tokens::tests::period_cost_floors_on_unpriced_days ... ok test tui::render::tokens::tests::period_cost_sums_each_day_at_its_dated_rate ... ok test tui::render::tabs::tab_overflow_tests::overflow_no_right_chevron_at_last_tab ... ok test tui::render::tokens::tests::today_card_floors_unpriced_models_and_dashes_without_a_table ... ok test tui::render::tokens::tests::today_card_hourly_sum_matches_the_flat_model_totals ... ok test tui::render::tokens::tests::today_card_prices_each_model_in_model_hours ... ok test tui::render::tokens::tests::today_card_prices_peak_and_off_peak_hours_at_their_tiers ... ok test tui::render::tabs::tab_overflow_tests::tokens_dashboard_uses_alignment_not_middot ... ok test tui::render::tokens::tests::total_cost_counts_unpriced_with_tokens ... ok test tui::render::tokens::tests::cost_lens_reads_rates_unavailable_after_a_failed_fetch ... ok test tui::render::tokens::tests::trend_bars_widen_with_gaps_and_carry_month_ticks ... ok test tui::render::tokens::tests::unhoured_day_prices_flat_at_default_tier_without_floor_mark ... ok test tui::render::tokens::tests::window_cost_sums_rows_and_floors_unpriced_days ... ok test tui::render::tokens::tests::daily_lens_rows_carry_todays_hourly_buckets ... ok test tui::render::usage::tests::a_failing_refresh_names_itself_on_the_cached_row ... ok test tui::render::usage::tests::a_hybrid_stuck_hint_names_the_winning_reading_source ... ok test tui::render::usage::tests::a_streak_pill_turns_red_only_once_it_is_stuck ... ok test tui::render::tokens::tests::dashboard_clamps_to_a_centered_band_on_wide_short_terminals ... ok test tui::render::usage::tests::auth_broken_does_not_render_a_reassuring_idle_line ... ok test tui::render::usage::tests::auth_broken_hint_names_the_profile ... ok test tui::render::usage::tests::auth_broken_suppresses_the_lesser_pills ... ok test tui::render::usage::tests::bar_spans_places_marker_without_changing_width ... ok test tui::render::usage::tests::effective_rate_limit_is_oauth_first_with_a_third_party_fallback ... ok test tui::render::usage::tests::empty_msg_credless_profile_is_terminal ... ok test tui::render::usage::tests::empty_msg_disabled_profile_is_terminal ... ok test tui::render::usage::tests::empty_msg_failed_fetch_is_terminal ... ok test tui::render::usage::tests::empty_msg_pending_fetch_loads ... ok test tui::render::usage::tests::extra_bar_dedups_against_spend_and_scales_cents ... ok test tui::render::usage::tests::header_lines_auto_start_kick_text_reads_the_later_of_gate_and_own_reset ... ok test tui::render::usage::tests::header_lines_kick_text_truncates_then_drops_on_tight_rows ... ok test tui::render::usage::tests::header_lines_plan_dashes_when_no_tier_is_known ... ok test tui::render::usage::tests::header_lines_plan_falls_back_to_account_tier ... ok test tui::render::usage::tests::header_lines_plan_keeps_api_for_api_key_profiles ... ok test tui::render::usage::tests::header_lines_plan_shows_a_hybrid_oauth_profiles_fetched_tier ... ok test tui::render::tokens::tests::dashboard_reflows_to_two_columns_on_big_terminals ... ok test tui::render::usage::tests::kick_block_pins_its_own_pill_even_on_a_fresh_row ... ok test tui::render::usage::tests::kick_hint_diverges_on_auto_start ... ok test tui::render::usage::tests::ordinal_covers_teens_and_edge_digits ... ok test tui::render::tokens::tests::placeholder_shows_the_full_width_bouncing_bar ... ok test tui::render::usage::tests::pricing_line_off_peak_pill ... ok test tui::render::usage::tests::pricing_line_peak_pill_and_countdown ... ok test tui::render::usage::tests::pricing_line_without_flip_has_no_countdown ... ok test tui::render::usage::tests::rate_limited_suffix_counts_the_retry ... ok test tui::render::usage::tests::spent_skipped_account_pill_is_bare ... ok test tui::render::tokens::tests::price_failed_clears_on_loaded ... ok test tui::render::usage::tests::stale_window_color_fades_to_faint ... ok test tui::render::usage::tests::stats_from_bars_fills_pace_for_windowed_labels ... ok test tui::render::usage::tests::stats_from_bars_does_not_rename_duplicate_labels ... ok test tui::render::usage::tests::stats_from_bars_keeps_api_labels_and_source_order ... ok test tui::render::tokens::tests::price_failed_keeps_the_last_good_table_on_a_transient_failure ... ok test tui::render::usage::tests::status_lines_connects_two_plus_hints_into_one_rail ... ok test tui::render::usage::tests::status_lines_keyless_third_party_renders_no_key_pill ... ok test tui::render::usage::tests::status_lines_no_hint_row_after_closed_rail_stays_unbridged ... ok test tui::render::usage::tests::status_lines_no_canceled_pill_when_subscription_is_active ... ok test tui::render::usage::tests::status_lines_no_key_gate_is_the_work_lists_membership ... ok test tui::render::usage::tests::status_lines_renders_stale_cue_from_age_alone ... ok test tui::render::usage::tests::status_lines_oauth_profile_never_renders_no_key ... ok test tui::render::usage::tests::status_lines_renders_the_auto_start_divergence ... ok test tui::render::tokens::tests::price_failed_sets_on_failed_without_a_table ... ok test tui::render::usage::tests::status_lines_single_hint_has_no_rail ... ok test tui::render::usage::tests::status_lines_stacks_the_health_rungs_under_disabled ... ok test tui::render::usage::tests::status_lines_shows_canceled_from_a_prior_sessions_cached_plan ... ok test tui::render::usage::tests::status_lines_stale_prepends_the_fetch_row ... ok test tui::render::usage::tests::status_lines_stale_cue_coexists_with_cached_fetch_status ... ok test tui::render::usage::tests::status_lines_suppresses_only_the_fetch_and_refresh_rungs_when_disabled ... ok test tui::render::usage::tests::stuck_429_hint_names_the_throttler ... ok test tui::render::usage::tests::status_lines_wrapped_non_last_hint_bridges_its_continuation ... ok test tui::render::usage::tests::the_block_leads_its_own_line_and_never_abuts_the_fetch_state ... ok test tui::render::usage::tests::the_note_slot_renders_the_draft_and_parks_the_caret_on_it ... ok test tui::render::usage::tests::the_note_slot_scrolls_the_draft_to_keep_the_caret_visible ... ok test tui::render::usage::tests::the_notes_row_hints_when_empty_and_renders_the_full_note ... ok test tui::render::usage::tests::tp_body_rows_share_one_value_column ... ok test tui::render::usage::tests::tp_rows_append_the_wallet_burn_rate_to_the_balance_row ... ok test tui::render::usage::tests::tp_rows_auth_expired_copy_splits_by_credential ... ok test tui::render::usage::tests::tp_rows_console_only_alibaba_still_loads ... ok test tui::render::usage::tests::tp_rows_disabled_profile_is_terminal ... ok test tui::render::usage::tests::tp_rows_empty_key_profile_is_terminal ... ok test tui::render::tokens::tests::total_card_groups_kv_rows_and_carries_the_range_meta ... ok test tui::render::usage::tests::tp_rows_render_a_refusal_under_the_figures_it_qualifies ... ok test tui::render::usage::tests::tp_rows_uncredentialed_profile_is_terminal ... ok test tui::render::usage::tests::uncapped_outranks_budget_spent_in_the_status_block ... ok test tui::showcase::demo_config_has_expected_profiles ... ok test tui::render::tokens::tests::trend_and_activity_badges_read_by_week_and_by_month ... ok test tui::showcase::future_iso_parses ... ok test tui::render::usage::tests::a_key_without_an_endpoint_renders_through_the_oauth_arm ... ok test tui::render::usage::tests::a_stuck_third_party_row_renders_the_pill_ordinal_and_hint ... ok test tui::showcase::showcase ... ignored, interactive TUI; run with `cargo test showcase -- --ignored --nocapture` in a real terminal test tui::render::usage::tests::header_lines_pricing_row_only_with_windows ... ok test tui::render::usage::tests::peak_state_for_is_provider_bound ... ok test update::tests::derive_sums_url_replaces_asset_name ... ok test update::tests::find_expected_sha_empty_sums_file ... ok test update::tests::find_expected_sha_finds_matching_asset ... ok test update::tests::find_expected_sha_returns_none_for_missing_asset ... ok test update::tests::parse_sums_line_rejects_short_hex ... ok test update::tests::parse_sums_line_rejects_single_space ... ok test update::tests::parse_sums_line_valid ... ok test update::tests::pinned_public_key_parses_when_set ... ok test tui::render::usage::tests::the_best_effort_report_footer_survives_a_narrow_usage_pane ... ok test tui::render::usage::tests::the_key_rejection_fix_copy_survives_a_narrow_usage_pane ... ok test tui::render::usage::tests::the_oauth_no_login_fix_copy_survives_a_narrow_usage_pane ... ok test tui::showcase::config_reset_rows_cycle_and_persist_with_the_clock_row_gated ... ok test update::tests::verify_minisign_empty_key_is_inactive ... ok test update::tests::verify_minisign_garbage_key_fails ... ok test update::tests::verify_minisign_known_good_vector_passes ... ok test update::tests::verify_minisign_malformed_signature_fails ... ok test update::tests::verify_minisign_tampered_payload_fails ... ok test update::tests::verify_sha256_correct_bytes_passes ... ok test update::tests::verify_sha256_empty_bytes ... ok test update::tests::verify_sha256_flipped_byte_fails ... ok test update::tests::verify_sha256_flipped_hex_char_fails ... ok test update::tests::verify_sha256_rejects_wrong_length_hex ... ok test update::tests::verify_sha256_uppercase_hex_also_accepted ... ok test tui::showcase::demo_data_drives_all_actions ... ok test tui::showcase::headless_showcase_renders ... ok test tui::showcase::seed_history_yields_burn_rates ... ok test usage::auto_start_queue::tests::auto_start_queue_due_holds_until_the_gap_passes ... ok test usage::auto_start_queue::tests::auto_start_queue_election_picks_one_lapsed_member_in_queue_order ... ok test usage::auto_start_queue::tests::auto_start_queue_election_skips_a_member_that_keeps_failing ... ok test usage::auto_start_queue::tests::auto_start_queue_election_still_probes_when_every_member_is_failing ... ok test usage::auto_start_queue::tests::auto_start_queue_failure_streak_decays_so_a_skip_is_never_permanent ... ok test usage::auto_start_queue::tests::auto_start_queue_gap_is_five_hours_over_n_less_a_capped_tolerance ... ok test tui::showcase::tab_backtab_cycle_screens_like_arrow_keys_at_top_level ... ok test usage::auto_start_queue::tests::auto_start_queue_is_never_gated_by_a_lapsed_window ... ok test usage::auto_start_queue::tests::auto_start_queue_members_excludes_everything_that_cannot_open_a_window ... ok test usage::auto_start_queue::tests::auto_start_queue_members_is_empty_with_the_queue_toggle_off ... ok test usage::auto_start_queue::tests::auto_start_queue_members_keeps_a_hybrid_that_stores_an_oauth_pair ... ok test usage::auto_start_queue::tests::auto_start_queue_members_orders_by_chain_position_then_display_order ... ok test usage::auto_start_queue::tests::auto_start_queue_never_delays_a_single_account ... ok test update::tests::spawn_returns_no_handle_and_closes_the_channel_when_saved_off ... ok test update::tests::spawn_sends_nothing_when_update_disabled ... ok test update::tests::updates_disabled_when_env_is_one ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_confirms_kicked_windows_and_distrusts_a_single_reading ... ok test update::tests::updates_enabled_follows_the_saved_toggle ... FAILED test usage::auto_start_queue::tests::auto_start_queue_series_open_rejects_minute_stepping_idle_at_default_cadences ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_rejects_same_minute_quantized_idle_pairs ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_reads_the_real_idle_hold_as_the_bounded_trade ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_rejects_the_sliding_idle_shape ... ok test usage::auto_start_queue::tests::auto_start_queue_slot_reports_the_position_and_the_queues_shared_countdown ... ok test usage::burn::tests::funded_wallet_rate_is_none_without_a_funded_wallet ... ok test usage::burn::tests::funded_wallet_rate_picks_the_first_funded_wallet ... ok test usage::burn::tests::gap_boundary_clock_step_backwards_no_panic ... ok test usage::burn::tests::gap_boundary_cuts_at_idle_gap ... ok test usage::burn::tests::gap_boundary_finds_most_recent_gap ... ok test usage::burn::tests::gap_boundary_returns_0_when_gap_too_small ... ok test tui::showcase::tab_key_does_not_leak_past_modal_or_field_capture ... ok test usage::burn::tests::gap_boundary_returns_0_when_no_gap ... ok test usage::burn::tests::gap_boundary_returns_0_when_util_changed ... ok test usage::burn::tests::idle_gap_cut_yields_burst_rate ... ok test usage::burn::tests::project_utilization_absurd_burn_clamps_to_finite_max ... ok test usage::burn::tests::lookback_excludes_pre_cutoff_samples ... ok test usage::burn::tests::project_utilization_already_at_cap_stays_at_cap ... ok test usage::burn::tests::project_utilization_heavy_burn_crosses_cap_within_one_poll ... ok test usage::burn::tests::project_utilization_light_burn_stays_under_cap ... ok test usage::burn::tests::project_utilization_negative_burn_cannot_drop_projection ... ok test usage::burn::tests::project_utilization_nan_burn_treated_as_idle ... ok test usage::burn::tests::project_utilization_zero_burn_runs_flat ... ok test usage::burn::tests::recency_weighting_favors_recent_slope ... ok test usage::burn::tests::seven_day_rate_from_capped_window ... ok test usage::burn::tests::steady_linear_drain_exact_rate ... ok test usage::burn::tests::too_few_samples_yields_none ... ok test usage::burn::tests::wallet_identity_pairs_label_with_currency ... ok test usage::burn::tests::wallet_linear_drain_exact_rate_per_day ... ok test usage::burn::tests::wallet_rising_balance_after_a_top_up_reads_as_no_burn ... ok test usage::burn::tests::wallet_too_few_transitions_yields_none ... ok test usage::burn::tests::wallet_top_up_cuts_the_series ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_hedges_an_unconfirmed_kick_marker ... ok test usage::auto_start_queue::tests::auto_start_queue_anchor_memoizes_the_replay_against_the_history_files ... ok test usage::codex::tests::a_codex_reading_never_claims_a_claude_tier ... ok test usage::codex::tests::a_reached_limit_outranks_the_percentages_it_came_with ... ok test usage::codex::tests::a_reached_limit_with_no_windows_invents_nothing ... ok test usage::codex::tests::a_window_without_a_duration_takes_its_positional_slot ... ok test usage::codex::tests::an_unknown_shape_reads_as_no_data_and_bad_json_as_a_parse_error ... ok test usage::codex::tests::banked_reset_credits_ride_the_same_body ... ok test usage::codex::tests::duration_decides_the_slot_whatever_the_position ... ok test usage::codex::tests::the_absolute_reset_wins_over_the_relative_one ... ok test usage::codex::tests::the_body_plan_word_is_normalized_like_the_claim ... ok test usage::auto_start_queue::tests::auto_start_queue_anchor_replays_non_member_profiles ... ok test usage::codex::tests::the_weekly_cutoff_is_exactly_one_day ... ok test usage::codex::tests::two_windows_of_one_kind_do_not_overwrite_each_other ... ok test usage::codex_headers::tests::the_codex_user_agent_is_codexs_shape ... ok test usage::codex_headers::tests::the_codex_version_is_the_version_looking_token ... ok test usage::codex_headers::tests::the_terminal_token_follows_codexs_detection_order ... ok test usage::codex_headers::tests::the_terminal_token_is_sanitized ... ok test usage::codex_reset::tests::limit_reset_consume_codes_map_to_their_outcomes ... ok test usage::codex_reset::tests::limit_reset_failure_lines_separate_nothing_spent_from_unconfirmed ... ok test usage::auto_start_queue::tests::auto_start_queue_history_seed_and_next_open_replay_real_usage_files ... ok test usage::codex_reset::tests::limit_reset_list_parses_codexs_body_and_ignores_the_rest ... ok test usage::codex_reset::tests::limit_reset_outcome_lines_say_what_was_spent ... ok test usage::codex_reset::tests::limit_reset_picks_the_available_credit_that_expires_first ... ok test usage::codex_reset::tests::limit_reset_prompt_and_listing_name_the_credit_that_would_be_spent ... ok test usage::codex_reset::tests::limit_reset_redeem_request_id_is_a_fresh_v4_uuid ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_confirms_a_kicked_window_on_its_marker ... ok test usage::codex_reset::tests::limit_reset_transport_failure_is_reported_not_retried ... ok test usage::codex_reset::tests::limit_reset_unparseable_stamps_reach_the_terminal_without_control_characters ... ok test usage::auto_start_queue::tests::auto_start_queue_anchor_folds_in_an_out_of_band_open ... ok test usage::auto_start_queue::tests::auto_start_queue_series_reader_drops_a_plan_drifted_bridge ... ok test usage::auto_start_queue::tests::auto_start_queue_series_reader_drops_the_writers_bridge_lines ... ok test usage::burn::tests::wallet_short_idle_keeps_the_rate ... ok test usage::burn::tests::wallet_unchanged_past_the_gap_cut_retires_the_rate ... ok test usage::fetch::tests::a_blank_anchor_counts_as_absent_for_the_durable_stamp ... ok test usage::fetch::tests::a_login_body_without_a_tier_still_yields_the_uuid ... ok test usage::fetch::tests::a_login_body_without_a_uuid_still_yields_the_tier ... ok test usage::fetch::tests::a_login_body_yields_the_organizations_rate_limit_tier_verbatim ... ok test usage::fetch::tests::a_login_bodys_blank_uuid_reads_as_no_identity ... ok test usage::fetch::tests::a_durable_stamp_past_the_ttl_still_re_pulls ... ok 2026-10-05T00:12:52+00:00 clauth: feed-corrupt: rate-limit tier backfill failed: failed to parse /nix/var/nix/builds/nix-12670-2432953799/.tmpoc2mUX/.clauth/profiles/feed-corrupt/credentials.json: expected ident at line 1 column 2 test usage::fetch::tests::a_failed_backfill_never_fails_the_profile_leg ... ok test usage::fetch::tests::a_usage_429_still_surfaces_a_freshly_fetched_plan ... ok test usage::fetch::tests::a_failing_endpoint_stays_capped_across_restarts ... ok test usage::fetch::tests::blind_fields_parse_defensively ... ok test usage::fetch::tests::colon_and_colonless_agree ... ok test usage::fetch::tests::epoch_to_iso_round_trips ... ok test usage::fetch::tests::every_tier_maps_to_the_string_claude_code_stores ... ok test usage::fetch::tests::a_login_anchor_overwrites_the_previous_account ... ok test usage::fetch::tests::a_login_anchor_write_ignores_an_absent_or_blank_uuid ... ok test usage::fetch::tests::from_subscription_type_defaults_to_unknown_not_pro ... ok test usage::fetch::tests::from_subscription_type_round_trips_every_token_a_login_mints ... ok test usage::fetch::tests::get_json_emits_cc_per_client_wire_headers ... ok test usage::fetch::tests::humanize_duration_five_minutes_and_up_stays_coarse ... ok test usage::fetch::tests::humanize_duration_shows_seconds_under_five_minutes ... ok test usage::fetch::tests::ideal_pace_tracks_elapsed_window_fraction ... ok test usage::fetch::tests::a_relaunch_inside_the_hour_reuses_the_durable_stamp ... ok test usage::fetch::tests::a_stamp_in_the_future_is_not_freshness ... ok test usage::fetch::tests::limits_drive_windows_and_pick_up_new_models ... ok test usage::fetch::tests::an_unanchored_profile_ignores_the_durable_stamp ... ok test usage::fetch::tests::one_login_body_yields_both_the_tier_and_the_uuid ... ok test usage::fetch::tests::parses_bare_hour_offset ... ok test usage::fetch::tests::parses_colon_offset ... ok test usage::fetch::tests::non_2xx_arrives_as_ok_so_the_status_branches_stay_reachable ... ok test usage::fetch::tests::parses_colonless_offset ... ok test usage::fetch::tests::parses_z_suffix ... ok test usage::fetch::tests::plan_from_profile_reads_tier_and_canceled_status ... ok test usage::fetch::tests::rejects_malformed ... ok test usage::fetch::tests::reserve_slot_spaces_requests ... ok test usage::fetch::tests::retry_after_clamps_huge_hints_at_max ... ok test usage::fetch::tests::retry_after_parses_delta_seconds_and_http_date ... ok test usage::fetch::tests::retry_after_rejects_huge_year_without_panic ... ok test usage::fetch::tests::retry_after_rejects_invalid_calendar_dates ... ok test usage::fetch::tests::short_label_drops_claude_prefix_and_keeps_max_multiplier ... ok test usage::fetch::tests::spend_money_conversion_and_visibility ... ok test usage::fetch::tests::spent_resume_in_secs_takes_the_latest_maxed_reset ... ok test usage::fetch::tests::expire_profile_ttl_clears_the_durable_stamp_too ... ok test usage::fetch::tests::force_bypasses_a_fresh_durable_stamp_and_restamps_it ... ok test usage::fetch::tests::identity_anchor_backfills_only_when_missing ... ok test usage::fetch::tests::window_avg_pace_caps_an_over_pace_window ... ok test usage::fetch::tests::window_avg_pace_leaves_an_under_pace_window_alone ... ok test usage::fetch::tests::window_duration_parses_provider_labels ... ok test usage::fetch::tests::identity_anchor_refuses_blank_or_absent_uuid ... ok test usage::fetch::tests::window_duration_survives_a_hostile_provider_label ... ok test usage::fetch::tests::windows_fall_back_to_legacy_fields_when_limits_absent ... ok test usage::fetch::tests::windows_maxed_true_for_a_live_capped_window ... ok test usage::fetch::tests::windows_maxed_false_when_below_cap_or_lapsed_or_absent ... ok test usage::fetch::tests::take_profile_fetch_honors_ttl_force_and_expiry ... ok test usage::fetch::tests::the_durable_stamp_is_read_at_most_once_per_process ... ok test usage::codex_reset::tests::limit_reset_list_and_consume_send_codexs_request ... ok 2026-10-05T00:12:52+00:00 clauth: feed-leg: backfilled the rate-limit tier into the stored chain test usage::codex_reset::tests::limit_reset_statuses_map_to_their_errors_without_a_retry ... ok test usage::fetch::tests::the_poll_backfills_the_tier_through_the_profile_leg ... ok test usage::fetch::tests::the_ttl_clock_is_reachable_under_the_config_guard ... ok test usage::codex::tests::a_401_from_the_usage_endpoint_is_reported_as_its_status ... ok test usage::codex::tests::the_usage_fetch_sends_the_bearer_and_the_account_header_only_when_given ... ok test usage::scheduler::tests::a_401_under_a_live_session_does_not_rotate_on_macos ... ok test usage::scheduler::tests::a_batch_of_session_decisions_takes_the_state_flock_once ... ok test usage::scheduler::tests::a_cached_body_appends_no_sample ... ok test usage::scheduler::tests::a_cached_third_party_active_with_a_spent_window_stays_put ... ok test usage::scheduler::tests::a_cold_store_does_not_re_append_the_last_recorded_sample ... ok test usage::scheduler::tests::a_decision_is_rewritten_only_when_the_row_disagrees_with_it ... ok 2026-10-05T00:13:09+00:00 clauth: 'rot-carry-disarmed' re-authenticated: auth_broken cleared test usage::scheduler::tests::a_disarmed_refusal_keeps_the_carry_outcome_on_the_unblocked_path ... ok test usage::scheduler::tests::a_disk_pair_that_moved_past_the_spent_token_is_returned_not_quarantined ... ok test usage::scheduler::tests::a_failed_third_party_fetch_appends_no_wallet_readings ... ok 2026-10-05T00:13:22+00:00 clauth: 'rot-carry-non-active' re-authenticated: auth_broken cleared test usage::scheduler::tests::a_flagged_non_active_profile_carries_a_moved_disk_pair_without_a_refresh ... ok test usage::scheduler::tests::a_flagged_non_active_profile_with_an_unchanged_pair_still_bails_without_a_refresh ... ok test usage::scheduler::tests::a_flagged_profile_skips_the_dead_refresh_but_keeps_the_401_probe ... ok test usage::scheduler::tests::a_flagged_profile_still_gets_its_live_usage_poll_on_the_proactive_arm ... ok test usage::scheduler::tests::a_fresh_exhausted_third_party_active_can_auto_switch ... ok test usage::scheduler::tests::a_fresh_oauth_reading_outranks_a_stuck_third_party_one ... ok test usage::scheduler::tests::a_fresh_wire_reset_drops_the_prev_wire_sourced_window ... ok 2026-10-05T00:14:08+00:00 clauth: adopted the live session's rotated login for 'adopt-presspend' (the running claude refreshed first, so no token spent) test usage::scheduler::tests::a_fresher_live_mirror_is_adopted_before_any_refresh_is_spent ... ok test usage::scheduler::tests::a_headroom_window_is_not_reading_dead ... ok test usage::scheduler::tests::a_healthy_session_gets_no_decision_and_its_row_is_not_touched ... ok test usage::scheduler::tests::a_hybrid_members_oauth_reading_wins_over_its_third_party_one ... ok test usage::scheduler::tests::a_none_derivation_removes_the_mirrored_window ... ok test usage::scheduler::tests::a_hybrids_cached_oauth_reading_outranks_a_fresh_third_party_one ... ok test usage::scheduler::tests::a_lagging_fresh_body_keeps_the_kick_window_and_its_stamp ... ok test usage::scheduler::tests::a_lapsed_window_is_not_reading_dead ... ok test usage::scheduler::tests::a_live_fetch_appends_the_sample_and_its_bridge ... ok 2026-10-05T00:14:21+00:00 clauth: 'rot-carry-blocked' re-authenticated: auth_broken cleared test usage::scheduler::tests::a_live_session_blocking_rotation_still_carries_a_moved_disk_pair ... ok test usage::scheduler::tests::a_live_session_blocking_rotation_with_an_unchanged_pair_still_bails ... ok test usage::scheduler::tests::a_member_with_no_reading_and_a_spent_window_stays_put ... ok test usage::scheduler::tests::a_missing_or_tokenless_profile_never_reads_as_a_benign_double_spend ... ok test usage::scheduler::tests::a_panicking_oauth_worker_records_failed_status ... ok test usage::scheduler::tests::a_panicking_oauth_worker_strands_neither_slot ... ok test usage::scheduler::tests::a_panicking_third_party_worker_records_failed_status ... ok test usage::scheduler::tests::a_reading_dead_member_releases_a_pinned_session ... ok test usage::scheduler::tests::a_row_whose_session_is_gone_gets_no_decision ... ok test usage::scheduler::tests::a_session_decision_lands_with_no_global_active_profile ... ok test usage::scheduler::tests::a_session_on_a_disabled_member_is_moved_off_it ... ok test usage::scheduler::tests::active_profile_cap_bites_at_streak_4_and_releases_past_6 ... ok test usage::scheduler::tests::active_profile_cap_leaves_shallow_streaks_alone ... ok test usage::scheduler::tests::active_profile_cap_still_honors_a_real_server_hint ... ok test usage::scheduler::tests::active_profile_rate_limit_ladder_caps_at_one_extra_interval ... ok test usage::scheduler::tests::a_session_on_a_distrusted_member_gets_no_decision_unless_that_member_is_broken ... ok test usage::scheduler::tests::a_shallow_streak_third_party_active_with_a_spent_window_stays_put ... ok test usage::scheduler::tests::an_oauth_fetch_mark_never_retires_a_concurrent_rotation ... ok test usage::scheduler::tests::a_stale_entry_list_cannot_pair_new_config_with_an_old_mark ... ok test usage::scheduler::tests::a_tokenless_profile_bails_before_the_carry_runs ... ok test usage::scheduler::tests::anchor_post_reset_oauth_schedules_only_eligible_profiles ... ok test usage::scheduler::tests::a_windowless_member_with_a_shallow_streak_is_not_reading_dead ... ok test usage::scheduler::tests::a_windowless_third_party_member_with_shallow_streak_is_not_reading_dead ... ok test usage::scheduler::tests::a_wrap_off_decision_leaves_the_sessions_intended_member_untouched ... ok 2026-10-05T00:15:02+00:00 clauth: adopted the live session's rotated login for 'adopt-retry' (the running claude refreshed first, so no token spent) test usage::scheduler::tests::an_adopt_after_a_rejected_refresh_keeps_the_profile_out_of_quarantine ... ok test usage::scheduler::tests::apply_outcome_records_the_ladder_it_baked_for_the_clamp_to_compose_on ... ok test usage::scheduler::tests::apply_outcome_threads_is_active_into_the_deferral ... ok test usage::scheduler::tests::a_session_that_has_never_swapped_decides_off_its_start_profile ... ok test usage::scheduler::tests::a_session_walks_past_a_member_the_executor_would_refuse ... ok test usage::scheduler::tests::an_isolated_session_gets_no_decision ... ok test usage::scheduler::tests::an_opted_out_session_gets_no_decision_so_this_leg_is_inert_until_the_flag_lands ... ok test usage::scheduler::tests::an_unchanged_live_sample_appends_nothing ... ok 2026-10-05T00:15:14+00:00 clauth: codex auto-switched to 'cx2' — live at the next codex session 2026-10-05T00:15:14+00:00 clauth: every codex account is spent — codex active slot cleared test usage::scheduler::tests::apply_codex_switch_moves_the_on_disk_marker ... ok 2026-10-05T00:15:14+00:00 clauth: codex auto-switched to 'cx2' — live at the next codex session test usage::scheduler::tests::apply_codex_switch_moves_the_operator_link_with_the_marker ... ok test usage::scheduler::tests::auto_start_re_tests_a_live_window_block_but_leaves_a_healthy_one ... ok 2026-10-05T00:15:14+00:00 clauth: codex auto-switched to 'cx2' — live at the next codex session test usage::scheduler::tests::apply_codex_switch_walks_at_the_codex_weekly_line ... ok test usage::scheduler::tests::apply_outcome_marks_the_weekly_reset_re_test ... ok test usage::scheduler::tests::auto_start_kick_does_not_rotate_under_a_live_session_on_macos ... ok test usage::scheduler::tests::auto_start_queue_election_is_a_no_op_when_the_toggle_is_off ... ok test usage::scheduler::tests::cached_fallback_does_not_clobber_store ... ok 2026-10-05T00:15:26+00:00 a: 5h auto-start window opened (queue 1/2, next in 2h 28m) test usage::scheduler::tests::auto_start_queue_election_is_wired_into_tick ... ok test usage::scheduler::tests::auto_start_queue_election_picks_one_member_and_holds_the_rest ... ok test usage::scheduler::tests::auto_start_queue_run_fetch_anchors_and_logs_only_a_lapsed_window_open has been running for over 60 seconds test usage::scheduler::tests::auto_start_queue_run_fetch_keys_a_failed_kick_to_the_elected_member has been running for over 60 seconds test usage::scheduler::tests::auto_start_queue_run_fetch_records_the_failure_when_refused_before_the_kick has been running for over 60 seconds test usage::scheduler::tests::bootstrap_legs_keep_separate_stamps_for_a_hybrid_profile has been running for over 60 seconds test usage::scheduler::tests::bootstrap_third_party_seeds_any_cache has been running for over 60 seconds test usage::scheduler::tests::cached_bail_overlays_a_fresh_plan_onto_store_and_disk has been running for over 60 seconds test usage::scheduler::tests::auto_start_queue_run_fetch_anchors_and_logs_only_a_lapsed_window_open ... ok 2026-10-05T00:16:26+00:00 elected: 5h window kick failed: HTTP 403 test usage::scheduler::tests::carrying_an_external_rotation_clears_a_stale_quarantine has been running for over 60 seconds test usage::scheduler::tests::chain_session_hosts_reads_rows_the_decision_leg_would_move has been running for over 60 seconds test usage::scheduler::tests::auto_start_queue_run_fetch_keys_a_failed_kick_to_the_elected_member ... ok test usage::scheduler::tests::auto_start_queue_run_fetch_records_the_failure_when_refused_before_the_kick ... ok test usage::scheduler::tests::bootstrap_legs_keep_separate_stamps_for_a_hybrid_profile ... ok test usage::scheduler::tests::bootstrap_third_party_seeds_any_cache ... ok test usage::scheduler::tests::cached_bail_overlays_a_fresh_plan_onto_store_and_disk ... ok 2026-10-05T00:16:48+00:00 clauth: 'double-spend-quarantined' re-authenticated: auth_broken cleared test usage::scheduler::tests::carrying_an_external_rotation_clears_a_stale_quarantine ... ok test usage::scheduler::tests::chain_session_hosts_reads_rows_the_decision_leg_would_move ... ok test usage::scheduler::tests::claude_rolling_tick_broken_verdict_takes_the_long_leash ... ok test usage::scheduler::tests::claude_rolling_tick_clamps_a_short_hold_to_its_own_leash ... ok test usage::scheduler::tests::claude_rolling_tick_drops_retry_state_for_departed_profiles ... ok test usage::scheduler::tests::claude_rolling_tick_ignores_fresh_and_non_rolling_profiles ... ok test usage::scheduler::tests::claude_rolling_tick_quarantined_chain_takes_the_broken_leash ... ok test usage::scheduler::tests::clear_activity_leaves_both_fetch_legs_to_their_owners ... ok test usage::scheduler::tests::claude_rolling_tick_reaches_the_gate_for_a_misfilled_sidecar ... ok test usage::scheduler::tests::claude_rolling_tick_ready_but_still_due_paces_like_transient ... ok test usage::scheduler::tests::collect_third_party_entries_excludes_disabled_profiles_includes_enabled_siblings ... ok test usage::scheduler::tests::collect_third_party_entries_keeps_a_keyless_alibaba_profile ... ok test usage::scheduler::tests::collect_third_party_entries_skips_an_empty_key_profile ... ok test usage::scheduler::tests::collect_tokens_excludes_disabled_profiles_includes_enabled_siblings ... ok test usage::scheduler::tests::consecutive_rate_limits_back_off_exponentially ... ok 2026-10-05T00:16:48+00:00 clauth: re-stamp for 'cl-fix' failed (will retry): 'cl-fix' usage chain has no recorded grant beyond the setup-token scopes, so a rolling bearer cannot be told from a mint · run `clauth login cl-fix` to record the chain's real grant 2026-10-05T00:16:48+00:00 clauth: 'cl-fix' credentials changed under a re-stamp hold — re-checking now 2026-10-05T00:16:48+00:00 clauth: re-stamp for 'cl-fix' failed (will retry): 'cl-fix' usage chain has no recorded grant beyond the setup-token scopes, so a rolling bearer cannot be told from a mint · run `clauth login cl-fix` to record the chain's real grant test usage::scheduler::tests::claude_rolling_tick_relogin_hold_releases_on_a_credential_write ... ok test usage::scheduler::tests::dead_refresh_token_is_terminal ... ok test usage::scheduler::tests::deadline_spread_is_bounded_per_profile_and_per_cycle ... ok test usage::scheduler::tests::decision_fresh_any_reads_both_the_oauth_and_third_party_stores ... ok 2026-10-05T00:16:48+00:00 clauth: re-stamp for 'cl-grant' failed (will retry): 'cl-grant' usage chain has no recorded grant beyond the setup-token scopes, so a rolling bearer cannot be told from a mint · run `clauth login cl-grant` to record the chain's real grant 2026-10-05T00:16:48+00:00 clauth: re-stamp for 'cl-grant' failed (will retry): could not reach anthropic: retry in a moment 2026-10-05T00:16:48+00:00 clauth: re-stamp for 'cl-grant' failed (will retry): could not reach anthropic: retry in a moment test usage::scheduler::tests::claude_rolling_tick_relogin_transients_take_the_long_leash ... ok test usage::scheduler::tests::end_rotation_leaves_a_later_oauth_refetch_standing ... ok test usage::scheduler::tests::end_rotation_leaves_a_switch_gate_standing ... ok test usage::scheduler::tests::failed_unmask_bail_keeps_the_429_context ... ok test usage::scheduler::tests::failed_unmask_outcome_defers_and_streaks_like_a_429 ... ok test usage::scheduler::tests::claude_rolling_tick_restamps_a_dying_rolling_sidecar ... ok test usage::scheduler::tests::claude_rolling_tick_scan_gap_holds_a_second_tick_off ... ok test usage::scheduler::tests::claude_rolling_tick_skips_a_disabled_profile ... ok test usage::scheduler::tests::claude_rolling_tick_survives_a_backwards_clock_step ... ok 2026-10-05T00:16:48+00:00 clauth: re-stamp for 'cl-flaky' failed (will retry): connection reset: check your connection and retry 2026-10-05T00:16:48+00:00 clauth: re-stamp for 'cl-flaky' failed (will retry): connection reset: check your connection and retry test usage::scheduler::tests::claude_rolling_tick_transient_failure_widens_the_retry ... ok test usage::scheduler::tests::cold_bail_records_a_plan_only_canceled_entry ... ok test usage::scheduler::tests::collect_oauth_seed_names_includes_disabled_and_bootstrap_seeds_its_cache ... ok test usage::scheduler::tests::current_key_rejected_names_drops_a_rekeyed_profile ... ok test usage::scheduler::tests::drain_arms_the_weekly_reset_mark_only_for_opted_in_profiles ... ok test usage::scheduler::tests::fetch_third_party_due_a_live_body_keeps_the_bare_cadence ... ok test usage::scheduler::tests::fetch_third_party_due_appends_the_wallet_series_beside_the_stats_cache ... ok test usage::scheduler::tests::fetch_third_party_due_bumps_the_streak_on_a_provider_429 ... ok test usage::scheduler::tests::fetch_third_party_due_clears_the_broken_mark_on_a_live_body ... ok test usage::scheduler::tests::fetch_third_party_due_clears_the_broken_mark_on_a_non_dead_key_outcome ... ok test usage::scheduler::tests::fetch_third_party_due_does_not_insert_cached ... ok test usage::scheduler::tests::fetch_third_party_due_does_not_insert_generic_failed_without_cache ... ok test usage::scheduler::tests::fetch_third_party_due_does_not_insert_known_failed ... ok test usage::scheduler::tests::fetch_third_party_due_does_not_insert_rate_limited ... ok test usage::scheduler::tests::fetch_third_party_due_generic_429_hint_stays_unfloored ... ok test usage::scheduler::tests::fetch_third_party_due_generic_no_data_defers_to_floor ... ok test usage::scheduler::tests::fetch_third_party_due_generic_no_hint_429_uses_the_floor ... ok test usage::scheduler::tests::filter_suppressed_drops_only_named_entries ... ok test usage::scheduler::tests::filter_suppressed_re_admits_a_generic_entry_on_a_rotated_key ... ok test usage::scheduler::tests::filter_suppressed_re_admits_an_entry_whose_credential_changed ... ok test usage::scheduler::tests::fresh_body_lagging_a_kick_keeps_the_live_window ... ok test usage::scheduler::tests::fetch_third_party_due_inserts_generic_auth_expired ... ok test usage::scheduler::tests::generic_no_hint_429_lands_the_flat_floor_and_a_hint_stays_verbatim ... ok test usage::scheduler::tests::hint_present_429s_still_ride_the_streak_ladder ... ok test usage::scheduler::tests::kick_block_backoff_decays_toward_the_advertised_ceiling ... ok test usage::scheduler::tests::fetch_third_party_due_inserts_known_auth_expired ... ok test usage::scheduler::tests::kick_suppressed_during_rate_limit_streak ... ok test usage::scheduler::tests::mark_window_open_synthesizes_only_when_not_live ... ok test usage::scheduler::tests::merge_forced_skips_switching ... ok test usage::scheduler::tests::fetch_third_party_due_leaves_the_streak_untouched_on_a_transient_blip ... ok test usage::scheduler::tests::midstorm_kick_keeps_the_block_ladder_for_a_hosting_member ... ok test usage::scheduler::tests::fetch_third_party_due_leaves_the_streak_untouched_on_auth_expired ... ok test usage::scheduler::tests::oauth_completions_apply_in_completion_order_not_list_order ... ok test usage::scheduler::tests::only_a_fresh_read_drives_a_switch_decision ... ok test usage::scheduler::tests::only_a_switch_grade_kick_block_rotates_the_chain ... ok test usage::scheduler::tests::orphaned_forced_cleared_but_scheduled_and_refreshing_kept ... ok test usage::scheduler::tests::partition_due_clamp_leaves_single_axis_profiles_untouched ... ok test usage::scheduler::tests::partition_due_clamp_leaves_third_party_untouched ... ok test usage::scheduler::tests::partition_due_clamps_composed_deferral_where_both_axes_meet ... ok test usage::scheduler::tests::partition_due_clamps_the_active_capped_bake_exactly ... ok test usage::scheduler::tests::partition_due_defers_flagged_profiles_until_the_flag_lifts ... ok test usage::scheduler::tests::partition_due_excludes_refreshing ... ok test usage::scheduler::tests::partition_due_excludes_switching ... ok test usage::scheduler::tests::partition_due_keeps_the_refresh_fail_ladder_when_the_stamp_baked_nothing ... ok test usage::scheduler::tests::partition_due_ladders_a_profile_whose_refresh_keeps_failing ... ok test usage::scheduler::tests::partition_due_uses_fixed_interval ... ok test usage::scheduler::tests::fetch_third_party_due_marks_a_dead_key_broken_not_a_console_lapse ... ok test usage::scheduler::tests::pre_rotation_401_rotates_without_an_unmask_hint ... ok test usage::scheduler::tests::pre_rotation_429_on_a_valid_token_bails_rate_limited_with_plan ... ok test usage::scheduler::tests::pre_rotation_429_on_an_expired_token_rotates_and_drops_the_plan ... ok test usage::scheduler::tests::pre_rotation_other_errors_bail_to_cache ... ok test usage::scheduler::tests::pre_rotation_serves_a_live_body ... ok test usage::scheduler::tests::preemptive_rotation_is_on_by_default_and_the_toggle_still_disables_it ... ok test usage::scheduler::tests::proactive_lead_scales_with_the_poll_interval_with_a_floor ... ok test usage::scheduler::tests::proactive_rotation_decides_on_the_toggle_and_the_clock_alone ... ok test usage::scheduler::tests::proactive_rotation_fires_only_inside_the_lead_window ... ok test usage::scheduler::tests::proactive_rotation_never_fires_on_unknown_expiry ... ok test usage::scheduler::tests::fetch_third_party_due_no_data_at_a_wide_interval_adds_nothing ... ok test usage::scheduler::tests::rate_limited_expired_token_rotates_so_a_dead_login_surfaces ... ok test usage::scheduler::tests::rate_limited_unknown_expiry_does_not_rotate ... ok test usage::scheduler::tests::rate_limited_valid_token_does_not_rotate ... ok test usage::scheduler::tests::refresh_all_panic_arm_frees_the_account_slot_alone ... ok test usage::scheduler::tests::retry_after_defers_next_fetch_slot ... ok test usage::scheduler::tests::rolling_token_forces_the_preemptive_leg ... ok test usage::scheduler::tests::fetch_third_party_due_resets_the_streak_on_a_live_body ... ok test usage::scheduler::tests::fetch_third_party_due_typed_no_data_keeps_cadence ... ok test usage::scheduler::tests::scan_auto_switch_distrusts_a_deep_slot_stuck_rate_limited_active ... ok test usage::scheduler::tests::fetch_third_party_due_typed_no_hint_429_keeps_the_flat_rung ... ok test usage::scheduler::tests::fresh_body_stamps_fetched_at_and_reads_not_stale ... ok 2026-10-05T00:16:53+00:00 kitty: 5h auto-start kick rate-limited (rejected: true), api ceiling in 10m; backing off 2026-10-05T00:16:53+00:00 kitty: 5h auto-start unblocked, kick accepted test usage::scheduler::tests::kick_block_persists_and_clears_by_outcome ... ok test usage::scheduler::tests::midstorm_kick_fires_for_a_member_hosting_a_live_chain_session ... ok test usage::scheduler::tests::midstorm_kick_stays_gated_for_a_member_hosting_no_live_chain_session ... ok test usage::scheduler::tests::plan_ride_preserves_fetched_at_and_stays_stale_despite_advanced_mtime ... ok test usage::scheduler::tests::queued_switch_away_is_stale_detects_a_repair ... ok test usage::scheduler::tests::run_fetch_consumes_the_weekly_reset_mark_only_on_a_fired_kick ... ok 2026-10-05T00:17:16+00:00 a: 5h auto-start kick rate-limited (rejected: true), api ceiling in 1h 41m; backing off test usage::scheduler::tests::run_fetch_records_a_window_exhaustion_429_as_a_switch_grade_block ... ok test usage::scheduler::tests::scan_auto_switch_does_not_label_a_key_rejected_auth_broken_active ... ok test usage::scheduler::tests::scan_auto_switch_prefers_a_fresh_member_over_an_earlier_stale_one ... ok test usage::scheduler::tests::scan_auto_switch_does_not_label_a_reading_dead_key_rejected_active ... ok test usage::scheduler::tests::scan_auto_switch_does_not_label_a_two_claimant_day_collision_beside_key_rejection ... ok test usage::scheduler::tests::scan_auto_switch_walks_off_a_broken_active_without_a_fresh_read ... ok test usage::scheduler::tests::scan_auto_switch_does_not_label_an_independent_healthy_home_return_beside_key_rejection ... ok test usage::scheduler::tests::scan_recovery_ignores_a_stale_or_synthetic_read ... ok test usage::scheduler::tests::scan_recovery_is_a_no_op_while_a_switch_is_pending ... ok test usage::scheduler::tests::scan_recovery_is_a_no_op_with_an_active_profile_set ... ok test usage::scheduler::tests::scan_recovery_never_relinks_to_a_chain_member_with_no_profile ... ok test usage::scheduler::tests::scan_recovery_never_relinks_to_a_canceled_member ... ok test usage::scheduler::tests::scan_recovery_never_relinks_to_a_disabled_member ... ok test usage::scheduler::tests::scan_auto_switch_does_not_label_an_independently_exhausted_key_rejected_active ... ok test usage::scheduler::tests::scan_recovery_never_relinks_to_an_auth_broken_member ... ok test usage::scheduler::tests::scan_recovery_never_relinks_to_a_switch_grade_kick_rejected_member ... ok test usage::scheduler::tests::selected_next_refresh_picks_the_provider_leg_for_a_hybrid ... ok test usage::scheduler::tests::scan_recovery_queues_a_recovered_chain_member ... ok test usage::scheduler::tests::should_anchor_fetch_fires_once_after_reset_plus_grace ... ok test usage::scheduler::tests::spent_skip_set_selects_only_unforced_spent_accounts ... ok test usage::scheduler::tests::scan_auto_switch_keeps_a_console_lapse_active ... ok test usage::scheduler::tests::standdown_hydrate_follows_the_daemon_cache_forward ... ok test usage::scheduler::tests::scan_auto_switch_leaves_a_reading_dead_global_active ... ok test usage::scheduler::tests::scan_auto_switch_leaves_a_reading_dead_third_party_global_active ... ok test usage::scheduler::tests::streak_axes_move_independently_and_a_live_body_clears_both ... ok test usage::scheduler::tests::scan_auto_switch_never_picks_a_key_rejected_member_as_target ... ok test usage::scheduler::tests::scan_auto_switch_records_the_cause_when_key_rejection_changes_the_target ... ok test usage::scheduler::tests::scan_auto_switch_records_the_cause_when_the_active_day_claim_reclaims_home ... ok test usage::scheduler::tests::spawn_refresher_prunes_stale_history_before_returning ... ok test usage::scheduler::tests::spawn_refresher_seeds_kick_blocks_before_returning ... ok test usage::scheduler::tests::the_rotation_lead_clears_claude_codes_own_five_minute_refresh_threshold ... ok test usage::scheduler::tests::the_rotation_owner_hands_its_marker_to_the_oauth_leg ... ok test usage::scheduler::tests::third_party_flat_rung_stays_under_the_floor_at_a_sub_cadence_interval ... ok test usage::scheduler::tests::scan_auto_switch_leaves_a_key_rejected_third_party_active ... ok test usage::scheduler::tests::standdown_hydrate_seeds_the_store_from_the_daemon_cache ... ok test usage::scheduler::tests::standdown_sweeps_bootstrap_queued_marks ... ok test usage::scheduler::tests::transient_errors_preserve_rate_limit_streak ... ok test usage::scheduler::tests::transient_refresh_failure_is_not_terminal ... ok test usage::scheduler::tests::standdown_tick_drains_forced_and_publishes_countdowns ... ok test usage::scheduler::tests::the_chain_cursor_indexes_the_config_chain_not_the_filtered_snapshot ... ok test usage::scheduler::tests::the_identity_memo_never_caches_a_failed_probe ... ok test usage::scheduler::tests::the_identity_memo_outlives_the_call_that_filled_it ... ok test usage::scheduler::tests::the_identity_memo_resolves_each_token_once ... ok test usage::scheduler::tests::the_retention_trim_reruns_on_its_cadence_not_only_at_startup ... ok test usage::scheduler::tests::weekly_reset_pending_reads_the_rollover_the_hard_cap_and_the_live_window ... ok test usage::scheduler::tests::window_lapsed_only_fires_on_a_fetched_expired_window ... ok test watchdog::tests::a_dir_watch_survives_the_rename_that_publishes_a_file ... ok 2026-10-05T00:17:39+00:00 clauth: fs watcher cannot watch /nix/var/nix/builds/nix-12670-2432953799/.tmpWlkeDY/does-not-exist: No path was found. about ["/nix/var/nix/builds/nix-12670-2432953799/.tmpWlkeDY/does-not-exist"] 2026-10-05T00:17:39+00:00 clauth: fs watcher cannot watch /nix/var/nix/builds/nix-12670-2432953799/.tmpWlkeDY/does-not-exist: No path was found. about ["/nix/var/nix/builds/nix-12670-2432953799/.tmpWlkeDY/does-not-exist"] 2026-10-05T00:17:39+00:00 clauth: fs watcher armed 1 of 2 directories; the rest reconcile every 200ms instead of on their events test watchdog::tests::a_partially_armed_watcher_shortens_the_fallback ... ok test watchdog::tests::a_publish_inside_the_coalescing_window_still_wakes_the_watchdog ... ok test watchdog::tests::a_quiet_watcher_is_never_accused ... ok test watchdog::tests::a_rescan_wakes_the_loop_but_never_counts_as_a_match ... ok test watchdog::tests::a_store_publish_reconciles_with_every_ticker_disabled ... ok test watchdog::tests::a_stream_of_unaccountable_events_is_reported_even_while_another_spec_matches ... ok test watchdog::tests::a_sustained_event_stream_wakes_once_per_window_not_once_per_burst ... ok test watchdog::tests::a_wake_inside_the_cooldown_is_deferred_not_dropped ... ok test watchdog::tests::a_watch_armed_through_a_symlink_takes_events_spelled_by_realpath ... ok test watchdog::tests::a_watcher_that_matches_nothing_reports_once_and_not_per_interval ... ok test watchdog::tests::an_event_about_the_watched_directory_itself_is_never_an_orphan ... ok test watchdog::tests::one_matched_event_clears_the_suspicion_for_good ... ok test watchdog::tests::the_callback_counts_events_it_was_handed_apart_from_the_ones_it_took ... ok test watchdog::tests::the_cooldown_is_measured_from_the_end_of_the_reconcile ... ok test watchdog::tests::the_filter_takes_named_children_and_drops_staging_siblings ... ok test watchdog::tests::the_loop_raises_the_nothing_matched_line_once ... ok test watchdog::tests::the_loop_raises_the_unaccountable_line_once ... ok test watchdog::tests::the_loop_says_nothing_about_a_watcher_that_matched ... ok 2026-10-05T00:17:43+00:00 clauth: fs watcher cannot watch /nix/var/nix/builds/nix-12670-2432953799/.tmpfjTHOB/does-not-exist: No path was found. about ["/nix/var/nix/builds/nix-12670-2432953799/.tmpfjTHOB/does-not-exist"] 2026-10-05T00:17:43+00:00 clauth: fs watcher cannot watch /nix/var/nix/builds/nix-12670-2432953799/.tmpfjTHOB/does-not-exist: No path was found. about ["/nix/var/nix/builds/nix-12670-2432953799/.tmpfjTHOB/does-not-exist"] test watchdog::tests::the_poll_fallback_reconciles_when_no_directory_can_be_armed ... ok test watchdog::tests::the_watched_list_names_both_spellings_when_they_differ ... ok test watchdog::tests::watch_specs_cover_each_reconciled_file_through_its_directory ... ok test which::tests::a_blank_access_token_never_matches_a_sidecar ... ok test usage::scheduler::tests::tick_fetches_the_third_party_leg_under_its_own_lease ... ok test usage::scheduler::tests::tick_prunes_histories_and_throttles_a_second_tick_inside_the_cadence_window ... ok test which::tests::a_rotating_login_is_never_attributed_to_a_sidecar ... ok test which::tests::attributes_api_key_active_when_credentials_file_absent ... ok test which::tests::attributes_credential_less_active_without_loaded_refresh_token ... ok test which::tests::attributes_unmatched_login_to_credential_less_active ... ok 2026-10-05T00:18:02+00:00 clauth: another instance holds the usage-fetch lease: standing down (rendering from the shared cache) test usage::scheduler::tests::tick_stands_down_when_another_instance_holds_the_fetch_lease ... ok test which::tests::codex_home_parse_accepts_the_clauth_shape_only ... ok test usage::scheduler::tests::try_seed_cache_dates_the_seed_off_the_bodies_own_stamp ... ok test usage::scheduler::tests::try_seed_cache_seeds_any_cache_and_resumes_timer ... ok test usage::scheduler::tests::two_opted_in_sessions_on_different_members_get_different_intended_members ... ok test which::tests::disabled_profile_is_never_resolved_as_credential_less_active ... ok test which::tests::disabled_profile_is_never_resolved_even_on_a_stale_token_match ... ok test which::tests::disabled_profile_is_never_resolved_on_a_session_token_match ... ok test which::tests::endpoint_profiles_without_oauth_are_skipped ... ok test usage::scheduler::tests::wallet_series_keeps_each_wallets_readings_separate ... ok test usage::scheduler::tests::wallet_series_prunes_past_retention_but_keeps_the_bridge ... ok test usage::scheduler::tests::wallet_series_records_first_reading_then_bridge_on_change ... ok test which::tests::a_claude_runtime_claim_outranks_an_inherited_codex_home ... ok test which::tests::a_default_config_dir_session_stays_custom_on_macos ... ok test which::tests::codex_home_attribution_is_roster_gated ... ok test which::tests::codex_json_view_keeps_the_key_set_and_reads_the_codex_slot ... ok test which::tests::json_tier_is_null_when_nothing_resolved ... ok test which::tests::codex_json_view_tracks_the_claude_key_set ... ok test which::tests::default_dir_verdicts_follow_the_macos_gate_and_the_canonical_compare ... ok test which::tests::json_view_doc_names_the_managed_half_and_points_at_the_routing_answer ... ok test which::tests::matches_profile_by_refresh_token ... ok test which::tests::no_attribution_when_active_profile_has_creds ... ok test which::tests::no_attribution_when_no_active_profile ... ok test which::tests::json_base_url_carries_a_third_partys_endpoint ... ok test which::tests::no_credential_less_attribution_inside_session ... ok test which::tests::resolves_started_profile_in_runtime_session ... ok test which::tests::returns_none_when_no_profile_holds_token ... ok test which::tests::session_profile_extracted_from_runtime_path ... ok test which::tests::json_base_url_is_null_for_an_anthropic_account ... ok test which::tests::session_profile_none_for_non_runtime_path ... ok test which::tests::session_token_install_is_attributed_to_its_profile ... ok test which::tests::session_token_match_still_works_inside_a_session ... ok test which::tests::session_token_match_wins_over_credential_less_active ... ok test which::tests::session_token_ties_break_on_the_active_profile ... ok test which::tests::json_publishes_both_an_endpoint_and_a_tier_for_a_hybrid_profile ... ok test which::tests::source_maps_to_wire_strings ... ok test which::tests::started_profile_resolves_with_no_loaded_creds ... ok test which::tests::ties_break_on_active_profile ... ok test which::tests::token_match_still_works_inside_session ... ok test which::tests::token_match_wins_over_credential_less_active ... ok test which::tests::token_match_wins_over_started_profile ... ok test which::tests::unknown_started_profile_is_not_resolved ... ok test which::tests::json_tier_agrees_with_the_status_json_surface ... ok test which::tests::json_tier_falls_back_to_the_token_claim_with_no_cache ... ok test which::tests::json_tier_is_null_for_a_recognised_third_party_holding_oauth_creds ... ok test which::tests::json_tier_is_null_when_no_tier_is_known ... ok test which::tests::json_tier_reports_a_canceled_accounts_real_tier_not_its_login_claim ... ok test which::tests::json_tier_reports_the_cached_plan_over_the_token_claim ... ok test which::tests::resolve_global_ignores_claude_config_dir_in_the_readers_env ... ok failures: ---- daemon::gateway::tests::a_first_step_spawns_one_gateway_with_every_store_under_clauth_and_reads_its_version stdout ---- thread 'daemon::gateway::tests::a_first_step_spawns_one_gateway_with_every_store_under_clauth_and_reads_its_version' (73516423) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:751:5: the start time rides beside the pid ---- daemon::gateway::tests::a_hold_naming_another_instance_is_removed_and_ignored stdout ---- thread 'daemon::gateway::tests::a_hold_naming_another_instance_is_removed_and_ignored' (73517327) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:2896:9: another pid: the hold is removed ---- daemon::gateway::tests::a_hold_naming_this_daemon_holds_the_gateway_off stdout ---- thread 'daemon::gateway::tests::a_hold_naming_this_daemon_holds_the_gateway_off' (73517354) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:2816:5: assertion `left == right` failed left: GatewaySlot { state: Starting, config: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpCNYSB8/etc/shunt.toml"), binary: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpCNYSB8/stub/shunt"), port: Some(56579), pid: Some(33551), version: None, answerer: None, floor: "0.48.0", restarts: 0, last_exit: None, reason: None, since: Some("2026-09-21T14:13:20+00:00") } right: GatewaySlot { state: Held, config: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpCNYSB8/etc/shunt.toml"), binary: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpCNYSB8/stub/shunt"), port: None, pid: None, version: None, answerer: None, floor: "0.48.0", restarts: 0, last_exit: None, reason: None, since: Some("2026-09-21T14:13:20+00:00") } ---- daemon::gateway::tests::a_hold_stops_the_running_gateway stdout ---- thread 'daemon::gateway::tests::a_hold_stops_the_running_gateway' (73517490) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:2844:5: assertion `left == right` failed left: GatewaySlot { state: Healthy, config: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpjIJu5h/etc/shunt.toml"), binary: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpjIJu5h/stub/shunt"), port: Some(56581), pid: Some(33622), version: Some("0.49.1"), answerer: None, floor: "0.48.0", restarts: 0, last_exit: None, reason: None, since: Some("2026-09-21T14:13:21+00:00") } right: GatewaySlot { state: Stopping, config: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpjIJu5h/etc/shunt.toml"), binary: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpjIJu5h/stub/shunt"), port: Some(56581), pid: Some(33622), version: Some("0.49.1"), answerer: None, floor: "0.48.0", restarts: 0, last_exit: None, reason: None, since: Some("2026-09-21T14:13:22+00:00") } ---- daemon::gateway::tests::a_stop_left_running_by_an_exiting_daemon_is_finished_at_its_recorded_deadline stdout ---- thread 'daemon::gateway::tests::a_stop_left_running_by_an_exiting_daemon_is_finished_at_its_recorded_deadline' (73518924) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:1957:5: assertion `left == right` failed left: Foreign right: Stopping ---- daemon::gateway::tests::a_written_hold_names_the_pid_the_sidecar_stamps stdout ---- thread 'daemon::gateway::tests::a_written_hold_names_the_pid_the_sidecar_stamps' (73519261) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:3099:34: write the hold: cannot read the start time of the daemon (pid 35162) ---- daemon::gateway::tests::a_written_hold_reads_back_as_this_daemon_and_stays stdout ---- thread 'daemon::gateway::tests::a_written_hold_reads_back_as_this_daemon_and_stays' (73519362) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:3048:34: write the hold: cannot read the start time of the daemon (pid 28021) ---- daemon::gateway::tests::an_orphan_matching_its_recorded_start_is_stopped_before_a_fresh_spawn stdout ---- thread 'daemon::gateway::tests::an_orphan_matching_its_recorded_start_is_stopped_before_a_fresh_spawn' (73519948) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:1860:5: assertion `left == right` failed left: GatewaySlot { state: Foreign, config: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpqTXh7i/etc/shunt.toml"), binary: Some("/nix/var/nix/builds/nix-12670-2432953799/.tmpqTXh7i/stub/shunt"), port: Some(56637), pid: None, version: Some("0.49.1"), answerer: Some(Shunt), floor: "0.48.0", restarts: 0, last_exit: None, reason: None, since: Some("2026-09-21T14:13:21+00:00") } right: GatewaySlot { state: Stopping, config: None, binary: None, port: None, pid: Some(35467), version: None, answerer: None, floor: "0.48.0", restarts: 0, last_exit: None, reason: None, since: Some("2026-09-21T14:13:21+00:00") } ---- daemon::gateway::tests::an_unparseable_hold_is_removed_and_ignored stdout ---- thread 'daemon::gateway::tests::an_unparseable_hold_is_removed_and_ignored' (73520030) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:2920:5: an unparseable hold is removed ---- daemon::gateway::tests::disabled_wins_over_a_hold_naming_this_daemon stdout ---- thread 'daemon::gateway::tests::disabled_wins_over_a_hold_naming_this_daemon' (73520346) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:3218:34: write the hold: cannot read the start time of the daemon (pid 28021) ---- daemon::gateway::tests::the_stub_teardown_never_signals_a_pid_that_no_longer_names_the_stub stdout ---- thread 'daemon::gateway::tests::the_stub_teardown_never_signals_a_pid_that_no_longer_names_the_stub' (73520961) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:2565:5: a live stub's command line names it ---- daemon::gateway::tests::write_hold_errors_without_a_daemon_and_writes_0600 stdout ---- thread 'daemon::gateway::tests::write_hold_errors_without_a_daemon_and_writes_0600' (73521184) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:2983:34: write the hold: cannot read the start time of the daemon (pid 28021) ---- daemon::gateway::tests::writing_and_releasing_a_hold_leaves_the_record_unchanged stdout ---- thread 'daemon::gateway::tests::writing_and_releasing_a_hold_leaves_the_record_unchanged' (73521951) panicked at src/daemon/../../tests/inline/daemon_gateway.rs:2947:34: write the hold: cannot read the start time of the daemon (pid 28021) ---- daemon::probe::tests::a_stop_leaving_no_daemon_stops_the_gateway_it_left stdout ---- thread 'daemon::probe::tests::a_stop_leaving_no_daemon_stops_the_gateway_it_left' (73522087) panicked at src/daemon/../../tests/inline/daemon_probe.rs:761:9: the stand-in's start time reads ---- daemon::probe::tests::stop_escalates_to_sigkill_past_the_wait stdout ---- thread 'daemon::probe::tests::stop_escalates_to_sigkill_past_the_wait' (73522541) panicked at src/daemon/../../tests/inline/daemon_probe.rs:703:6: the escalation lands: the recorded daemon pid 37011 is not a running clauth daemon (it exited during handover or was recycled); re-run once it settles, or kill the daemon manually ---- daemon::probe::tests::stop_names_a_standby_that_took_over stdout ---- thread 'daemon::probe::tests::stop_names_a_standby_that_took_over' (73522542) panicked at src/daemon/../../tests/inline/daemon_probe.rs:729:6: the stop lands: the recorded daemon pid 37041 is not a running clauth daemon (it exited during handover or was recycled); re-run once it settles, or kill the daemon manually ---- daemon::probe::tests::stop_terminates_the_daemon_and_leaves_the_singleton_free stdout ---- thread 'daemon::probe::tests::stop_terminates_the_daemon_and_leaves_the_singleton_free' (73522545) panicked at src/daemon/../../tests/inline/daemon_probe.rs:675:6: the stop lands: the recorded daemon pid 37110 is not a running clauth daemon (it exited during handover or was recycled); re-run once it settles, or kill the daemon manually ---- daemon::proxies::tests::a_disabled_rows_orphan_is_stopped_by_the_next_daemon stdout ---- thread 'daemon::proxies::tests::a_disabled_rows_orphan_is_stopped_by_the_next_daemon' (73522769) panicked at src/daemon/../../tests/inline/daemon_proxy.rs:796:65: start time ---- daemon::proxies::tests::a_proxy_still_draining_is_finished_by_the_next_daemon_at_its_deadline stdout ---- thread 'daemon::proxies::tests::a_proxy_still_draining_is_finished_by_the_next_daemon_at_its_deadline' (73522924) panicked at src/daemon/../../tests/inline/daemon_proxy.rs:417:5: assertion `left == right` failed left: Foreign right: Stopping gateway stub: a stub still holds /nix/var/nix/builds/nix-12670-2432953799/.tmpciQazA/stub/fifo ---- daemon::proxies::tests::a_removed_rows_orphan_is_stopped_by_the_next_daemon stdout ---- thread 'daemon::proxies::tests::a_removed_rows_orphan_is_stopped_by_the_next_daemon' (73523101) panicked at src/daemon/../../tests/inline/daemon_proxy.rs:796:65: start time ---- daemon::tests::start_runs_the_daemon_detached_into_its_log stdout ---- thread 'daemon::tests::start_runs_the_daemon_detached_into_its_log' (73529573) panicked at src/daemon/../../tests/inline/daemon_mod.rs:2139:5: assertion `left == right` failed: two starts append in order; each scrubs only the clauth-built home left: "argv=daemon\ncwd=/nix/var/nix/builds/nix-12670-2432953799/.tmpDD06kl/.clauth\n/nix/var/nix/builds/nix-12670-2432953799/.tmpYU6ObO/clauth: line 4: ps: command not found\nleads=no\nclaude=unset\ncodex=/custom/codex\nstderr\nargv=daemon\ncwd=/nix/var/nix/builds/nix-12670-2432953799/.tmpDD06kl/.clauth\n/nix/var/nix/builds/nix-12670-2432953799/.tmpYU6ObO/clauth: line 4: ps: command not found\nleads=no\nclaude=/custom/claude\ncodex=unset\nstderr\n" right: "argv=daemon\ncwd=/nix/var/nix/builds/nix-12670-2432953799/.tmpDD06kl/.clauth\nleads=yes\nclaude=unset\ncodex=/custom/codex\nstderr\nargv=daemon\ncwd=/nix/var/nix/builds/nix-12670-2432953799/.tmpDD06kl/.clauth\nleads=yes\nclaude=/custom/claude\ncodex=unset\nstderr\n" ---- daemon::tests::tick_herdr_heal_follows_the_saved_update_toggle stdout ---- thread 'daemon::tests::tick_herdr_heal_follows_the_saved_update_toggle' (73529602) panicked at src/daemon/../../tests/inline/daemon_mod.rs:276:5: assertion `left == right` failed: a tick with the saved toggle on reaches the fake install left: "" right: "plugin install uwuclxdy/clauth/herdr-plugin --ref v0.15.1 --yes" ---- gateway::tests::a_codex_home_set_only_in_the_daemons_record_keeps_its_auth_json stdout ---- thread 'gateway::tests::a_codex_home_set_only_in_the_daemons_record_keeps_its_auth_json' (73529939) panicked at src/../tests/inline/gateway.rs:2343:61: the test process start time ---- gateway::tests::a_daemon_whose_recorded_codex_home_is_relative_refuses_with_the_daemon_copy stdout ---- thread 'gateway::tests::a_daemon_whose_recorded_codex_home_is_relative_refuses_with_the_daemon_copy' (73530060) panicked at src/../tests/inline/gateway.rs:2343:61: the test process start time ---- gateway::tests::a_record_naming_this_process_without_the_singleton_held_falls_back stdout ---- thread 'gateway::tests::a_record_naming_this_process_without_the_singleton_held_falls_back' (73530502) panicked at src/../tests/inline/gateway.rs:4052:73: start ---- gateway::tests::a_record_with_userprofile_resolves_a_store_default stdout ---- thread 'gateway::tests::a_record_with_userprofile_resolves_a_store_default' (73530503) panicked at src/../tests/inline/gateway.rs:4610:73: start ---- gateway::tests::the_card_reads_the_live_daemons_recorded_bind stdout ---- thread 'gateway::tests::the_card_reads_the_live_daemons_recorded_bind' (73530744) panicked at src/../tests/inline/gateway.rs:3994:57: the test process start time ---- gateway::tests::the_codex_login_in_clauths_own_home_stays_when_the_env_file_names_another_home stdout ---- thread 'gateway::tests::the_codex_login_in_clauths_own_home_stays_when_the_env_file_names_another_home' (73530745) panicked at src/../tests/inline/gateway.rs:2343:61: the test process start time ---- gateway::tests::the_daemon_env_capture_records_exactly_the_four_inherited_keys stdout ---- thread 'gateway::tests::the_daemon_env_capture_records_exactly_the_four_inherited_keys' (73530746) panicked at src/../tests/inline/gateway.rs:4128:6: write: cannot read the start time of the daemon (pid 28021) ---- gateway::tests::the_daemon_env_record_is_0600_and_unset_values_round_trip_as_unset stdout ---- thread 'gateway::tests::the_daemon_env_record_is_0600_and_unset_values_round_trip_as_unset' (73530749) panicked at src/../tests/inline/gateway.rs:4076:24: write: cannot read the start time of the daemon (pid 28021) ---- gateway::tests::the_default_codex_home_follows_the_resolved_home stdout ---- thread 'gateway::tests::the_default_codex_home_follows_the_resolved_home' (73530786) panicked at src/../tests/inline/gateway.rs:2343:61: the test process start time ---- gateway::tests::the_displayed_bind_reads_the_daemon_recorded_bind_matched_by_pid stdout ---- thread 'gateway::tests::the_displayed_bind_reads_the_daemon_recorded_bind_matched_by_pid' (73530793) panicked at src/../tests/inline/gateway.rs:721:10: record the daemon env: cannot read the start time of the daemon (pid 28021) ---- gateway::tests::the_env_record_reads_only_the_live_holders_record stdout ---- thread 'gateway::tests::the_env_record_reads_only_the_live_holders_record' (73530824) panicked at src/../tests/inline/gateway.rs:3920:57: the test process start time ---- gateway::tests::the_gateway_probe_reads_the_same_env_as_the_plan stdout ---- thread 'gateway::tests::the_gateway_probe_reads_the_same_env_as_the_plan' (73530935) panicked at src/../tests/inline/gateway.rs:4650:73: start ---- herdr::tests::heal_detached_respects_the_saved_update_toggle stdout ---- thread 'herdr::tests::heal_detached_respects_the_saved_update_toggle' (73533694) panicked at src/../tests/inline/herdr.rs:995:5: assertion `left == right` failed: an un-gated call right after a saved-off one still installs left: "" right: "plugin install uwuclxdy/clauth/herdr-plugin --ref v0.15.1 --yes" ---- mcp::startup_tests::startup_herdr_heal_follows_the_saved_update_toggle stdout ---- thread 'mcp::startup_tests::startup_herdr_heal_follows_the_saved_update_toggle' (73539918) panicked at src/mcp/../../tests/inline/mcp_startup.rs:85:5: assertion `left == right` failed: a server started with the saved toggle on reaches the fake install left: "" right: "plugin install uwuclxdy/clauth/herdr-plugin --ref v0.15.1 --yes" ---- tui::app::tests::the_shunt_hold_verbs_write_and_remove_the_hold_through_the_menu stdout ---- thread 'tui::app::tests::the_shunt_hold_verbs_write_and_remove_the_hold_through_the_menu' (73555951) panicked at src/tui/../../tests/inline/tui_app.rs:5158:54: called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" } ---- update::tests::updates_enabled_follows_the_saved_toggle stdout ---- thread 'update::tests::updates_enabled_follows_the_saved_toggle' (73556605) panicked at src/../tests/inline/update.rs:219:9: saved on + env unset → enabled failures: daemon::gateway::tests::a_first_step_spawns_one_gateway_with_every_store_under_clauth_and_reads_its_version daemon::gateway::tests::a_hold_naming_another_instance_is_removed_and_ignored daemon::gateway::tests::a_hold_naming_this_daemon_holds_the_gateway_off daemon::gateway::tests::a_hold_stops_the_running_gateway daemon::gateway::tests::a_stop_left_running_by_an_exiting_daemon_is_finished_at_its_recorded_deadline daemon::gateway::tests::a_written_hold_names_the_pid_the_sidecar_stamps daemon::gateway::tests::a_written_hold_reads_back_as_this_daemon_and_stays daemon::gateway::tests::an_orphan_matching_its_recorded_start_is_stopped_before_a_fresh_spawn daemon::gateway::tests::an_unparseable_hold_is_removed_and_ignored daemon::gateway::tests::disabled_wins_over_a_hold_naming_this_daemon daemon::gateway::tests::the_stub_teardown_never_signals_a_pid_that_no_longer_names_the_stub daemon::gateway::tests::write_hold_errors_without_a_daemon_and_writes_0600 daemon::gateway::tests::writing_and_releasing_a_hold_leaves_the_record_unchanged daemon::probe::tests::a_stop_leaving_no_daemon_stops_the_gateway_it_left daemon::probe::tests::stop_escalates_to_sigkill_past_the_wait daemon::probe::tests::stop_names_a_standby_that_took_over daemon::probe::tests::stop_terminates_the_daemon_and_leaves_the_singleton_free daemon::proxies::tests::a_disabled_rows_orphan_is_stopped_by_the_next_daemon daemon::proxies::tests::a_proxy_still_draining_is_finished_by_the_next_daemon_at_its_deadline daemon::proxies::tests::a_removed_rows_orphan_is_stopped_by_the_next_daemon daemon::tests::start_runs_the_daemon_detached_into_its_log daemon::tests::tick_herdr_heal_follows_the_saved_update_toggle gateway::tests::a_codex_home_set_only_in_the_daemons_record_keeps_its_auth_json gateway::tests::a_daemon_whose_recorded_codex_home_is_relative_refuses_with_the_daemon_copy gateway::tests::a_record_naming_this_process_without_the_singleton_held_falls_back gateway::tests::a_record_with_userprofile_resolves_a_store_default gateway::tests::the_card_reads_the_live_daemons_recorded_bind gateway::tests::the_codex_login_in_clauths_own_home_stays_when_the_env_file_names_another_home gateway::tests::the_daemon_env_capture_records_exactly_the_four_inherited_keys gateway::tests::the_daemon_env_record_is_0600_and_unset_values_round_trip_as_unset gateway::tests::the_default_codex_home_follows_the_resolved_home gateway::tests::the_displayed_bind_reads_the_daemon_recorded_bind_matched_by_pid gateway::tests::the_env_record_reads_only_the_live_holders_record gateway::tests::the_gateway_probe_reads_the_same_env_as_the_plan herdr::tests::heal_detached_respects_the_saved_update_toggle mcp::startup_tests::startup_herdr_heal_follows_the_saved_update_toggle tui::app::tests::the_shunt_hold_verbs_write_and_remove_the_hold_through_the_menu update::tests::updates_enabled_follows_the_saved_toggle test result: FAILED. 4828 passed; 38 failed; 11 ignored; 0 measured; 12 filtered out; finished in 792.83s error: test failed, to rerun pass `--bin clauth`