Using versionCheckHook Running phase: unpackPhase unpacking source archive /nix/store/jc9jw0dj17r8lm5n6paanwg4d8fsdwzp-source source root is source Executing cargoSetupPostUnpackHook Finished cargoSetupPostUnpackHook Running phase: patchPhase Executing cargoSetupPostPatchHook Validating consistency between /build/source/Cargo.lock and /build/clauth-0.16.0-vendor/Cargo.lock Finished cargoSetupPostPatchHook Running phase: updateAutotoolsGnuConfigScriptsPhase Running phase: configurePhase Running phase: buildPhase Executing cargoBuildHook cargoBuildHook flags: -j 48 --target x86_64-unknown-linux-gnu --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 zmij v1.0.23 Compiling thiserror v2.0.20 Compiling foldhash v0.2.0 Compiling equivalent v1.0.2 Compiling allocator-api2 v0.2.21 Compiling itoa v1.0.18 Compiling serde_core v1.0.229 Compiling rustix v1.1.4 Compiling memchr v2.8.3 Compiling typenum v1.20.1 Compiling linux-raw-sys v0.12.1 Compiling ident_case v1.0.1 Compiling log v0.4.34 Compiling serde_json v1.0.151 Compiling strsim v0.11.1 Compiling hashbrown v0.17.1 Compiling find-msvc-tools v0.1.12 Compiling shlex v2.0.1 Compiling rustversion v1.0.23 Compiling heck v0.5.0 Compiling pin-project-lite v0.2.17 Compiling once_cell v1.21.4 Compiling version_check v0.9.5 Compiling serde v1.0.229 Compiling getrandom v0.4.3 Compiling either v1.18.0 Compiling bytes v1.12.1 Compiling unicode-segmentation v1.13.3 Compiling parking_lot_core v0.9.12 Compiling alloc-no-stdlib v3.0.0 Compiling futures-core v0.3.34 Compiling autocfg v1.5.1 Compiling signal-hook v0.3.18 Compiling futures-sink v0.3.34 Compiling cc v1.4.6 Compiling alloc-stdlib v0.3.0 Compiling ryu v1.0.23 Compiling scopeguard v1.2.0 Compiling option-ext v0.2.0 Compiling itertools v0.14.0 Compiling static_assertions v1.1.0 Compiling unicode-width v0.2.2 Compiling instability v0.3.13 Compiling zeroize v1.9.0 Compiling const-oid v0.10.2 Compiling smallvec v1.16.1 Compiling brotli-decompressor v6.0.0 Compiling lock_api v0.4.14 Compiling futures-channel v0.3.34 Compiling ref-cast v1.0.27 Compiling futures-task v0.3.34 Compiling cpufeatures v0.3.1 Compiling convert_case v0.10.0 Compiling litrs v1.0.0 Compiling slab v0.4.12 Compiling utf8parse v0.2.2 Compiling num-traits v0.2.19 Compiling generic-array v0.14.7 Compiling rustls-pki-types v1.15.1 Compiling inotify-sys v0.1.8 Compiling indoc v2.0.7 Compiling futures-io v0.3.34 Compiling critical-section v1.2.0 Compiling httparse v1.10.1 Compiling untrusted v0.9.0 Compiling crc32fast v1.5.2 Compiling anstyle-parse v1.0.0 Compiling fastrand v2.5.0 Compiling anstyle v1.0.14 Compiling hashbrown v0.16.1 Compiling base64 v0.23.1 Compiling colorchoice v1.0.5 Compiling indexmap v2.14.2 Compiling iana-time-zone v0.1.65 Compiling adler2 v2.0.1 Compiling crossbeam-utils v0.8.23 Compiling simd-adler32 v0.3.10 Compiling anstyle-query v1.1.5 Compiling is_terminal_polyfill v1.70.2 Compiling rustls v0.23.45 Compiling aho-corasick v1.1.5 Compiling http v1.5.0 Compiling tracing-core v0.1.36 Compiling line-clipping v0.3.8 Compiling same-file v1.0.6 Compiling dyn-clone v1.0.20 Compiling anyhow v1.0.104 Compiling subtle v2.6.1 Compiling clap_lex v1.1.1 Compiling hybrid-array v0.4.15 Compiling anstream v1.0.0 Compiling miniz_oxide v0.9.1 Compiling winnow v1.0.4 Compiling signal-hook v0.4.4 Compiling regex-syntax v0.8.11 Compiling rmcp v3.4.0 Compiling webpki-roots v1.0.9 Compiling walkdir v2.5.0 Compiling notify-types v2.1.0 Compiling utf8-zero v0.8.1 Compiling pastey v0.2.3 Compiling document-features v0.2.12 Compiling percent-encoding v2.3.2 Compiling toml_writer v1.1.2+spec-1.1.0 Compiling cpufeatures v0.2.17 Compiling hex v0.4.3 Compiling minisign-verify v0.2.5 Compiling toml_parser v1.1.3+spec-1.1.0 Compiling brotli v9.0.0 Compiling castaway v0.2.4 Compiling block-buffer v0.12.1 Compiling crypto-common v0.2.2 Compiling compact_str v0.9.1 Compiling ring v0.17.14 Compiling syn v3.0.5 Compiling syn v2.0.119 Compiling flate2 v1.1.10 Compiling crossbeam-channel v0.5.17 Compiling lru v0.18.4 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling filetime v0.2.29 Compiling dirs-sys v0.5.0 Compiling which v8.0.6 Compiling errno v0.3.14 Compiling mio v1.2.3 Compiling getrandom v0.2.17 Compiling rtoolbox v0.0.6 Compiling digest v0.10.7 Compiling tar v0.4.46 Compiling dirs v7.0.0 Compiling inotify v0.11.5 Compiling signal-hook-registry v1.4.8 Compiling ureq-proto v0.6.3 Compiling rpassword v7.5.4 Compiling uuid v1.26.1 Compiling parking_lot v0.12.5 Compiling sha1 v0.10.7 Compiling signal-hook-mio v0.2.5 Compiling notify v8.2.0 Compiling digest v0.11.3 Compiling sha2 v0.11.0 Compiling unicode-truncate v2.0.1 Compiling fs4 v1.1.0 Compiling regex-automata v0.4.18 Compiling toml_datetime v1.1.1+spec-1.1.0 Compiling serde_spanned v1.1.1 Compiling terminal_size v0.4.4 Compiling tempfile v3.27.0 Compiling clap_builder v4.6.7 Compiling toml v1.1.6+spec-1.1.0 Compiling self-replace v1.5.0 Compiling darling_core v0.24.1 Compiling serde_derive_internals v0.30.0 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 ref-cast-impl v1.0.27 Compiling tokio-macros v2.7.2 Compiling clap_derive v4.6.7 Compiling schemars_derive v1.2.2 Compiling strum_macros v0.28.0 Compiling derive_more-impl v2.1.1 Compiling tracing-attributes v0.1.31 Compiling utoipa-gen v5.5.0 Compiling tokio v1.53.1 Compiling regex v1.13.1 Compiling futures-util v0.3.34 Compiling kasuari v0.4.12 Compiling derive_more v2.1.1 Compiling crossterm v0.29.0 Compiling tracing v0.1.44 Compiling clap v4.6.7 Compiling darling_macro v0.24.1 Compiling strum v0.28.0 Compiling ratatui-core v0.1.2 Compiling darling v0.24.1 Compiling rmcp-macros v3.4.0 Compiling agentgear v0.1.4 Compiling chrono v0.4.45 Compiling ratatui-widgets v0.3.2 Compiling ratatui-crossterm v0.1.2 Compiling futures-executor v0.3.34 Compiling futures v0.3.34 Compiling tokio-util v0.7.19 Compiling schemars v1.2.2 Compiling clauth v0.16.0 (/build/source) Compiling ratatui v0.30.2 Compiling utoipa v5.5.0 Compiling rustls-webpki v0.103.15 Compiling ureq v3.4.2 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 5m 19s Executing cargoInstallPostBuildHook Finished cargoInstallPostBuildHook Finished cargoBuildHook buildPhase completed in 5 minutes 20 seconds Running phase: checkPhase Executing cargoCheckHook cargoCheckHook flags: -j 48 --profile release --target x86_64-unknown-linux-gnu --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 Compiling tokio v1.53.1 Compiling tokio-util v0.7.19 Compiling rmcp v3.4.0 Compiling clauth v0.16.0 (/build/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 11m 08s Running unittests src/main.rs (target/x86_64-unknown-linux-gnu/release/deps/clauth-56a06c2a9a18c053) running 4158 tests 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::a_console_login_stores_the_session_and_leaves_the_api_key_alone ... ok test actions::tests::a_case_only_rename_is_not_a_collision_with_itself ... ok clauth: captured the operator codex login into codex profile 'cx' clauth: /build/.tmpwkeNxc/.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_fresh_capture_after_a_switch_off_strips_the_departed_accounts_env ... 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_delayed_daemonless_publish_keeps_the_current_active_profile ... ok test actions::tests::a_half_filled_snapshot_never_pairs_a_stored_key_with_a_new_endpoint ... ok test actions::tests::a_failed_codex_dir_removal_keeps_the_record ... ok test actions::tests::a_delete_does_not_release_the_lock_it_is_holding ... ok test actions::tests::a_name_the_other_harness_holds_is_refused_naming_the_holder ... 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_late_commit_does_not_replace_a_newer_same_active_publication ... ok test actions::tests::a_credentials_less_recapture_still_drops_the_stored_chain ... ok test actions::tests::a_no_op_switch_does_not_republish_the_feed ... ok test actions::tests::a_switch_after_a_switch_off_does_not_inherit_the_departed_accounts_env ... ok test actions::tests::a_tui_create_account_after_a_switch_off_strips_the_departed_accounts_env ... 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_keeps_a_scoped_blocked_sink_parked ... ok test actions::tests::auto_switch_if_needed_hops_off_a_scoped_blocked_active ... ok test actions::tests::auto_switch_with_headroom_yields_no_dispatch_and_leaves_an_explicit_switch_in_place ... ok test actions::tests::auto_switch_if_needed_walks_off_a_broken_active ... ok test actions::tests::browser_reauth_keeps_a_generic_endpoint_and_key ... ok test actions::tests::browser_reauth_does_not_keep_an_endpoint_with_no_key_behind_it ... ok test actions::tests::browser_reauth_on_an_active_third_party_profile_keeps_the_live_endpoint ... ok test actions::tests::browser_reauth_on_a_third_party_profile_keeps_its_endpoint_and_key ... 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_saves_a_foreign_live_login_as_the_first_account ... ok test actions::tests::capture_current_login_refuses_when_nothing_is_live ... ok test actions::tests::capture_into_profile_anchors_the_account_it_committed ... ok test actions::tests::clear_profile_credentials_expires_the_profile_ttl_clock ... ok clauth: captured the operator codex login into codex profile 'cx' clauth: /build/.tmpwU4M00/.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: /build/.tmpwU4M00/.codex/auth.json already follows codex profile 'cx' — nothing to capture test actions::tests::codex_capture_adopts_the_operator_slot ... ok test actions::tests::clear_profile_api_key_keeps_base_url_and_active_status ... ok test actions::tests::codex_capture_refusals_name_the_fix ... ok test actions::tests::codex_browser_login_preflight_refuses_only_a_cross_harness_clash ... ok test actions::tests::clear_profile_credentials_blanks_active_profile_keeping_shell ... ok test actions::tests::clear_profile_credentials_non_active_and_no_sidecar_resurrection ... ok test actions::tests::codex_capture_refuses_a_claude_held_name ... ok clauth: captured the operator codex login into codex profile 'first' clauth: /build/.tmpGctqoI/.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: /build/.tmpczG3i2/.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: /build/.tmpczG3i2/.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: /build/.tmpfwWxId/.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: /build/.tmpfwWxId/.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: /build/.tmpFmYJjR/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: /build/.tmpFmYJjR/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: /build/.tmpFmYJjR/.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 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 actions::tests::overwrite_captured_profile_does_not_auto_activate_a_disabled_profile ... 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_json_callback_body_is_read ... ok test alibaba_login::tests::the_real_callback_yields_a_session_and_nothing_else ... 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 claude::tests::a_sign_out_drops_the_account_keys_and_keeps_the_mcp_logins ... ok test claude::tests::a_sign_out_over_a_login_only_item_leaves_nothing_to_keep ... ok test actions::tests::switch_codex_moves_only_the_codex_slot ... ok test claude::tests::a_store_with_no_account_keys_is_already_signed_out ... ok clauth: re-captured the operator codex login into 'cx2' clauth: /build/.tmpSKh9lT/.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 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::build_settings_no_api_key_helper_for_non_api_profile ... ok test claude::tests::build_settings_switch_away_from_api_key_clears_helper ... ok test claude::tests::build_settings_writes_api_key_helper_not_env_token ... ok test claude::tests::build_settings_writes_model_knobs ... ok test actions::tests::switch_replaces_active_account_mirror_without_refusing ... ok test claude::tests::carry_copies_mcp_oauth_and_leaves_the_target_login_untouched ... ok test actions::tests::switch_to_a_missing_profile_bails_before_touching_the_live_link ... 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 actions::tests::the_auto_activate_arm_writes_a_preserved_endpoint_into_the_live_settings ... 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::classify_link_linked_to_when_plain_file_token_matches_stored ... ok test claude::tests::classify_link_linked_to_when_pointing_at_expected ... ok test claude::tests::classify_security_exit_names_the_measured_codes ... ok test claude::tests::classify_link_missing_when_path_absent ... ok test actions::tests::the_cross_harness_half_stands_alone_for_the_capture_flow ... 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 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_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 claude::tests::is_namespaced_keychain_service_admits_only_suffixed_hex ... 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 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 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::profile_name_from_helper_parses_our_shape ... ok test claude::tests::a_backup_inside_ccs_refresh_window_reads_as_expired ... ok test claude::tests::profile_name_from_helper_rejects_wrong_shape ... 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_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_mint_in_its_final_month_is_still_preserved ... ok test claude::tests::a_regained_store_takes_its_parked_mcp_logins_back ... 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::a_regular_file_mirror_of_a_stored_login_is_not_unsaved ... ok test claude::tests::the_locked_keychain_cause_is_a_hardcoded_literal ... ok test claude::tests::the_namespaced_delete_salvages_readable_bytes_before_delete ... ok test claude::tests::a_restored_mint_is_preserved_again_on_the_next_roll ... 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::a_rolling_bearer_is_never_preserved_as_the_mint ... ok test claude::tests::a_rotating_pair_classifies_misfilled_never_rolling ... ok test claude::tests::a_rotating_pair_in_the_sidecar_never_engages_the_split ... ok test claude::tests::a_store_removal_parks_the_mcp_logins_it_was_holding ... ok test claude::tests::a_store_with_no_mcp_logins_parks_nothing ... ok test claude::tests::a_tier_override_alone_is_enough_to_write_settings ... ok test claude::tests::an_expired_backup_is_never_restored ... 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::clear_session_token_flips_the_install_source_back ... ok test claude::tests::claude_settings_models_reads_model_fallbacks_and_the_subagent_key ... 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::force_snapshot_never_clobbers_the_session_token_usage_pair ... ok test codex_auth::tests::a_plan_word_is_trimmed_lowercased_and_empty_is_absent ... ok test claude::tests::force_snapshot_skips_an_absent_live_file ... ok test codex_auth::tests::a_rotation_preserves_every_unknown_key ... 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_misfilled_sidecar_quarantines_and_restores_the_mint ... 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::link_refuses_a_login_less_live_file_over_a_profile_storing_no_login ... 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::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::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 codex_login::tests::the_account_id_comes_from_the_nested_claim ... ok test claude::tests::relogin_is_diverged_and_not_first_login ... 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 claude::tests::restore_quarantines_a_misfilled_sidecar_before_overwriting_it ... ok test codex_login::tests::the_login_binds_the_registered_ports_in_order_and_refuses_with_both_held ... ok test claude::tests::restore_static_mint_round_trip ... 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::stamp_rolling_token_refuses_a_mint_shaped_chain_grant ... 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 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 completions::tests::devices_flags_are_offered_only_under_pair_and_add ... ok test codex_auth::tests::the_refresh_wire_shape_is_the_specs ... ok test completions::tests::every_login_flag_is_offered_by_all_three_scripts ... ok test completions::tests::every_shell_completes_login_setup_token_flag ... ok test claude::tests::switching_accounts_preserves_mcp_oauth_end_to_end ... 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 completions::tests::herdr_flags_are_offered_only_under_install_and_uninstall ... ok test claude::tests::the_credential_fingerprint_tracks_each_of_the_three_files ... ok test claude::tests::the_parked_mcp_logins_file_is_owner_only ... ok test claude::tests::write_session_token_produces_a_recognised_sidecar ... 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::every_completion_script_parses_in_its_own_shell ... 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 rolling-token static-token which list jobs switch sessions resume info daemon devices status mcp herdr 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" = "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_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]}" = "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]' \ '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]' \ '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 == 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]}" == 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 >= 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 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 --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" -a "(__clauth_profiles)" -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" -a --yes -d "Skip the confirm prompt" complete -c clauth -f -n "__fish_seen_subcommand_from disable" -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" -a --all -d "Also list disabled profiles" complete -c clauth -f -n "__fish_seen_subcommand_from list" -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::print_script_supports_bash_zsh_fish ... ok test completions::tests::subcommand_branch_isolates_one_subcommand_or_reports_none ... ok test completions::tests::the_parity_scan_still_catches_a_bare_apostrophe_beside_the_escape_idiom ... ok test completions::tests::the_zsh_leg_would_catch_an_apostrophe_in_a_description ... ok test completions::tests::every_visible_subcommand_and_long_flag_is_offered_by_all_three_scripts ... 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 claude_json::tests::single_file_is_noop ... 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 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::a_terminal_verdict_leaves_a_quarantine_record_and_a_rotation_clears_it ... 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_auth::tests::an_unwritable_memo_sends_nothing_and_keeps_the_kick ... ok test codex_auth::tests::fake_transport_stands_down_for_any_live_session_and_keeps_the_kick ... 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 codex_profiles::tests::a_save_keeps_the_weekly_key_exactly_as_it_found_it ... ok test codex_profiles::tests::an_out_of_band_weekly_line_heals_on_the_next_save ... ok test codex_profiles::tests::an_unknown_key_does_not_fail_the_load ... ok test codex_profiles::tests::the_mtime_stat_answers_absent_and_present ... 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_bash_is_idempotent_across_reruns ... ok test completions::tests::install_bash_writes_script_and_sources_it_in_rc ... ok test completions::tests::install_fish_writes_into_fish_completions_dir ... ok test completions::tests::session_stem_completion_lists_registry_stems_only ... 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::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::devices::tests::a_generated_token_is_64_lowercase_hex ... 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::devices::tests::an_empty_list_names_the_pair_command ... 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::devices::tests::an_unparseable_stamp_renders_as_no_data ... 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::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::devices::tests::the_legacy_name_is_reserved_in_any_case ... 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::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::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::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::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::events::tests::keepalive_due_is_exact ... 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::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::devices::tests::a_legacy_file_from_before_the_tier_field_imports_as_control ... 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_numeric_content_length_is_malformed ... ok test daemon::api::http::tests::a_non_bearer_scheme_presents_no_token ... ok test daemon::api::http::tests::a_not_modified_response_is_bodyless_and_tagged ... ok test daemon::api::http::tests::a_read_timeout_mid_request_still_fails ... ok test daemon::api::http::tests::a_pipelined_second_request_is_read_from_the_same_buffer ... 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_read_timeout_between_requests_keeps_waiting ... ok test daemon::api::devices::tests::a_legacy_file_of_any_tier_but_control_is_neither_imported_nor_served ... 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::disagreeing_content_lengths_are_malformed ... ok test daemon::api::http::tests::eof_before_the_body_completes_is_malformed ... ok test daemon::api::http::tests::content_length_matches_the_body ... ok test daemon::api::http::tests::every_request_error_maps_to_a_client_error_status ... ok test daemon::api::http::tests::eof_before_the_head_completes_is_malformed ... 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::devices::tests::a_lost_token_line_with_a_removed_device_pins_its_sentence ... 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::too_many_headers_is_refused ... ok test daemon::api::http::tests::an_idle_connection_ends_when_its_budget_runs_out ... ok test daemon::api::http::tests::the_request_summary_bounds_the_method_too ... 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::pairing::tests::a_code_and_a_redemption_never_format_their_secret ... 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::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_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::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::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::an_unusable_legacy_file_is_not_imported_and_says_so_once ... ok test daemon::api::devices::tests::revoking_an_unknown_name_names_it ... ok f0dc35ecfeee0cb04f6f8589243eeb30b822f896da5c7b05f654b93ed6944e26 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_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::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::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::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::pairing::tests::the_alphabet_is_crockford_base32 ... 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::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::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::events::tests::herdr_absent_degrades_to_present_false_while_status_flows ... 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::devices::tests::a_lost_token_line_with_a_failed_revoke_names_the_remove_command ... 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_failed_store_write_leaves_the_code_live ... ok test daemon::api::pairing::tests::a_code_whose_name_was_taken_is_refused_and_consumed ... 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::panes::tests::the_real_no_job_wire_parses_with_no_group_and_no_processes ... 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::an_expired_code_holds_no_name ... 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::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::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::panes::tests::a_non_clauth_member_running_start_is_a_delegate ... ok test daemon::api::panes::tests::a_pane_whose_process_info_failed_keeps_its_row_empty ... 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::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::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::panes::tests::the_fixture_panes_join_to_the_pinned_answer ... 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::the_route_table_is_exactly_this ... ok test daemon::api::routes::tests::a_failed_switch_reflects_no_home_path ... ok test daemon::api::routes::tests::the_template_matcher_binds_one_segment_decoded_and_nothing_else ... ok test daemon::api::routes::tests::a_failed_switchs_context_reaches_the_log_but_not_the_body ... ok test daemon::api::routes::tests::a_conditional_read_without_wait_answers_immediately ... 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::pairing::tests::a_pre_sessions_pairing_file_redeems_ungranted ... 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 daemon::api::routes::tests::a_wait_is_not_woken_by_the_timestamp_alone ... 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::terminal::tests::strip_session_env_removes_every_session_var ... FAILED 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::routes::tests::all_equals_one_reads_the_live_stores_not_a_file_mtime ... ok test daemon::api::tests::a_connection_survives_an_idle_gap_longer_than_the_io_timeout ... 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::routes::tests::all_reveals_disabled_accounts_that_the_plain_feed_hides ... ok test daemon::api::tests::a_pairing_over_tls_hands_back_a_working_token_and_logs_no_secret ... ok test daemon::api::routes::tests::an_unknown_path_is_404_and_a_wrong_method_is_405 ... ok test daemon::api::tests::a_plaintext_client_gets_nothing_back ... ok test daemon::api::pairing::tests::the_wait_ends_when_another_thread_redeems ... ok test daemon::api::routes::tests::an_unknown_tier_device_is_refused_while_the_others_work ... 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::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::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::tests::a_silent_client_is_dropped_without_holding_a_slot_for_the_whole_lifetime ... ok test daemon::api::routes::tests::every_route_but_pair_refuses_an_unpaired_caller ... 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::only_the_api_v1_prefix_is_served ... ok test daemon::api::routes::tests::pair_is_the_one_route_an_unpaired_caller_reaches ... 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::tests::a_working_lego_identity_still_loads_on_a_tailnet_bind ... ok test daemon::api::routes::tests::switch_relinks_and_reports_the_previous_account ... ok test daemon::api::tests::an_unauthenticated_request_does_not_keep_the_connection ... ok test daemon::api::tests::pipelined_requests_are_answered_in_order ... ok test daemon::api::routes::tests::switch_resolves_the_name_case_insensitively ... ok test daemon::api::tests::the_advertised_budget_is_the_one_enforced ... ok test daemon::api::tests::the_connection_cap_admits_up_to_the_limit_and_releases_on_drop ... ok test daemon::api::tests::the_events_stream_runs_until_the_lifetime_and_closes_cleanly ... ok test daemon::api::tests::the_log_line_for_a_long_unauthenticated_path_is_bounded ... ok test daemon::api::tests::the_request_line_names_the_device ... ok test daemon::api::tls::tests::a_certificate_behind_an_unsearchable_directory_keeps_todays_error ... ok test daemon::api::tls::tests::a_certificate_path_that_cannot_be_statd_keeps_todays_error ... ok test daemon::api::tls::tests::a_hostname_that_could_escape_the_certificate_directory_is_refused ... ok test daemon::api::tls::tests::a_leaf_only_cert_gains_the_issuer ... ok test daemon::api::routes::tests::switch_to_a_disabled_profile_is_refused ... 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_missing_issuer_file_is_fine ... ok test daemon::api::tls::tests::a_missing_key_names_the_path_it_wanted ... ok test daemon::api::routes::tests::switch_to_an_unknown_profile_is_404_and_changes_nothing ... ok test daemon::api::tls::tests::a_real_fqdn_is_accepted ... ok test daemon::api::routes::tests::the_all_query_is_tagged_and_answers_304_to_a_matching_tag ... 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 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::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::sessions::tests::a_bad_cursor_or_limit_is_400 ... ok test daemon::api::tls::tests::cert_source_is_explicit_only_when_both_files_are_named ... 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::tls::tests::keys_load_in_every_encoding_lego_might_have_written ... 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::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::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::probe::tests::fresh_stale_and_garbage_stamps ... 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::a_missing_upgrade_is_refused_with_426 ... ok test daemon::api::terminal::tests::a_pane_missing_from_the_snapshot_answers_404 ... ok test daemon::api::terminal::tests::a_ping_is_answered_with_a_pong ... ok test daemon::api::terminal::tests::a_post_to_the_stream_path_is_a_405 ... ok test daemon::probe::tests::the_staleness_window_sits_above_the_watchdog_deadline ... 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::terminal::tests::absent_herdr_answers_503 ... ok test daemon::status_json::tests::always_serialized_option_fields_are_required_and_skipped_ones_are_not ... ok test daemon::api::terminal::tests::control_input_reaches_herdr_and_is_audited_without_its_bytes ... ok test daemon::api::terminal::tests::frames_pipelined_behind_the_handshake_arrive ... ok test daemon::api::terminal::tests::malformed_client_frames_close_with_protocol_error ... 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-09-26T09:31:41+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-09-26T09:31:41+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-09-26T09:31:41+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-09-26T09:31:41+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-09-26T09:31:41+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_redundant_start_imports_nothing ... ok 2026-09-26T09:31:41+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::a_standby_with_an_unreadable_initial_certificate_exits_before_claiming ... ok 2026-09-26T09:31:41+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 2026-09-26T09:31:41+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_serves_imports_the_legacy_token ... ok 2026-09-26T09:31:41+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::status_json::tests::build_status_rolling_token_is_the_sidecar_content_not_the_config_flag ... ok test daemon::api::tests::a_tls_failed_start_writes_no_device_list ... ok 2026-09-26T09:31:41+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-09-26T09:31:41+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-09-26T09:31:41+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::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::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::status_json::tests::status_body_matches_legacy_json_bytes ... 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::status_json::tests::third_party_availability_matches_legacy_json_bytes ... ok test daemon::api::tls::tests::tls_config_is_written_with_the_platform_default_on_first_use ... ok 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 codex_login::tests::the_api_key_exchange_is_best_effort ... 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::singleton_held_separates_a_missing_lock_a_free_one_and_a_held_one ... 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::probe::tests::wait_for_active_claims_once_the_holder_releases ... ok test daemon::tests::drains_exhausted_names_both_skip_triggers ... ok test daemon::probe::tests::wait_for_active_times_out_while_the_lock_stays_held ... 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::tests::switch_backoff_ms_grows_exponentially_and_caps ... 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::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::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 fallback::tests::a_day_list_reaches_the_chain_member_with_the_flag_off ... ok test fallback::tests::a_day_list_blocker_names_the_first_thing_in_the_way ... ok test daemon::status_json::tests::build_status_reports_a_recorded_dead_credential_without_a_daemon ... 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_reading_dead_member_remains_a_walk_target ... ok test fallback::tests::a_reading_dead_active_is_never_switched_off ... ok test fallback::tests::a_session_snapshot_keeps_the_sessions_own_disabled_member_resolvable ... ok test daemon::status_json::tests::build_status_rolling_token_is_false_for_a_misfill ... ok test fallback::tests::a_spent_preferred_active_is_left_not_kept ... ok test fallback::tests::a_session_snapshot_needs_no_global_active_profile ... ok test fallback::tests::an_empty_day_list_leaves_the_flag_in_charge_at_the_chain ... ok test fallback::tests::all_maxed_sinks_no_switch ... 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_disabled_active_still_evaluates_instead_of_wedging ... ok test fallback::tests::auto_switch_canceled_active_walks_away_despite_headroom ... ok test fallback::tests::auto_switch_broken_and_exhausted_active_still_wraps_off ... 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_never_lands_on_a_gate_on_model_blocked_member ... ok test fallback::tests::auto_switch_missing_util_is_not_exhausted ... 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_picks_a_spend_armed_member_when_the_chain_is_spent ... ok test fallback::tests::auto_switch_over_budget_active_switches_off_by_default ... 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_reading_dead_active_walks_away_despite_no_windows ... ok test fallback::tests::auto_switch_prefers_member_clear_of_every_weekly_window ... 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_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_skips_broken_member_picks_next ... ok test fallback::tests::auto_switch_scoped_blocked_active_stays_put_when_no_fully_clear_member ... ok test fallback::tests::auto_switch_sink_loop_guard_holds ... ok test fallback::tests::auto_switch_skips_canceled_member_picks_next ... ok test fallback::tests::auto_switch_skips_disabled_member_picks_next ... 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 daemon::api::tests::a_tls_failed_start_imports_nothing ... 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_never_fires_on_a_subscription_account ... ok test fallback::tests::budget_spent_blocking_needs_5h_exhaustion_too ... ok test daemon::status_json::tests::build_status_stale_flags_a_deep_slot_stuck_rate_limited_profile ... ok test fallback::tests::candidate_exclusion_and_dead_first_chip_stay_coupled ... ok test fallback::tests::every_named_blocker_is_a_state_the_claim_scan_also_refuses ... ok test fallback::tests::every_blocked_reason_variant_stays_coupled_to_candidate_excluded ... 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::demand_from_expands_opusplan_and_dedupes ... 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::is_exhausted_active_burn_aware_falls_back_without_rate ... ok test fallback::tests::fully_clear_target_skips_canceled_and_disabled_members ... 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::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::model_family_keeps_every_claude_family ... 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::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 daemon::status_json::tests::build_status_stale_flags_an_overdue_cache_on_the_single_shot_path ... 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 daemon::status_json::tests::build_status_third_party_freshness_from_its_own_cache ... 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 daemon::status_json::tests::build_status_top_level_shape_and_active ... 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-09-26T09:31:42+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 fallback::tests::unmarked_hundred_threshold_active_no_longer_acts_as_sink ... 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 2026-09-26T09:31:42+00:00 clauth: skipped the daemonless status.json republish: a newer publication landed while this body was built 2026-09-26T09:31:42+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 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 daemon::tests::a_direct_feed_write_stamps_now ... 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_on_a_sink_active_still_stays_put_over_paying ... ok test fallback::tests::weekly_override_never_softens_the_hard_sink_and_halt_judgments ... ok test fallback::tests::weekly_override_on_a_sink_never_makes_the_ui_twin_pay ... ok test fallback::tests::weekly_soft_exhausted_active_triggers_a_switch_despite_5h_headroom ... ok test fallback::tests::weekly_override_tightens_and_loosens_the_member_line ... 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 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 daemon::tests::a_non_daemon_publish_preserves_the_daemons_last_stamp ... 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::every_transient_cause_renders_its_own_copy ... 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::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 daemon::tests::a_non_daemon_publish_with_no_prior_feed_stamps_the_epoch ... 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 format::tests::self_prescribing_arm_refuses_every_suffixed_retry_at_construction ... ok test harness::tests::the_claude_scrub_is_the_shared_scrub ... ok test harness::tests::the_codex_engine_carries_its_own_spawn_facts ... ok test harness::tests::the_claude_engine_carries_the_spawn_facts_unchanged ... ok test feature_coverage::features_have_test_coverage ... ok 2026-09-26T09:31:42+00:00 clauth daemon: already running (pid unknown); exiting test daemon::tests::a_redundant_instance_exits_without_touching_the_shared_tree ... ok 2026-09-26T09:31:42+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 test herdr::tests::a_binding_edited_off_clauth_open_keeps_the_edit_and_rewires_clauths_own ... ok 2026-09-26T09:31:42+00:00 clauth daemon: deferring switch to 'beta': target is mid-fetch test herdr::tests::a_claude_row_already_rendering_the_token_is_left_alone ... ok 2026-09-26T09:31:42+00:00 clauth daemon: switched to 'beta' test herdr::tests::a_claude_row_without_the_token_is_reported_never_duplicated ... ok test daemon::tests::busy_target_requeued_not_dropped ... ok test herdr::tests::a_config_that_does_not_parse_fails_before_anything_is_written ... ok test daemon::tests::clauth_tree_migrated_to_0700_on_boot ... ok test herdr::tests::a_fully_wired_config_plans_nothing ... ok test herdr::tests::a_hand_owned_claude_row_survives_the_resync ... ok 2026-09-26T09:31:42+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_does_not_resurrect_a_deleted_row ... ok 2026-09-26T09:31:42+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 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 2026-09-26T09:31:42+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 2026-09-26T09:31:42+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_executes_when_idle_and_clean ... ok test herdr::tests::a_registry_entry_without_enabled_reads_as_enabled ... 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 2026-09-26T09:31:42+00:00 clauth daemon: switched off: all accounts spent test daemon::tests::drain_pending_switch_off_does_not_resurrect_a_deleted_row ... 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 ... ok2026-09-26T09:31:42+00:00 clauth daemon: switched to 'beta' 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 daemon::tests::drain_pending_switch_proceeds_over_a_logged_out_shell ... ok test herdr::tests::an_edited_block_is_absent_from_uninstalls_removal_diff ... ok test herdr::tests::an_existing_binding_is_left_alone ... ok test herdr::tests::an_edited_sidebar_row_survives_the_resync_byte_for_byte ... ok test herdr::tests::an_install_with_a_new_key_rebinds_a_wired_config ... ok test herdr::tests::another_plugins_binding_does_not_count_as_ours ... ok 2026-09-26T09:31:42+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_proceeds_over_a_macos_regular_file_mirror ... ok 2026-09-26T09:31:42+00:00 clauth daemon: switched to 'beta' test daemon::tests::drain_pending_switch_proceeds_over_a_stale_clauth_symlink ... 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 2026-09-26T09:31:42+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-09-26T09:31:42+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 test daemon::tests::redundant_reason_names_the_pid_for_the_default_and_the_queue_for_standby ... ok test herdr::tests::herdr_config_get_parses_and_stays_out_of_herdrs_help ... ok 2026-09-26T09:31:42+00:00 clauth daemon: reloaded config after an external change test daemon::tests::reload_if_changed_fires_on_external_mtime_change ... ok 2026-09-26T09:31:42+00:00 clauth daemon: switched to 'beta' 2026-09-26T09:31:42+00:00 clauth daemon: reloaded config after an external change test daemon::tests::rmw_switch_adopts_own_write_mtime_then_reloads_external ... ok 2026-09-26T09:31:42+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 2026-09-26T09:31:42+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::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 herdr::tests::install_refuses_over_a_registered_local_link ... ok test daemon::tests::the_rest_api_is_disabled_only_by_exactly_one ... ok test herdr::tests::nothing_marked_round_trips_unchanged ... ok test herdr::tests::marked_blocks_mid_file_leave_trailing_content ... ok test herdr::tests::only_diagnostics_the_edit_added_are_refused ... 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 2026-09-26T09:31:43+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:31:43+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-09-26T09:31:43+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 daemon::tests::tick_with_empty_queues_writes_status_and_leaves_active_unchanged ... ok test fallback::tests::a_codex_active_outside_its_chain_yields_no_snapshot ... ok 2026-09-26T09:31:43+00:00 clauth: codex refresh for 'cx2' failed: refresh token already used test fallback::tests::a_quarantined_codex_member_is_walked_around ... ok 2026-09-26T09:31:43+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::a_spent_codex_active_moves_to_the_next_member ... ok test herdr::tests::plugin_heal_skips_an_install_at_the_latest_release ... ok test fallback::tests::codex_members_never_arm_the_scoped_gate ... 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 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 fallback::tests::start_walk_prefers_a_fresh_reading_but_still_launches_on_a_stale_one ... ok test herdr::tests::the_append_seam_never_joins_two_lines ... ok test fallback::tests::start_walk_refuses_a_non_oauth_member_only_under_with_fallback ... 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 fallback::tests::start_walk_skips_a_member_capped_on_a_demanded_family ... ok test fallback::tests::start_walk_skips_what_the_switch_walk_skips ... ok test herdr::tests::the_fg_sed_reads_the_real_process_info_shape ... ok test herdr::tests::the_installing_line_names_the_pinned_tag ... ok test herdr::tests::the_fit_sed_reads_the_real_snapshot_shape ... ok test fallback::tests::start_walk_soonest_reset_picks_by_weekly_reset_with_the_freshness_pass_intact ... ok test herdr::tests::the_noop_verdict_holds_both_ways ... 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 herdr::tests::the_unpinned_release_note_names_the_error_and_the_fallback ... ok test fallback::tests::the_codex_chain_reads_only_the_codex_state ... ok test herdr::tests::token_detection_walks_nested_groups ... ok test fallback::tests::walk_order_soonest_and_burn_aware_leave_each_other_identical ... ok test harness::tests::the_claude_scrub_strips_only_a_clauth_codex_home ... ok test herdr::tests::unrelated_config_survives_verbatim ... ok test harness::tests::the_codex_scrub_is_managed_keys_plus_clauth_runtime_hygiene ... 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::a_bare_codex_pane_answers_the_adopted_login_never_the_claude_account ... ok test hook_context::tests::a_divisible_threshold_renders_as_k_and_an_indivisible_one_as_a_plain_number ... ok test herdr::tests::a_bare_codex_pane_without_an_adopted_login_publishes_nothing ... ok test herdr::tests::a_bare_pane_hosting_a_delegate_still_answers_the_global_account ... ok test herdr::tests::a_codex_pane_running_a_clauth_session_names_its_profile ... ok test herdr::tests::a_failing_snapshot_still_attempts_the_open ... ok test herdr::tests::a_heal_keeps_a_custom_key_binding_and_still_toggles_the_row ... ok test herdr::tests::a_hung_herdr_bounds_the_probe_at_the_timeout ... 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_split_open_does_not_take_popup_already_open_as_success ... ok test hook_context::tests::an_exact_million_threshold_renders_as_m ... 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::herdr_config_get_answers_every_default_with_no_profiles_toml ... 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 2026-09-26T09:31:45+00:00 clauth daemon: switched to 'beta' 2026-09-26T09:31:45+00:00 clauth daemon: switched off: all accounts spent test daemon::tests::tick_drains_both_queues_when_the_flock_is_free ... ok test herdr::tests::install_refuses_a_local_link_before_running_herdrs_installer ... ok test daemon::tests::tick_heals_a_broken_plugin_registration ... 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::plugin_heal_fails_loud_when_the_install_fails ... ok test herdr::tests::plugin_heal_fails_loud_when_the_remote_probe_fails ... ok test herdr::tests::plugin_heal_reinstalls_a_github_install_at_an_older_commit ... ok test herdr::tests::plugin_heal_reports_the_tag_commit_when_the_fresh_probe_has_no_commit ... ok test fallback::tests::burn_aware_never_holds_the_active_where_static_switches_on_both_walks ... 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 hook_note::tests::a_note_that_cannot_be_recorded_is_not_emitted ... ok test herdr::tests::the_compat_sweep_climbs_through_an_mcp_without_matching_its_rows ... ok test hook_note::tests::a_present_but_unusable_agent_id_is_refused ... ok test herdr::tests::the_foreground_chain_beats_a_delegate_row_in_the_sweep ... ok test herdr::tests::the_spawned_codex_watcher_keeps_the_harness ... ok test herdr::tests::the_split_right_knob_opens_a_split_without_sizing_flags_or_a_plain_retry ... 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 herdr::tests::the_split_top_knob_without_a_snapshot_splits_down_without_a_target ... ok test herdr::tests::the_watcher_rereport_keeps_the_codex_harness ... ok test herdr::tests::two_rows_on_one_pid_resolve_to_the_newest ... ok clauth: this removes the clauth plugin from herdr /build/.tmp9FL3Xk/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 /build/.tmp9FL3Xk/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::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_note::tests::an_event_name_is_bounded_without_being_held_to_the_id_charset ... ok test hook_context::tests::an_agent_scope_fire_stays_silent ... ok test hook_note::tests::an_id_that_cannot_spell_a_bare_filename_is_refused ... 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_note::tests::an_unusable_transcript_path_is_not_stored ... ok test hook_note::tests::both_note_spellings_render_the_shipped_copy ... ok test hook_context::tests::an_open_task_counts_until_its_result_lands ... 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_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::the_runtime_dir_sid_parser_accepts_only_per_session_dirs ... 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_compaction_re_announces_the_note_it_dropped ... 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::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 herdr::tests::saving_default_knobs_omits_the_herdr_block_until_one_moves ... ok test hook_note::tests::a_lapsed_window_omits_the_clause ... 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::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::a_task_past_the_threshold_with_nowhere_to_go_emits_the_approved_copy ... 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_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_replay_judges_a_third_party_members_windows_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 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 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 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 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 jobs_cli::tests::an_isolated_runs_row_is_marked_isolated ... ok test live_sessions::tests::only_opted_in_sessions_count_as_following_the_chain ... ok [] test jobs_cli::tests::an_unreadable_job_store_is_an_error_and_a_missing_one_is_not ... 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 live_sessions::tests::the_newest_swap_onto_an_account_is_the_one_reported ... ok test jobs_cli::tests::the_kill_column_names_whichever_deadlines_the_run_has ... ok test jobs_cli::tests::the_table_names_each_row_and_quotes_a_tail_on_its_own_line ... 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 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 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 list::tests::list_table_falls_through_to_the_wallet_over_a_non_canonical_bar_label ... ok test logline::tests::only_a_non_daemon_line_on_a_terminal_diverts_to_the_log_file ... ok test logline::tests::to_logfile_calls_the_durable_sink ... ok test logline::tests::the_census_diagnostics_route_through_the_durable_logfile_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 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 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 list::tests::list_table_stacks_disabled_and_canceled_rather_than_letting_one_win ... ok test live_sessions::tests::a_codex_row_round_trips_its_harness_tag ... 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_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::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-09-26T09:31:51+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 mcp::delegate_args_tests::args_carry_flag_matches_both_spellings ... 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-09-26T09:31:51+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:31:51+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 mcp::delegate_args_tests::fanout_is_error_requires_every_row_errored ... ok test lock::tests::cross_thread_with_state_lock_serializes ... ok 2026-09-26T09:31:52+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_job_left_running_fails_the_finalized_assertion ... ok test mcp::background_sandbox_tests::a_dropped_sender_ends_the_wait_without_reporting_a_stall ... 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_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::subagent_type_is_passed_as_the_agent_flag ... ok test mcp::delegate_args_tests::a_path_shaped_prompt_that_does_not_resolve_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::a_path_shaped_resume_id_is_refused_not_read ... ok test mcp::delegate_args_tests::the_permission_flags_reach_the_child ... 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_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::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::an_overlong_resume_id_is_echoed_bounded ... ok test mcp::digest_tests::the_sleeping_function_never_locks_and_the_locking_functions_never_sleep ... ok test mcp::delegate_args_tests::an_unfunded_fanout_member_refuses_the_call_before_any_spawn ... ok test mcp::format_tests::monitor_invalid_job_id_answers_prose_in_one_block ... 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::background_sandbox_tests::detached_task_still_running_at_teardown_never_touches_the_real_home ... ok 2026-09-26T09:31:54+00:00 clauth: herdr pane report-metadata timed out (killed; pane state working not reported) 2026-09-26T09:31:56+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::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::prompt_handle_at_cap_is_accepted ... 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::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::jobs::tests::base36_spans_its_whole_domain ... ok test mcp::digest_tests::a_third_party_profiles_leftover_oauth_cache_is_not_the_file_watched ... 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::jobs::tests::job_id_safety_rejects_traversal_and_separators ... ok test mcp::jobs::tests::new_job_id_is_unique_and_safe ... 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-09-26T09:31:58+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::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-09-26T09:31:59+00:00 clauth: herdr pane report-metadata exited exit status: 1 (pane state working not reported) 2026-09-26T09:31:59+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 test mcp::delegate_args_tests::fold_fanout_rows_pairs_each_envelope_with_its_own_account ... 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::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::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::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::jobs::tests::a_tombstone_reads_orphaned_not_done ... 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_row_renders_the_day_scale_spelling ... 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::an_orphaned_listing_row_carries_the_resume_handle_a_running_one_does_not ... ok test mcp::render::tests::both_carriers_spell_a_local_endpoint_the_same_way ... ok test mcp::jobs::tests::an_owned_live_record_silent_past_the_window_is_not_a_corpse ... ok test mcp::render::tests::delegate_fanout_prose_carries_headroom_per_target_and_one_digest ... ok test mcp::render::tests::delegate_prose_renders_background_and_sync_envelope ... ok test mcp::render::tests::delegate_prose_background_handle_carries_the_footer_and_the_digest ... ok test mcp::render::tests::delegate_fanout_results_prose_names_each_row_and_digest_last ... ok test mcp::render::tests::delegate_refusal_prose_names_the_spelled_targets ... ok test mcp::render::tests::denial_names_counts_repeats_and_unnamed_entries ... ok test mcp::render::tests::denial_names_drops_empty_and_names_the_unparseable ... ok test mcp::render::tests::delegate_prose_shrinks_the_finished_envelope ... ok test mcp::render::tests::denial_names_pluralizes_the_unnamed_group ... ok test mcp::jobs::tests::an_ownerless_legacy_record_keeps_the_silence_rule ... ok test mcp::render::tests::digest_prose_names_only_moved_observables ... ok test mcp::render::tests::envelope_prose_gives_a_cancelled_run_its_own_verdict_word ... 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_leaves_usage_bare_for_an_anthropic_served_by ... ok test mcp::render::tests::envelope_prose_qualifies_usage_for_a_non_anthropic_served_by ... ok test mcp::render::tests::fmt_cost_renders_four_decimals_trimmed_and_never_reads_free ... ok test mcp::render::tests::envelope_prose_renders_the_old_clause_without_a_served_by_label ... 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_names_every_window_and_warns ... ok test mcp::render::tests::live_usage_prose_dates_an_all_lapsed_unknown ... ok test mcp::render::tests::monitor_job_prose_renders_a_wrapped_scalar_self_report ... ok test mcp::render::tests::monitor_batch_prose_derives_the_unknown_clause_from_the_payload_count ... ok test mcp::render::tests::monitor_state_prose_lists_the_delegates_and_says_nothing_when_there_are_none ... ok test mcp::jobs::tests::claim_refuses_a_record_whose_self_report_disagrees_and_leaves_it_readable ... ok test mcp::render::tests::monitor_state_prose_names_no_overflow_when_nothing_was_left_out ... ok test mcp::render::tests::profiles_prose_handles_empty_roster_and_error_envelope ... ok test mcp::render::tests::monitor_job_prose_renders_running_invalid_and_done ... ok test mcp::render::tests::monitor_batch_prose_never_opens_with_a_blank_line ... 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::profiles_prose_renders_each_row_with_unknown_for_null_fields ... ok test mcp::render::tests::session_scope_prose_says_unknown_when_unresolved ... ok test mcp::render::tests::session_scope_prose_names_the_row_its_source_and_usage ... ok test mcp::render::tests::switch_profile_prose_renders_success_and_failure ... ok test mcp::render::tests::third_party_headline_all_lapsed_bars_fall_through_to_row ... 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_wallet ... 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_keep_the_plan_prefix ... 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_the_bare_word_with_no_verdict_row ... 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_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_healthy_row_is_name_and_rate_only ... ok test mcp::render::tests::throughput_prose_flags_appear_only_when_true_with_retry_delay ... 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::jobs::tests::gc_reaps_expired_running_and_done_keeps_fresh ... ok test mcp::render::tests::usage_prose_cuts_a_long_clause_and_ends_with_an_ellipsis ... ok test mcp::render::tests::usage_prose_documented_fields_read_english_and_unknown_keys_survive ... 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_a_set_flag_and_drops_unset_and_null ... ok test mcp::render::tests::usage_prose_renders_surviving_leaves_by_dotted_path ... ok test mcp::render::tests::usage_prose_renders_the_documented_fields_even_without_a_number ... ok test mcp::jobs::tests::gc_sweeps_stray_tmp_files ... ok test mcp::render::tests::usage_prose_shows_a_single_ttl_cache_figure_once ... ok test mcp::render::tests::usage_prose_treats_a_non_finite_string_as_not_a_figure ... 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_dates_an_unknown_and_never_marks_it_stale ... 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_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_renders_a_local_reset_stamp_with_a_countdown_not_the_raw_iso ... ok test mcp::render::tests::windows_prose_pins_the_reset_countdown_to_the_stored_delta ... ok test mcp::jobs::tests::job_files_and_dir_are_owner_only ... 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::switch_tool_tests::valid_switch_repoints_active_through_the_blocking_task ... 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::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::jobs::tests::the_corpse_sweep_touches_only_orphaned_running_files ... 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::tests::a_finished_stream_yields_only_its_terminal_envelope ... 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::an_unresolved_session_reads_unknown_not_empty ... ok test mcp::profiles_tool_tests::keyless_flag_names_only_the_keyless_third_party_profile ... ok test mcp::profiles_tool_tests::names_filter_selects_one_profile_case_insensitively ... ok test mcp::tests::a_non_zero_exit_still_hands_back_what_the_run_produced ... ok test mcp::profiles_tool_tests::prose_names_the_keyless_profile_and_leaves_the_others_unchanged ... 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::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::profiles_tool_tests::session_scope_resolves_the_tier_through_the_which_tiers ... ok test mcp::tests::a_resume_keeps_its_session_id_and_a_fresh_run_pins_a_new_one ... ok test mcp::startup_tests::startup_heals_a_broken_plugin_registration ... ok test mcp::tests::a_resume_refuses_the_cli_only_latest_shorthand ... ok test mcp::switch_tool_tests::a_switch_with_a_live_delegate_refuses_before_the_mutation ... ok test mcp::switch_tool_tests::unknown_target_is_rejected_without_stripping_live_creds ... ok test mcp::switch_tool_tests::the_live_jobs_guard_scopes_to_this_servers_own_runs ... ok test mcp::jobs::tests::no_id_a_reader_accepts_can_resolve_a_liveness_record ... 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_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_sinkless_reader_never_beats ... 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_tick_on_a_token_less_peer_builds_nothing_and_sends_nothing ... ok test mcp::tests::a_cancelled_run_finalizes_as_a_done_error_rather_than_stranding ... ok test mcp::tests::a_tick_sends_one_message_per_throttle_window_and_nothing_inside_it ... 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::an_abandoned_blocking_wait_ends_the_moment_its_run_is_handed_off ... 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-09-26T09:32:05+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-09-26T09:32:05+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::an_unparseable_envelope_still_hands_back_what_the_run_produced ... 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_heartbeat_that_raced_the_crossing_cannot_outlive_it ... 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::cancelling_a_live_job_flips_its_flag_and_the_reply_says_so ... ok test mcp::tests::a_mid_run_402_with_a_confirmed_unfunded_cache_names_the_balance_gone ... ok test mcp::tests::a_mid_run_402_without_a_cached_balance_says_the_recheck_found_nothing ... ok test mcp::tests::a_minted_provider_rides_the_record_to_the_served_by_clause ... ok test mcp::tests::delegate_env_caller_reauthority_and_clauth_keys_win ... ok test mcp::tests::a_non_402_failure_keeps_the_existing_reason ... ok test mcp::tests::delegate_env_strips_inherited_provider_routing ... ok test mcp::tests::delegate_env_strips_active_profile_custom_env ... 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::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::a_quarantined_keyed_third_party_target_is_admitted ... ok test mcp::tests::a_refused_job_ids_list_cancels_nothing ... 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::a_reserved_job_is_cancellable_before_its_task_starts ... 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_run_cancelled_before_it_spawns_says_the_window_was_not_spent ... ok 2026-09-26T09:32:05+00:00 clauth: delegate landed while `d-mui6whzj-75` 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::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::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::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_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::roster_rank_skips_a_third_party_bar_whose_reset_has_passed ... 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::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::both_deadlines_reach_a_running_check ... 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::a_mid_run_402_rechecks_the_balance_before_naming_it_gone ... ok test mcp::tests::cancelling_a_record_from_a_dead_epoch_of_this_pid_names_the_gone_server ... ok test mcp::tests::cancelling_a_tombstone_names_the_gone_server_and_renders_the_crash_copy ... 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::cancelling_an_ownerless_running_record_keeps_the_hedge ... 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::cancelling_an_unheld_self_owned_running_record_says_it_is_finishing ... 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::cancelling_an_unsafe_job_id_refuses_it_rather_than_hedging_it ... ok test mcp::tests::the_dead_key_recording_forward_survives_each_completion_arm ... ok test mcp::tests::depth_guard_also_refuses_above_one ... ok test mcp::tests::the_delegate_description_keeps_its_load_bearing_warnings ... ok test mcp::tests::depth_guard_names_the_fanout_targets_the_caller_spelled ... ok test mcp::tests::the_delegate_teardown_tail_is_the_rescue_leg_gated_on_isolation_alone ... ok test mcp::tests::the_delegate_description_names_the_usage_contract ... 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::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_monitor_entry_names_the_listing_and_the_interrupted_delegate ... ok test mcp::tests::fold_delegate_live_usage_wraps_non_objects_and_folds_objects ... ok test mcp::tests::the_profile_not_found_builder_names_the_fix ... ok test mcp::tests::the_production_heartbeat_passes_the_captured_session_id ... 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::the_profile_not_found_sentence_is_composed_in_one_place ... 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::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::monitor_batch_names_an_unknown_cause_once_at_the_tail ... 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::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::monitor_done_claims_the_job_before_the_result_renders ... ok test oauth::tests::a_state_lock_timeout_reads_as_contention_not_permissions ... 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::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::an_unparseable_402_exit_rechecks_the_balance_too ... 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::run_delegate_does_not_refuse_an_env_authenticated_third_party_profile ... ok test oauth::tests::an_adoption_flock_failure_splits_contention_from_fault ... ok test mcp::tests::run_delegate_does_not_refuse_an_oauth_profile ... ok test oauth::tests::canonicalize_scopes_matches_claude_code_order ... ok test mcp::tests::run_delegate_refuses_a_control_char_api_key_third_party_target ... 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::run_delegate_refuses_a_whitespace_api_key_third_party_target ... 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 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 mcp::tests::the_402_stems_cover_payment_and_quota_but_not_funding_or_timestamps ... 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_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-09-26T09:32:17+00:00 clauth: login for 'qp-dead' has expired: refresh token revoked or invalid: run clauth login qp-dead (flagged auth_broken) 2026-09-26T09:32:17+00:00 clauth: failed to persist auth_broken set for 'qp-dead': failed to read /build/.tmpXdomFX/.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_kick_rotation_carries_its_pair_back_when_the_persist_fails ... ok 2026-09-26T09:32:31+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::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 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-09-26T09:32:31+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-09-26T09:32:31+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 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 2026-09-26T09:32:31+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::profile_without_refresh_token_excluded ... ok test oauth::tests::refresh_body_matches_cc_field_set_and_scope ... ok test oauth::tests::adopt_live_rotation::a_standing_adopt_refusal_is_announced_once_per_state ... ok test oauth::tests::refresh_rejection_terminal_truth_table ... ok 2026-09-26T09:32:31+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::adopt_does_not_resurrect_a_deleted_profile ... ok 2026-09-26T09:32:31+00:00 clauth: 'adopt-quarantined' re-authenticated: auth_broken cleared 2026-09-26T09:32:31+00:00 clauth: adopted the live session's rotated login for 'adopt-quarantined' (the running claude refreshed first, so no token spent) test oauth::tests::adopt_live_rotation::adopting_a_live_rotation_lifts_a_stale_quarantine ... ok 2026-09-26T09:32:31+00:00 clauth: adopted the live session's rotated login for 'adopt-relink' (the running claude refreshed first, so no token spent) test oauth::tests::adopt_live_rotation::adopting_relinks_the_live_slot_so_the_next_rotation_reaches_claude ... ok 2026-09-26T09:32:31+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 2026-09-26T09:32:31+00:00 clauth: adopted the live session's rotated login for 'adopt-mcp' (the running claude refreshed first, so no token spent) test oauth::tests::adopt_live_rotation::an_adopt_keeps_the_live_files_mcp_oauth ... ok 2026-09-26T09:32:31+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::adopt_live_rotation::cached_anchor_allows_adopt_even_with_a_dead_stored_token ... ok test oauth::tests::adopt_live_rotation::refuses_a_blank_identity ... ok 2026-09-26T09:32:31+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::rolling_gate_fresh_sidecar_ready_without_refresh ... ok test oauth::tests::adopt_live_rotation::refuses_when_not_the_active_profile ... ok 2026-09-26T09:32:31+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-09-26T09:32:31+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::the_adopt_refusal_record_is_durable_on_disk ... ok 2026-09-26T09:32:31+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::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::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-09-26T09:32:43+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-09-26T09:32:43+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-09-26T09:32:43+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 2026-09-26T09:32:43+00:00 clauth: refresh for 'test-gate-invalid' failed: HTTP 400 2026-09-26T09:32:43+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::the_install_grace_is_ccs_refresh_window_shared_with_the_backup_verdicts ... ok test oauth::tests::gate_refreshes_an_expiring_token_under_a_live_session ... ok test oauth::tests::gate_refreshes_expiring_token_and_installs ... ok 2026-09-26T09:32:43+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::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::gate_session_token_ready_even_when_auth_broken ... ok test oauth_login::tests::authorize_rejection_has_no_printable_escape_hatch ... ok test oauth::tests::gate_third_party_bypasses ... 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 2026-09-26T09:32:43+00:00 clauth: refresh for 'test-gate-transient' failed: no response 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::tests::gate_transient_refresh_does_not_quarantine ... 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-09-26T09:32:43+00:00 clauth: the authorize callback refused the login: access_denied 2026-09-26T09:32:43+00:00 clauth: the authorize callback refused the login: an error code outside RFC 6749's set (withheld) test oauth_login::tests::callback_aborts_on_an_oauth_error_param_without_echoing_it ... ok test oauth_login::tests::callback_accepts_matching_state_and_extracts_the_code ... ok 2026-09-26T09:32:43+00:00 clauth: the authorize callback refused the login: access_denied 2026-09-26T09:32:43+00:00 clauth: the authorize callback refused the login: server_error test oauth_login::tests::callback_ignores_unrelated_requests_and_keeps_waiting ... ok 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_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 oauth::tests::gate_under_guard_adopts_a_cross_process_rotation_from_disk ... ok test out::tests::a_reachable_reader_gets_the_bytes ... ok test out::tests::a_full_disk_behind_a_stderr_redirect_still_panics - should panic ... ok test out::tests::any_other_write_failure_still_panics - should panic ... 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 2026-09-26T09:32:43+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 plugin_host::tests::embedded_tree_is_baked_in ... ok test oauth::tests::gate_under_guard_installs_a_sibling_refreshed_pair_as_is ... ok 2026-09-26T09:32:43+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 plugin_host::tests::install_sh_runs_self_heal_after_both_install_legs ... 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::gate_valid_token_ready_without_refresh ... ok test oauth::tests::guard_acquire_failure_names_the_filesystem_cause ... ok test oauth::tests::live_session_included_when_force_false ... ok test oauth::tests::live_session_included_with_force_true ... ok test out::tests::no_bare_print_macro_under_src ... ok 2026-09-26T09:32:43+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-09-26T09:32:43+00:00 clauth: refresh for 'gate-wire-dead' failed: HTTP 400 2026-09-26T09:32:43+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-09-26T09:32:43+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 plugin_host::tests::session_start_hook_wires_self_heal_beside_the_note ... ok test plugin_host::tests::the_delegate_hook_names_its_wake_summary_instead_of_the_host_placeholder ... ok test oauth::tests::restamp_never_parks_behind_a_held_rotation_lock ... ok 2026-09-26T09:32:55+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-09-26T09:32:55+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-09-26T09:32:55+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 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 2026-09-26T09:32:55+00:00 clauth: refresh for 'test-feed-degrade' failed: HTTP 400 2026-09-26T09:32:55+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-09-26T09:32:55+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-09-26T09:32:55+00:00 clauth: refresh for 'test-expired-backup' failed: HTTP 400 2026-09-26T09:32:55+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-09-26T09:32:55+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-09-26T09:32:55+00:00 clauth: refresh for 'test-feed-broken' failed: HTTP 400 2026-09-26T09:32:55+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 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 oauth::tests::adopt_live_rotation::refuses_a_stale_or_equal_mirror ... ok test poll::tests::a_stamp_exactly_at_the_interval_fetches_now ... ok 2026-09-26T09:32:55+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 test poll::tests::an_expired_stamp_fetches_now ... ok test poll::tests::no_cache_fetches_now ... ok 2026-09-26T09:32:55+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-09-26T09:32:55+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-09-26T09:32:55+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-09-26T09:32:55+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-09-26T09:32:55+00:00 clauth: refresh for 'rotate-keyed-third-party' failed: HTTP 400 test poll::tests::a_pending_first_delay_holds_the_tick_until_a_signal ... ok test oauth::tests::rotate_names_the_split_state_for_a_keyed_third_party_profile ... ok test poll::tests::a_zero_first_delay_ticks_immediately ... ok test poll::tests::signals_queued_during_the_first_delay_coalesce_into_one_tick ... 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 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 oauth::tests::rotate_one_inner_rotates_under_a_live_session ... ok test pricing::tests::a_price_row_after_a_removal_relists_the_key_from_its_date ... ok test oauth::tests::rotate_one_no_stamp_when_no_refresh_token ... ok test pricing::tests::a_removal_row_that_carries_rates_still_terminates_the_key ... 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::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 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 2026-09-26T09:33:07+00:00 clauth: refresh for 'rotate-refusal-dead' failed: HTTP 400 2026-09-26T09:33:07+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::rotated_tokens_do_not_resurrect_a_deleted_profile ... ok test oauth::tests::rotation_guard_is_independent_across_profiles ... ok test pricing::tests::capture_appends_only_on_change ... ok test pricing::tests::capture_caps_history_at_180 ... 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::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 test pricing::tests::distill_drops_a_resold_row_whatever_its_id_spells ... ok test oauth::tests::rotation_hook_disk_disarm_stops_the_stamp ... ok 2026-09-26T09:33:19+00:00 price feed: ai-pricelog index version missing (expected 4): parsing best-effort 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_override_inherits_missing_axes_from_base ... ok test pricing::tests::distill_keeps_quota_only_windows_as_window_only_entries ... ok test pricing::tests::distill_parses_overrides_and_effective_at ... 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_reads_an_override_window_without_re_deriving_its_timezone ... ok test pricing::tests::distill_skips_volume_tier_overrides ... ok test oauth::tests::rotation_hook_leaves_non_rolling_split_sidecars_alone ... ok test pricing::tests::distill_splits_a_mixed_provider_row_by_row ... 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::every_feed_file_failing_fails_the_whole_attempt ... ok test pricing::tests::free_variant_row_carried_verbatim_wins ... ok test pricing::tests::history_distills_first_party_keys_only ... ok test pricing::tests::future_effective_row_prices_nothing_until_its_date ... ok test pricing::tests::fixture_distills_resolvers_and_excludes_resellers ... ok test pricing::tests::ids_match_case_insensitively ... ok test oauth::tests::rotation_hook_never_overwrites_a_misfilled_sidecar ... ok test pricing::tests::history_drops_a_mixed_providers_resales_and_keeps_its_own ... ok test pricing::tests::no_active_entry_prices_nothing ... 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::later_window_entry_wins_when_both_match ... ok test pricing::tests::peak_state_flip_lands_on_the_hour_boundary_from_mid_hour ... ok test pricing::tests::peak_state_ignores_a_window_shadowed_by_a_later_flat_entry ... ok test pricing::tests::peak_state_for_profile_is_provider_bound ... ok test pricing::tests::peak_state_none_for_flat_rates_and_absent_sources ... ok test pricing::tests::peak_state_prices_the_two_window_shape_hour_by_hour ... ok test pricing::tests::peak_state_saturday_weekday_window_stays_off_peak ... ok test pricing::tests::peak_state_source_reads_a_providers_own_rows ... ok test pricing::tests::peak_state_walks_every_key_of_a_provider ... ok test pricing::tests::provider_registry_keeps_only_named_vendors ... ok test pricing::tests::rate_bracket_strip_applies_to_original_only ... 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_retries_date_stamp_strip ... ok test pricing::tests::rate_retries_date_stamp_strip_repeated ... ok test pricing::tests::history_rows_with_unmodeled_keys_parse_and_a_resold_one_stays_dropped ... ok test pricing::tests::rate_retries_provider_strip_one_segment ... ok test pricing::tests::rate_retries_provider_strip_two_segments ... ok test pricing::tests::rate_strips_bracket_suffix_before_match ... ok test pricing::tests::removal_row_terminates_the_key_from_its_date ... ok test pricing::tests::rate_retries_propagate_date_and_hour ... 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_history_rows_neither_price_nor_delist ... ok test oauth::tests::rotation_hook_stamps_enabled_profiles_and_preserves_the_mint ... ok test pricing::tests::store_history_dates_today_not_the_snapshot_log ... ok test pricing::tests::reseller_only_id_stays_a_dash ... ok test pricing::tests::store_walk_dash_before_the_oldest_row ... ok test pricing::tests::store_walk_prices_each_side_of_a_reprice_at_its_own_rate ... ok test pricing::tests::store_walk_keeps_pricing_past_the_newest_observation ... 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::store_walk_retro_dates_the_windowed_row_before_its_observation ... ok test pricing::tests::the_cost_lens_walks_each_model_and_date_once ... 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::the_catalog_keys_a_pair_on_the_source_the_feeds_spell ... ok test pricing::tests::time_window_hour_granularity_boundaries ... ok test pricing::tests::two_window_peak_offpeak_peak ... ok test pricing::tests::unknown_index_version_warns_and_still_parses ... ok test pricing::tests::two_live_keys_on_one_canonical_keep_first_seen_order ... ok test pricing::tests::variant_suffix_prices_the_base_id ... ok test pricing::tests::zai_quota_entries_mark_windows_but_never_price ... ok test oauth::tests::the_kick_reserves_the_shared_anthropic_request_slot ... ok test profile::tests::a_carried_array_of_tables_does_not_swallow_a_later_scalar ... 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 has been running for over 60 seconds test oauth_login::tests::pending_login_run_completes_the_loopback_door_against_its_redirect has been running for over 60 seconds test oauth_login::tests::pending_login_run_completes_the_paste_door_against_the_manual_redirect has been running for over 60 seconds test plugin_host::tests::detached_repoint_reports_skips_once_per_process has been running for over 60 seconds test plugin_host::tests::heal_detached_skips_when_the_gate_says_healthy has been running for over 60 seconds test plugin_host::tests::heal_detached_throttles_to_one_heal_per_window has been running for over 60 seconds test plugin_host::tests::preflight_gate_fires_on_every_broken_or_divergent_shape has been running for over 60 seconds test plugin_host::tests::preflight_gate_heals_when_a_registry_file_is_unparseable has been running for over 60 seconds test plugin_host::tests::preflight_gate_ignores_project_scope_entries has been running for over 60 seconds test plugin_host::tests::preflight_gate_stays_shut_on_a_healthy_registration has been running for over 60 seconds test plugin_host::tests::preflight_gate_stays_shut_when_nothing_of_ours_is_registered has been running for over 60 seconds test plugin_host::tests::preflight_gate_stays_shut_when_the_registry_files_are_absent has been running for over 60 seconds test plugin_host::tests::registry_remap_matches_both_separator_spellings has been running for over 60 seconds test plugin_host::tests::repoint_registry_names_a_skip_only_pass has been running for over 60 seconds test plugin_host::tests::repoint_registry_reroots_a_dead_path_and_names_a_missing_twin has been running for over 60 seconds test plugin_host::tests::repoint_registry_says_nothing_when_clean has been running for over 60 seconds test oauth_login::tests::a_dropped_paste_sender_keeps_the_loopback_door_open ... ok test plugin_host::tests::self_heal_says_nothing_when_healthy_and_reports_changes has been running for over 60 seconds test plugin_probe::tests::global_entry_drifted_flags_stale_command_and_args has been running for over 60 seconds test plugin_probe::tests::installed_records_empty_when_absent_or_other_plugin has been running for over 60 seconds test plugin_probe::tests::installed_records_parses_entry has been running for over 60 seconds test plugin_probe::tests::manual_mcp_wiring_detects_global_config has been running for over 60 seconds test plugin_probe::tests::marketplace_known_parses_source_repo has been running for over 60 seconds test plugin_probe::tests::wire_mcp_server_creates_file_when_absent has been running for over 60 seconds test plugin_probe::tests::wire_mcp_server_preserves_other_servers has been running for over 60 seconds test plugin_probe::tests::wire_mcp_server_replaces_non_object_mcpservers has been running for over 60 seconds test plugin_probe::tests::wire_mcp_server_writes_entry_and_preserves_other_fields has been running for over 60 seconds test presets::tests::a_builtin_name_refuses_both_writes_whatever_its_case has been running for over 60 seconds test presets::tests::a_hand_written_file_cannot_shadow_a_builtins_slot has been running for over 60 seconds test presets::tests::a_name_that_is_not_a_bare_filename_is_refused has been running for over 60 seconds test presets::tests::a_saved_preset_round_trips_and_joins_the_list_after_the_builtins has been running for over 60 seconds test presets::tests::an_alibaba_preset_pins_every_alias_and_the_subagent_row has been running for over 60 seconds test presets::tests::an_unparseable_preset_is_skipped_not_fatal has been running for over 60 seconds test presets::tests::delete_drops_the_file_and_then_reports_the_miss has been running for over 60 seconds test presets::tests::preset_file_and_dir_are_owner_only has been running for over 60 seconds test presets::tests::the_builtins_ship_with_their_endpoint_and_base_model has been running for over 60 seconds test pricing::tests::a_pre_source_cache_loads_with_empty_sources_and_stays_identity has been running for over 60 seconds test oauth_login::tests::pending_login_run_completes_the_loopback_door_against_its_redirect ... ok test pricing::tests::cache_round_trip_preserves_history has been running for over 60 seconds test pricing::tests::cache_round_trips_the_alias_table_and_old_caches_load_without_it has been running for over 60 seconds test oauth_login::tests::pending_login_run_completes_the_paste_door_against_the_manual_redirect ... ok test profile::tests::a_dead_listers_claim_does_not_count_as_a_collision ... ok test plugin_host::tests::detached_repoint_reports_skips_once_per_process ... ok test profile::tests::a_dead_members_list_hands_its_days_back_to_the_flag ... 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 plugin_host::tests::heal_detached_skips_when_the_gate_says_healthy ... 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 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::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::self_heal_says_nothing_when_healthy_and_reports_changes ... 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 plugin_probe::tests::global_entry_drifted_flags_stale_command_and_args ... 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 plugin_probe::tests::installed_records_empty_when_absent_or_other_plugin ... 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 plugin_probe::tests::installed_records_parses_entry ... 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 plugin_probe::tests::manual_mcp_wiring_detects_global_config ... ok test profile::tests::default_switch_percentages_are_pinned_at_98 ... ok test profile::tests::disabled_round_trips_through_config_toml ... ok test plugin_probe::tests::marketplace_known_parses_source_repo ... 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 plugin_probe::tests::wire_mcp_server_creates_file_when_absent ... ok test profile::tests::load_profile_seeds_usage_from_the_third_party_cache ... ok test plugin_probe::tests::wire_mcp_server_replaces_non_object_mcpservers ... ok test profile::tests::model_settings_round_trip_through_config_toml ... ok test profile::tests::login_is_oauth_doc_names_the_managed_half_and_points_at_the_routing_answer ... 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 profile::tests::one_claimant_or_none_raises_no_collision ... 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 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 presets::tests::an_unparseable_preset_is_skipped_not_fatal ... ok test profile::tests::preemptive_rotation_defaults_true_and_an_explicit_off_survives_a_round_trip ... ok test presets::tests::delete_drops_the_file_and_then_reports_the_miss ... ok test profile::tests::preferred_days_parse_drops_only_what_it_cannot_read ... ok test profile::tests::profile_config_disabled_defaults_false ... ok test profile::tests::profile_config_last_resort_defaults_false ... ok test presets::tests::preset_file_and_dir_are_owner_only ... ok test profile::tests::preferred_days_round_trip_through_config_toml ... ok test presets::tests::the_builtins_ship_with_their_endpoint_and_base_model ... 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 pricing::tests::a_pre_source_cache_loads_with_empty_sources_and_stays_identity ... ok test pricing::tests::cache_round_trip_preserves_history ... ok test pricing::tests::cache_round_trips_the_alias_table_and_old_caches_load_without_it ... ok test pricing::tests::cache_round_trips_the_store_dating_source ... 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::reset_display_pair_round_trips_and_is_omitted_at_the_default ... ok test profile::tests::a_captured_login_keeps_the_unmodelled_oauth_keys_it_was_minted_with ... 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::a_carried_profiles_toml_scalar_stays_top_level_beside_herdr ... 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::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::a_default_serve_table_carries_a_stray_key ... 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::a_modelled_key_moved_off_default_is_not_carried_beside_its_render ... ok test profile::tests::a_serve_table_round_trips ... ok test profile::tests::a_staged_pair_is_the_one_state_the_lock_free_read_reads_differently ... 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_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 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 plugin_host::tests::registry_remap_matches_both_separator_spellings ... ok test profile::tests::a_state_file_with_a_wrongly_typed_modelled_key_carries_nothing ... ok test profile::tests::usage_gates_round_trip_through_config_toml ... ok test profile::tests::a_stray_serve_key_is_dropped_while_the_table_renders_non_default ... 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::weekly_threshold_round_trips_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::disabling_persists_and_leaves_credentials_byte_unchanged ... ok test profile::tests::load_config_repairs_a_loose_clauth_tree ... ok test plugin_probe::tests::wire_mcp_server_preserves_other_servers ... 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::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_session_token_is_added_or_changed ... ok test profile::tests::reload_fingerprint_bumps_when_a_config_toml_is_added ... ok test profile::tests::reload_fingerprint_catches_a_non_newest_config_edit ... 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::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::reload_fingerprint_covers_the_codex_state_file ... ok test profile::tests::reload_fingerprint_drops_when_a_config_toml_is_removed ... 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 profile::tests::reload_fingerprint_ignores_a_bare_session_token_stamp ... ok test providers::alibaba::tests::every_shipped_alibaba_host_is_recognised ... ok test providers::alibaba::tests::not_logined_body_reads_as_auth_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::weekly_ratio_is_scaled_to_a_percentage ... ok test providers::alibaba::tests::the_tier_quota_turns_percentages_into_absolutes ... 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 profile::tests::reload_fingerprint_is_stable_with_no_change ... ok test providers::generic::tests::a_case_variant_window_literal_name_stays_a_literal ... 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 profile::tests::remove_drops_auth_broken_entry ... ok test providers::generic::tests::a_hint_401_stops_the_probe_and_reads_auth_expired ... 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_root_level_window_uses_the_usage_fallback_label ... ok test providers::generic::tests::a_remaining_fraction_with_no_reset_sibling_is_not_a_window ... ok test providers::generic::tests::a_zero_percentage_key_beats_the_remaining_fraction ... ok test providers::generic::tests::an_array_under_a_window_literal_key_keeps_the_literal ... 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::a_candidate_401_is_just_another_miss ... ok test profile::tests::rename_carries_auth_broken_entry ... 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_scalar_balance_shape_yields_rows_not_bars ... ok test providers::generic::tests::scan_zai_200_error_envelope_is_rejected ... ok test providers::generic::tests::scan_zai_quota_shape_yields_bars_and_plan ... 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_lone_bucket_drives_the_bars_even_when_it_is_not_named_general ... 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::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::a_zero_verdict_publishes_the_plan ... 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_matches_its_anthropic_base_url ... ok test profile::tests::resolving_a_home_with_no_sandbox_held_panics ... 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::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::minimax::tests::the_video_bucket_is_a_row_and_never_a_bar ... ok test providers::minimax::tests::stats_claim_no_plan_label ... ok test providers::minimax::tests::the_video_row_states_its_own_window_lengths ... ok test providers::openrouter::tests::both_responses_parse_wire_shape ... ok test providers::openrouter::tests::credits_without_required_numbers_fails_to_parse ... ok test providers::openrouter::tests::from_base_url_dispatches_openrouter ... ok test providers::openrouter::tests::from_base_url_rejects_host_extension_and_userinfo ... ok test providers::openrouter::tests::key_endpoint_absent_drops_only_the_key_rows ... ok test providers::openrouter::tests::key_cap_and_free_tier_rows_append_when_present ... ok test providers::openrouter::tests::key_response_without_data_fails_to_parse ... ok test providers::tests::a_userinfo_authority_is_not_the_provider_it_is_prefixed_with ... ok test providers::openrouter::tests::stats_builds_wallet_rows ... ok test providers::openrouter::tests::remaining_danger_boundary_tracks_the_rendered_value ... ok test providers::tests::api_origin_strips_path_to_scheme_host ... ok test profile::tests::save_app_state_does_not_resurrect_a_modelled_key_from_disk ... ok test providers::tests::console_url_answers_none_for_a_base_url_the_provider_does_not_own ... 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::api_origin_none_without_scheme_delimiter ... ok test providers::tests::console_url_is_the_vendor_page_per_provider ... ok test providers::tests::api_origin_keeps_port_drops_query_and_fragment ... ok test providers::tests::balance_wallets_keeps_zero_amount_wallets_in_row_order ... ok test providers::tests::deepseek_rejects_plain_http_and_unrelated_hosts ... ok test providers::tests::funded_wallets_drops_empty_wallets_and_keeps_row_order ... ok test providers::tests::publishes_windows_names_every_provider ... ok test providers::tests::parse_balance_takes_an_amount_and_a_currency_and_nothing_else ... 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 profile::tests::save_app_state_keeps_unknown_keys_the_file_already_holds ... ok test providers::zai::tests::quota_error_envelope_rejected ... ok test providers::zai::tests::window_label_decodes_unit_number ... ok test providers::zai::tests::quota_yields_bars_plan_and_detail_rows ... ok test providers::zai::tests::zai_date_param_is_space_separated_utc ... ok test runtime::tests::a_chain_opt_in_survives_only_where_the_executor_can_swap ... 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 profile::tests::save_profile_keeps_unknown_config_toml_keys ... ok test runtime::tests::a_convergence_admits_only_rotatable_current_to_refreshless_selected ... 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_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::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::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::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 profile_json::tests::tier_label_reports_the_real_tier_when_not_canceled ... ok test profile_json::tests::tier_label_reports_the_tier_of_a_canceled_account ... ok test providers::tests::disk_cache_missing_reads_as_none ... ok test providers::tests::disk_cache_roundtrips_stats ... 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_bare_session_marker_is_invisible_to_has_live_session ... ok test runtime::tests::a_corrupt_in_flight_record_refuses_the_write_fail_closed ... ok test runtime::tests::a_symlink_loop_reads_as_unresolvable ... 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-09-26T09:34:08+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_foreign_holder_of_our_own_marker_never_blocks_acquire ... ok test runtime::tests::a_ledger_row_outlives_its_profile_and_stays_authoritative ... ok test runtime::tests::an_entry_that_vanished_mid_walk_reads_as_unresolvable ... ok test runtime::tests::a_namespaced_write_is_refused_while_a_sweeps_delete_is_in_flight ... ok test runtime::tests::an_unopenable_marker_reads_as_live_and_is_never_unlinked ... ok test runtime::tests::a_pid_dead_row_falls_back_to_the_age_bound ... ok 2026-09-26T09:34:08+00:00 clauth: session 5700-22 converged onto conv-a's rolling token test runtime::tests::a_pre_arming_session_converges_onto_the_armed_sidecar_on_one_poll ... ok 2026-09-26T09:34:08+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::both_fake_mode_publish_paths_preserve_the_executable_bit ... 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_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-09-26T09:34:09+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 (/build/.tmp6flOHV/.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_swap_holds_both_of_the_intended_members_liveness_markers ... ok test runtime::tests::a_swap_keeps_both_members_marked_live_and_still_rotatable ... 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::copy_file_creates_missing_parent_dirs ... 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 test runtime::tests::copy_file_leaves_no_tmp_artifact ... ok test runtime::tests::copy_file_overwrites_existing_destination ... 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::copy_file_visible_state_is_never_torn ... ok test runtime::tests::copy_tree_visible_state_is_never_torn ... ok 2026-09-26T09:34:09+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 (/build/.tmpIGw9zz/.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::acquire_creates_runtime_and_pid_file ... ok test runtime::tests::fake_convergence_takes_the_later_last_refresh_over_the_newer_mtime ... ok test runtime::tests::fake_convergence_breaks_a_full_tie_by_the_boundarys_prior ... ok test runtime::tests::acquire_isolates_credentials_from_real_home ... 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::acquire_stamps_the_pre_upgrade_liveness_marker_for_both_flavors ... 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_unreadable_current_source_does_not_converge ... ok test runtime::tests::an_unreadable_profile_dir_reads_as_live_not_idle ... ok test runtime::tests::an_unstampable_child_is_killed_not_run_unguarded ... 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::gc_takes_no_state_flock_when_no_bare_marker_exists ... ok test runtime::tests::build_runtime_dir_isolated_settings_drop_operator_config ... ok test runtime::tests::build_runtime_dir_isolated_omits_operator_extensions ... 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::build_runtime_dir_real_keeps_invalid_runtime_credentials_for_retry ... ok test runtime::tests::build_runtime_dir_real_preserves_live_runtime_credentials ... ok test runtime::tests::link_mode_of_reads_the_transport_off_the_existing_tree ... 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::live_session_blocks_liveness_probe ... ok test runtime::tests::build_runtime_dir_writes_settings_not_symlink ... 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::mirror_credentials_newer_runtime_wins ... ok test runtime::tests::mirror_credentials_seeds_missing_side ... 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::mirror_credentials_skips_empty_credentials ... ok test runtime::tests::mirror_credentials_skips_invalid_json ... ok test runtime::tests::dropping_one_shared_session_leaves_the_sibling_intact ... 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-09-26T09:34:09+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::mirror_tree_converges_two_names_on_one_target_by_clock ... ok test runtime::tests::mirror_tree_breaks_an_mtime_tie_only_inside_an_alias_class ... ok test runtime::tests::mirror_tree_alias_echo_does_not_outrank_a_siblings_real_edit ... ok test runtime::tests::mirror_tree_creates_canonical_side_dir_owner_only ... ok test runtime::tests::mirror_tree_follows_a_directory_link ... ok test runtime::tests::mirror_tree_does_not_write_through_a_runtime_side_symlink ... ok test runtime::tests::mirror_tree_converges_two_names_when_the_first_sorted_is_newest ... 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_converges_two_directory_aliases_on_one_target ... ok test runtime::tests::mirror_tree_skips_top_level_settings_and_credentials ... 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::mirror_tree_reads_a_canonical_symlinks_target_not_the_link ... ok test runtime::tests::mirror_tree_seeds_canonical_only_file_to_runtime ... ok test runtime::tests::mirror_tree_seeds_canonical_only_nested_to_runtime ... ok test runtime::tests::mirror_tree_survives_a_dangling_runtime_link ... ok test runtime::tests::orphaned_keychain_item_follows_the_dir ... ok test runtime::tests::mirror_tree_writes_through_a_canonical_symlink ... ok test runtime::tests::mirror_tree_seeds_runtime_only_file_to_canonical ... ok test runtime::tests::paired_dir_names_key_on_link_mode ... ok test runtime::tests::mirror_tree_propagates_runtime_edit_to_canonical ... 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_seeds_runtime_only_nested_to_canonical ... ok test runtime::tests::mirror_tree_still_seeds_both_copies_of_a_benign_alias ... ok test runtime::tests::resolve_credential_winner_prefers_recency_then_expiry ... ok test runtime::tests::prune_removes_dead_keeps_alive ... ok test runtime::tests::prune_reports_an_unreadable_marker_dir_as_unknown_not_zero ... ok test runtime::tests::rotation_is_blocked_by_a_live_session_only_on_macos ... ok test runtime::tests::prune_with_two_live_sessions_returns_two ... ok test runtime::tests::pid_liveness_reads_self_alive_and_a_reaped_child_dead ... ok test runtime::tests::prune_removes_a_dangling_directory_link ... ok test runtime::tests::scrub_profile_env_drops_managed_and_active_custom_keys ... ok test runtime::tests::seed_degrade_disposition_retries_only_the_classified_transient ... ok test runtime::tests::fake_mode_second_session_does_not_rebuild_the_tree ... ok test runtime::tests::session_seed_arm_selection ... ok test runtime::tests::fake_mode_shares_one_tree_across_two_sessions ... ok 2026-09-26T09:34:09+00:00 clauth: upgrade-compat marker /build/.tmpmcgU6a/sessions/4242-0 not lockable: lock acquisition failed because the operation would block test runtime::tests::stamp_legacy_marker_declines_a_marker_another_holder_owns ... 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-09-26T09:34:09+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::fake_mode_stamps_a_second_compat_marker_only_for_isolated ... ok 2026-09-26T09:34:09+00:00 clauth: watchdog kept canonical credentials (canonical written more recently than runtime); not overwriting with runtime re-login bytes test runtime::tests::sync_falls_back_to_expires_at_on_equal_mtime ... ok test runtime::tests::sync_credentials_unlocked_concurrent_same_link_consistent_end_state ... ok test runtime::tests::gc_collects_a_crashed_sessions_keychain_item_and_spares_a_live_one ... ok test runtime::tests::sync_no_op_when_link_missing ... ok test runtime::tests::sync_no_op_when_link_is_symlink ... 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_no_write_when_bytes_identical ... 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_runtime_wins_when_written_more_recently ... ok test runtime::tests::sync_skips_invalid_json ... ok test runtime::tests::sync_skips_empty_credentials ... ok test runtime::tests::sync_writes_canonical_when_differs ... ok test runtime::tests::gc_collects_a_dead_codex_home_and_spares_the_live_and_the_bare ... 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 test runtime::tests::the_census_delete_runs_through_the_in_flight_gate ... ok 2026-09-26T09:34:09+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_leaves_profile_children_that_only_look_like_runtime_dirs ... ok test runtime::tests::gc_prunes_a_dead_bare_session_marker ... ok test runtime::tests::gc_removes_a_shared_pair_without_rescuing ... ok test runtime::tests::the_gc_keychain_recheck_stamps_under_the_state_flock ... ok test runtime::tests::gc_removes_stale_runtime_but_spares_live ... 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 2026-09-26T09:34:09+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-09-26T09:34:09+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::the_namespaced_keychain_sinks_require_a_durable_ownership_witness ... ok test runtime::tests::gc_spares_a_swapped_members_marker_dir_while_the_session_lives ... 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 test runtime::tests::gc_spares_an_isolated_tree_with_a_live_marker ... 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::gc_spares_the_keychain_item_a_reminted_acquire_claims_mid_sweep ... ok test runtime::tests::build_runtime_dir_fake_preserves_live_runtime_credentials ... ok test runtime::tests::guard_home_project_settings_appends_setting_sources_only_at_home ... 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::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::has_live_session_true_when_any_session_alive ... ok test sessions::tests::an_isolated_run_performs_no_prune ... ok test runtime::tests::live_isolated_stores_skip_codex_profiles_by_roster ... ok test runtime::tests::live_namespaced_keychain_services_derives_every_runtime_dir ... ok test runtime::tests::live_namespaced_keychain_services_fails_closed_when_a_profile_dir_is_unreadable ... ok test runtime::tests::live_namespaced_keychain_services_fails_closed_when_the_profiles_root_is_unreadable ... ok test runtime::tests::build_runtime_dir_skips_a_publish_in_flight ... ok test runtime::tests::live_session_count_counts_only_alive ... ok test runtime::tests::namespaced_keychain_owner_records_service_profile_session_owner_only ... ok test runtime::tests::no_live_session_is_not_rotatable ... ok test runtime::tests::one_collectors_clear_cannot_erase_anothers_live_tracking ... ok test runtime::tests::one_rotatable_session_refuses_for_the_whole_profile ... ok test runtime::tests::poll_does_nothing_until_the_daemon_names_a_member ... ok 2026-09-26T09:34:09+00:00 clauth: session 5700-81 swapped onto polled-b 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::runtime_settings_and_seed_are_owner_only ... ok test runtime::tests::runtime_settings_retightens_a_loose_file_with_current_bytes ... ok test sessions::tests::exact_observation_survives_both_runs_and_shows_in_listing ... 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::session_teardown_holds_the_state_flock_once ... ok 2026-09-26T09:34:09+00:00 clauth: upgrade-compat marker /build/.tmpvIsCfq/.clauth/profiles/foreign/sessions/5700-85 not lockable: lock acquisition failed because the operation would block test runtime::tests::teardown_leaves_a_pre_upgrade_marker_it_never_owned ... ok 2026-09-26T09:34:09+00:00 clauth: upgrade-compat marker /build/.tmpqH9GbJ/.clauth/profiles/foreign-b/sessions/5700-86 not lockable: lock acquisition failed because the operation would block test runtime::tests::the_mirror_walks_past_a_publish_in_flight ... ok test runtime::tests::teardown_leaves_a_swapped_compat_marker_it_never_owned ... ok test runtime::tests::the_mirror_write_counter_counts_a_same_second_publish ... ok test runtime::tests::teardown_leaves_an_untouched_durable_entry_on_its_own_inode ... ok 2026-09-26T09:34:10+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: final sync failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: final settings.json sync failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+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::teardown_removes_every_marker_a_swap_stamped ... ok 2026-09-26T09:34:10+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: final sync failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: final settings.json sync failed: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+00:00 clauth: timed out after 0s acquiring the state lock; another clauth process holds ~/.clauth/.lock 2026-09-26T09:34:10+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::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-09-26T09:34:11+00:00 clauth: cannot stamp the in-flight-delete record for Claude Code-credentials-c56fc9bd (failed to parse /build/.tmpfMEnhd/.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_pre_upgrade_marker_dir_survives_until_the_last_session_leaves ... 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 test sessions::tests::rescuable_sidecar_admits_only_known_session_state_trees ... 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 test runtime::tests::the_tree_build_skips_a_publish_in_flight ... 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 runtime::tests::has_live_session_true_with_mixed_alive_and_dead ... 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::updated_iso_is_the_utc_machine_shape_and_clamps_pre_epoch ... 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 runtime::tests::seed_claude_json_leaves_existing_real_copy_untouched ... 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_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::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_cli::tests::sessions_bad_flag_maps_to_exit_two ... ok test sessions::tests::locate_answers_from_both_stores_by_stem_alone ... ok test sessions_cli::tests::success_maps_to_exit_zero ... 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_cli::tests::switch_receipt_names_when_the_move_lands ... ok test sessions::tests::prune_keeps_a_live_isolated_owner_and_reaps_it_once_dead ... ok 2026-09-26T09:34:11+00:00 clauth: refusing to prune session owners: the global transcript walk was incomplete test sessions::tests::prune_refuses_a_walk_that_skipped_a_symlinked_project_dir ... ok 2026-09-26T09:34:11+00:00 clauth: refusing to prune session owners: the global transcript walk returned nothing test sessions::tests::prune_refuses_an_empty_walk ... ok 2026-09-26T09:34:11+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_cli::tests::the_sessions_listing_rejects_extra_arguments ... 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-09-26T09:34:11+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-09-26T09:34:11+00:00 clauth: rescue depth cap reached at /build/.tmpH6xEnQ/.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 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 sessions::tests::sidecar_rescue_never_follows_a_symlink_into_the_global_store ... 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 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 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::a_nested_isolated_transcript_does_not_shadow_latest ... 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 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::latest_refuses_rather_than_substituting_when_an_isolated_run_holds_the_newest ... 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 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 sessions_cli::tests::resume_candidates_excludes_disabled_accounts ... ok test start::tests::the_managed_config_verdict_refuses_the_chain_killers_and_warns_on_the_rest ... ok test sessions_cli::tests::resume_candidates_falls_back_when_the_default_is_disabled ... 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 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 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 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 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 sessions_cli::tests::switch_points_the_row_at_the_named_profile_through_the_registry_seam ... ok test status::status_parse::missing_optional_fields_default_gracefully ... ok test status::status_parse::nullable_resolved_at_is_none ... ok test status::status_parse::null_affected_components_yields_no_transitions ... 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 Error: session '4242-0' is a codex session; switch is claude-only test status::status_parse::unknown_update_status_falls_back_to_other ... ok 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 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 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 tests::api_key_helper_tests::write_api_key_emits_no_trailing_newline ... ok test tests::api_reauth_snapshot_carries_the_stored_chain_through ... 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::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 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::a_codex_profiles_config_is_never_read_here ... ok test tests::bare_invocation_selects_no_subcommand ... ok 2026-09-26T09:34:11+00:00 clauth: settings.json sync paused — /build/.tmpuOdS9u/.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-09-26T09:34:11+00:00 clauth: settings.json sync paused — /build/.tmpuOdS9u/.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 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 settings_sync::tests::a_config_that_does_not_parse_aborts_the_tick ... 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 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-09-26T09:34:11+00:00 clauth: /build/.tmpJiETSD/.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-09-26T09:34:11+00:00 clauth: settings.json sync paused — /build/.tmpJiETSD/.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 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 test tests::collect_api_reauth_snapshot_headless_with_no_stored_endpoint_refuses ... ok test tests::completions_prints_for_a_shell_and_installs_with_an_optional_shell ... 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 settings_sync::tests::isolated_runtime_neither_wins_nor_receives ... ok 2026-09-26T09:34:11+00:00 clauth: skipping rescue of /build/.tmpgfryrW/.clauth/profiles/iso/runtime-isolated/plans, /build/.tmpgfryrW/.claude/plans is a symlink 2026-09-26T09:34:11+00:00 clauth: skipping rescue of /build/.tmpgfryrW/.clauth/profiles/iso/runtime-isolated/tasks/t1.json, /build/.tmpgfryrW/.claude/tasks/t1.json is a symlink test sessions::tests::sidecar_rescue_never_writes_through_a_symlinked_destination ... 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 settings_sync::tests::known_paths_reach_per_session_copies_and_still_exclude_isolated ... ok test tests::devices_parses_its_five_verbs ... ok test settings_sync::tests::per_profile_env_never_leaves_its_own_runtime ... ok test tests::dump_openapi_conflicts_with_every_daemon_starting_or_probing_flag ... ok test settings_sync::tests::runtime_copies_are_owner_only_and_the_base_keeps_its_posture ... ok test settings_sync::tests::shared_env_key_dropped_by_the_winner_is_removed_from_targets ... ok test tests::dump_openapi_ends_ok_when_the_reader_is_gone ... ok test tests::enable_takes_exactly_one_name ... ok test settings_sync::tests::shared_field_reaches_the_base_and_every_sibling_runtime ... ok test tests::every_bundled_hook_command_parses_as_a_subcommand ... ok 2026-09-26T09:34:11+00:00 clauth: settings.json sync paused — /build/.tmpjv4S7c/.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 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 settings_sync::tests::the_pause_warning_latches_and_clears_on_recovery ... ok test tests::dump_openapi_writes_the_served_bytes_verbatim ... ok test tests::herdr_install_parses_with_every_flag ... ok test tests::herdr_uninstall_parses_with_every_flag ... ok test settings_sync::tests::unparseable_member_is_skipped_not_clobbered ... 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::list_takes_all_and_disabled_flags_with_neither_required ... ok test tests::help_and_version_exit_zero_while_parse_failures_exit_two ... ok test start::tests::a_refused_with_fallback_start_never_probes_the_disk ... ok test tests::login_bare_name_is_oauth_mode ... 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_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::hidden_entry_points_parse_but_never_appear_in_help ... ok test tests::listen_parses_an_address_and_composes_with_the_start_modes ... ok test tests::login_rejects_flag_shaped_profile_names_and_a_second_positional ... ok test tests::login_value_flags_reject_a_missing_or_flag_shaped_value ... ok test tests::reauth_confirmed_only_on_explicit_yes ... ok test tests::login_setup_token_flag_and_its_unprompted_replace ... ok ⠋ clauth: preparing runtimetest tests::resolve_reauth_base_url_a_tty_prompts ... ok test tests::resolve_reauth_base_url_flag_wins_empty_included_and_ignores_the_terminal ... ok test tests::resolve_reauth_base_url_headless_reuses_the_stored_endpoint ... ok test tests::read_manual_code_from_accepts_one_bounded_line ... ok test tests::resolve_reauth_base_url_headless_with_no_stored_endpoint_bails ... ok test tests::per_subcommand_help_carries_that_commands_prose ... ok test tests::start_args_accessors_map_flags_to_the_runtime_types ... ok test tests::login_setup_token_excludes_api_mode_and_bare_yes ... ok test tests::start_auto_composes_with_with_fallback ... ok test tests::start_auto_folds_a_bare_first_argument_too ... ok test tests::start_auto_refuses_a_bare_hyphen_argument_without_a_separator ... ok test tests::start_auto_defers_the_account_and_keeps_the_positional_free ... ok test tests::start_consumes_a_leading_double_dash_separator_and_forwards_the_rest ... ok test tests::start_auto_folds_the_positional_back_into_claude_args ... ok test tests::start_isolated_flag_precedes_the_name ... ok test tests::start_forwards_claude_args_verbatim_including_leading_hyphens ... ok test tests::start_no_longer_takes_the_removed_rescue_flags ... ok test tests::start_without_auto_keeps_the_named_target ... ok test tests::start_with_fallback_flag_parses_and_defaults_off ... ok test tests::start_with_fallback_conflicts_with_isolated ... ok test tests::start_requires_a_profile_name ... ok test tests::start_without_auto_requires_a_profile ... ok test tests::resume_and_info_take_a_target_with_resume_alone_taking_a_profile ... ok test tests::static_token_bare_restores_and_clear_takes_an_unprompted_yes ... ok test runtime::tests::the_fake_mode_mirror_converges_under_concurrent_publishes ... ok 2026-09-26T09:34:16+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::admit_runs_the_with_fallback_refusals_and_clears_without_the_flag ... ok 2026-09-26T09:34:16+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-09-26T09:34:16+00:00 clauth: skipping rescue, another isolated session is still live 2026-09-26T09:34:16+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-09-26T09:34:16+00:00 clauth: failed to rescue /build/.tmp3gkvFm/.clauth/profiles/iso/runtime-isolated/file-history/sess-a/edit-1.json: File exists (os error 17) 2026-09-26T09:34:16+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 2026-09-26T09:34:16+00:00 clauth: refusing to prune session owners: the global transcript walk was incomplete 2026-09-26T09:34:16+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 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 tests::static_token_verdicts::the_reauth_confirm_promises_a_survivor_only_where_one_survives ... ok test start::tests::with_fallback_refuses_an_isolated_session ... ok test tests::switch_splits_the_forms_on_arity_alone ... ok test tests::status_requires_json_and_treats_disabled_as_an_alias_for_all ... ok test tests::the_bare_profile_form_is_deprecated_in_the_help ... ok test start::tests::with_fallback_refuses_when_no_daemon_is_running ... ok test tests::the_isolated_help_says_the_session_outlives_the_runtime ... ok test tests::the_paste_prompt_ends_on_a_landed_door_or_a_finished_worker ... ok test start::tests::with_fallback_refuses_when_the_daemon_lock_cannot_be_read ... ok Error: no clauth daemon is running test tests::an_absent_daemon_reports_exit_one_not_the_usage_code ... ok Error: failed to parse /build/.tmpqTamer/.clauth/codex-profiles.toml Caused by: TOML parse error at line 1, column 21 | 1 | profiles = [not toml | ^ unclosed array, expected `]` test tests::the_retired_token_flags_are_unknown_arguments ... ok test tests::theme_accepts_both_spellings_ahead_of_a_subcommand ... ok test tests::a_corrupt_codex_roster_fails_the_claude_only_verbs_as_a_runtime_error ... ok test tests::api_key_helper_tests::api_key_for_profile_err_for_missing_profile ... ok test tests::api_key_helper_tests::api_key_for_profile_is_static_across_calls ... ok test tests::which_and_sessions_take_only_json ... 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::api_key_helper_tests::api_key_for_profile_none_when_profile_has_no_key ... ok test tests::api_key_helper_tests::api_key_for_profile_returns_stored_key ... ok test token_ledger::tests::record_never_stores_today ... ok test token_ledger::tests::record_then_apply_survives_transcript_loss ... 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 test token_ledger::tests::watermark_advances_across_idle_days_and_is_monotonic ... ok sk-dispatch-xyztest tokens::tests::a1_fixture_corrects_input_to_uncached_tail ... ok test tests::api_key_helper_tests::dispatch_api_key_helper_returns_ok_for_profile_with_key ... ok test tokens::tests::a2_fixture_keeps_numbers_marks_shape ... ok test tokens::tests::b_fixture_reads_no_cache_reporting ... ok Error: profile 'strat' not found available: test tests::bad_profile_name_is_a_usage_error::a_bare_unknown_word_exits_2 ... ok Error: profile 'strat' not found available: test tests::bad_profile_name_is_a_usage_error::delete_with_an_unknown_profile_exits_2 ... 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::cli_codex_delete_refuses_while_a_rotation_holds_the_lock ... ok test tests::cmd_start_auto_refuses_an_empty_chain ... ok test tests::cli_delete_refuses_while_a_rotation_holds_the_lock ... ok test tests::cmd_start_explain_auto_runs_the_with_fallback_refusals ... 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 would start on 'a' * a ok usage 4m ago b ok usage 4m ago 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 tests::cmd_start_explain_launches_nothing ... ok 2026-09-26T09:34:16+00:00 clauth: codex refresh for 'cx' failed: chain is dead (expired) test tests::codex_start_refuses_a_quarantined_chain_by_name ... ok test tokens::tests::current_bucket_bounds_are_inclusive_start_to_today ... ok test tests::codex_start_refuses_with_fallback_by_name ... ok test tests::disabled_target_refusal::cmd_start_explain_refuses_a_disabled_target ... ok test tokens::tests::e_fixture_fully_cached_whole_prompt_zeroes_input ... ok test tests::disabled_target_refusal::cmd_start_refuses_disabled_target_before_acquiring_a_runtime ... ok test tests::disabled_target_refusal::cmd_switch_refuses_disabled_target_with_no_side_effects ... 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 tests::disabled_target_refusal::switch_refuses_a_disabled_target_through_dispatch ... ok test tokens::tests::identity_skips_pairs_after_a_read_absent_row ... ok Error: test tokens::tests::identity_slack_floor_covers_small_early_pairs ... ok'cx' is a codex profile; disable is claude-only test tokens::tests::is_anthropic_recognition ... ok test tests::each_claude_only_verb_names_itself_in_the_codex_refusal ... 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 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 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-09-26T09:34:17+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::a_failed_restore_error_owns_the_flag_it_flipped ... 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::static_token_verdicts::a_rolling_bearer_with_no_backup_fails_loud ... ok 2026-09-26T09:34:17+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 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 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 throughput::tests::rate_limit_recorded_and_expires ... 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 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::backfill_fills_hours_when_corpus_totals_match ... ok test tokens::tests::backfill_leaves_mismatched_rows_untouched_and_marks_done ... 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::backfill_routes_crossing_cutoff_lines_by_line_date ... ok test tokens::tests::backfill_runs_once_and_second_run_visits_nothing ... ok test tokens::tests::base_stats_parsed_correctly ... ok test tokens::tests::cross_file_duplicate_lands_in_the_path_sorted_winners_hour ... ok test tokens::tests::collapse_keeps_first_occurrence_order ... 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 tui::app::tests::a_real_linked_payload_reads_as_a_local_link ... 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 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 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_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_session_from_the_other_front_is_discarded_rather_than_stored ... 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_failed_day_list_save_keeps_memory_on_the_disk_value_and_names_the_error ... 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::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::a_landed_door_closes_the_code_field ... 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::a_model_studio_account_satisfies_both_login_predicates ... 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_press_follows_the_shown_list_when_another_writer_raced_it ... 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_saved_preset_applies_onto_another_account ... ok 2026-09-26T09:34:17+00:00 clauth: 2 accounts claim sat: 'work', 'personal' — the chain returns to whichever of them reads clear first 2026-09-26T09:34:17+00:00 clauth: sat: 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_tick_re_tallies_live_sessions_that_appeared_after_startup ... ok test tui::app::tests::collect_tokens_carries_the_auth_broken_flag ... ok test tui::app::tests::adopting_a_divergence_writes_the_targets_endpoint_into_the_live_settings ... 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 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::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::bootstrap_one_shot_skips_a_non_fresh_active_read ... 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::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::a_card_edit_writes_its_member_wherever_the_cursor_points ... 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::delete_word_removes_run_left_of_caret ... ok test tui::app::tests::delete_word_respects_caret_position ... ok test tui::app::tests::clear_session_token_disarms_a_flag_only_account_with_no_other_login ... 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_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::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::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::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::bootstrap_one_shot_switches_off_a_fresh_exhausted_active ... 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::confirming_a_rotate_under_a_live_session_reaches_the_rotate ... 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::a_committed_relogin_anchors_the_profile_it_swapped_onto ... ok test tui::app::tests::a_console_session_for_a_deleted_account_says_it_is_gone ... ok test tui::app::tests::a_console_session_is_discarded_when_the_account_stopped_being_alibaba ... 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::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::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::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::drain_login_events_discards_a_superseded_result ... 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::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::herdr_prose_lines_are_indented_so_they_do_not_read_as_fields ... ok test tui::app::tests::enable_row_fires_immediately_no_arm ... 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::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::login_event_maps_each_worker_milestone_to_its_stage ... 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::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::login_row_over_a_stashed_live_login_confirms_first ... 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::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::next_divergence_default_cycles_round_trip ... 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::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::parse_threshold_accepts_in_range_only ... ok test tui::app::tests::parse_weekly_pct_pins_the_band_edges ... 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::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::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::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::relogin_gate_maps_divergence_defaults ... ok test tui::app::tests::leaving_the_card_forgets_the_custom_stop ... ok test tui::app::tests::rotate_all_detail_promises_what_the_host_actually_does ... 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::env_editor::escape_after_a_value_commit_keeps_the_committed_value ... 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::mcp_check_ok_when_globally_wired ... ok test tui::app::tests::mcp_check_warns_project_only_for_local_plugin ... ok test tui::app::tests::money_spent_is_inert_through_the_top_level_router ... 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::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::new_account_model_row::space_cycles_the_draft_model_buffer_with_no_profile_to_persist_into ... 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::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::the_live_session_rotate_refusal_names_the_keychain_mechanism ... ok test tui::app::tests::plugin_check_offers_install_fix_when_missing ... ok test tui::app::tests::plugin_check_ok_when_installed_globally ... ok test tui::app::tests::plugin_check_warns_and_offers_global_install_when_project_local ... 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::theme_set_tier_round_trips ... 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::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::reload_if_state_changed_does_not_invert_config_over_token_locks ... ok test tui::app::tests::hybrid_logout_clears_the_oauth_pair_and_keeps_the_api_shell ... 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::version_satisfies_compares_componentwise ... ok test tui::app::tests::rotate_tokens_with_live_session_arms_the_rotate_confirm ... ok test tui::app::tests::version_satisfies_stays_quiet_on_unparseable ... ok test tui::app::tests::rotate_tokens_without_live_session_arms_rotate_confirm ... ok test tui::app::tests::runtime_check_counts_a_swapped_session_once_on_the_member_it_moved_to ... ok test tui::app::tests::runtime_check_names_a_multi_session_account_with_its_count ... ok test tui::app::tests::runtime_check_says_one_account_when_every_live_session_shares_it ... ok test tui::app::tests::runtime_check_summarizes_profiles ... 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::render::chain::tests::a_swap_this_very_second_reads_as_just_now ... ok test tui::app::tests::spend_budget_space_toggles_and_persists ... ok test tui::render::chain::tests::blocked_member_shows_the_worst_reason_pill ... ok test tui::render::chain::tests::auto_start_queue_view_resolves_slots_from_config_and_anchor ... ok test tui::render::chain::tests::all_exhausted_shows_resumes_hint_under_any_selected_member ... 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::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::startup_overwrite_default_routes_a_shell_through_the_guarded_sink ... ok test tui::render::chain::tests::kick_rejected_member_shows_the_claude_code_blocked_pill ... ok test tui::render::chain::tests::last_resort_hint_names_the_currently_marked_member ... 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::app::tests::status_detail_up_steps_back_from_the_published_bound ... 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::app::tests::the_account_tabs_offer_the_focused_account_plus_the_global_actions ... 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_days_row_lights_the_held_rung_never_included ... 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::render::chain::tests::preferred_days_row_hint_names_the_blocker_then_the_list_state ... ok test tui::app::tests::the_armed_remove_removes_its_member_through_a_reorder_reload ... ok test tui::render::chain::tests::the_day_picker_row_marks_picks_and_carries_its_caret_in_a_slot ... ok test tui::app::tests::the_codex_only_view_disarms_the_claude_selection_keys ... ok 2026-09-26T09:34:17+00:00 clauth: 2 accounts claim sat: 'work', 'personal' — the chain returns to whichever of them reads clear first 2026-09-26T09:34:17+00:00 clauth: 2 accounts claim sat: '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::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::the_session_block_omits_the_qualifier_when_no_session_follows ... 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::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::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_dims_without_another_stored_login ... ok test tui::render::config::tests::clear_session_token_button_is_delete_class_and_arms_on_second_press ... ok test tui::app::tests::the_day_picker_follows_its_member_through_a_reorder_reload ... 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::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::app::tests::the_day_picker_passes_help_and_dismiss_and_claims_actions_and_tab ... 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::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::app::tests::the_delegates_pane_reads_the_store_in_banded_order ... ok test tui::app::tests::the_drain_takes_the_door_from_the_workers_report ... 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::app::tests::the_herdr_landing_fires_once_then_later_launches_open_the_home_tab ... 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_text_drops_the_day_on_todays_date ... ok test tui::app::tests::the_install_fix_opens_a_default_cancel_confirm_before_installing ... ok test tui::render::format::tests::clock_reset_suffix_degrades_when_the_column_is_too_narrow ... 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::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::every_surface_falls_back_to_the_countdown_without_a_clock ... ok test tui::render::format::tests::far_over_truncates_with_ellipsis ... ok test tui::render::format::tests::fits_exactly_no_ellipsis ... ok test tui::render::format::tests::is_past_reset_false_with_no_reset_stamp ... ok test tui::render::format::tests::is_past_reset_false_while_the_stamp_is_future ... 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::relative_reset_suffix_ignores_the_column_width ... ok test tui::render::format::tests::relative_age_switches_to_a_local_stamp_at_thirty_days ... ok test tui::render::format::tests::overview_reset_middle_dot_stays_uncolored_in_both_mode ... 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::the_resume_caption_keeps_its_tilde_on_the_countdown ... ok test tui::render::format::tests::the_widest_column_text_still_fits_the_wide_overview_tier ... ok test tui::render::format::tests::width_zero_yields_nothing ... 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::a_non_default_value_shows_a_faint_default_reminder ... 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::band_header_underlines_only_the_focused_band ... ok test tui::render::global_config::tests::burn_tunables_dim_when_burn_aware_is_off ... 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::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_edit_line_marks_invalid_buffer_danger ... ok test tui::render::global_config::tests::context_nudge_hint_tracks_the_live_value ... 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::context_nudge_range_tooltip_marks_invalid_input_danger ... 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::every_blurred_row_starts_its_value_at_the_shared_column ... ok test tui::render::global_config::tests::focus_wraps_the_active_option_in_brackets ... ok test tui::render::global_config::tests::key_cell_is_uniform_width ... 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::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::refresh_spent_renders_as_a_toggle_not_a_cycle ... ok test tui::render::global_config::tests::reset_rows_hints_track_their_value ... 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::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::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_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_paste_field_takes_every_character_as_data_and_stops_at_the_cap ... 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_runtime_check_reads_the_ticks_tally_rather_than_sweeping_again ... ok test tui::app::tests::the_setup_tab_offers_the_focused_accounts_whole_account_actions ... 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::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-09-26T09:34:17+00:00 clauth: 'flagged' re-authenticated: auth_broken cleared test tui::app::tests::tui_switch_gate_recovers_a_flagged_target ... ok test tui::render::modals::tests::add_chain_candidate_modal_pins_body_and_named_confirm_button ... ok 2026-09-26T09:34:17+00:00 clauth: refresh for 'dead' failed: HTTP 400 2026-09-26T09:34:17+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-09-26T09:34:17+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::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::app::tests::tui_switch_refuses_a_quarantined_target_with_login_hint ... ok test tui::app::tests::usage_refresh_queues_a_generic_api_key_account ... ok test tui::app::tests::walk_order_space_cycles_and_persists ... 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::app::tests::write_threshold_silently_noops_for_a_vanished_member ... ok test tui::render::chain::tests::a_chain_row_carries_no_live_session_tally ... 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::remove_row_stays_reachable_on_a_40x24_pane ... ok test tui::render::chain::tests::selector_rail_shows_hash_n_at_constant_width ... ok test tui::render::chain::tests::the_add_picker_names_a_carried_day_list_before_the_add ... 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::chain::tests::the_fallback_tab_reads_the_apps_live_session_tally ... ok test tui::render::chain::tests::typed_max_spend_caret_lands_on_its_row_under_a_wrapped_day_list ... 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::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::config::tests::disabled_account_only_dims_its_name_in_the_setup_list ... ok test tui::render::overview::tests::chain_panel_height_floors_at_three_without_panicking ... 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::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_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_gauge_and_the_status_indicator_alone_when_wide ... 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_status_indicator_drops_rather_than_clipping_when_the_row_runs_short ... 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::header::herdr_mode_tests::row0_sheds_the_tag_first_then_the_chip_never_the_version ... 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::a_help_modal_that_fits_renders_without_a_scrollbar ... 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::overview::tests::drain_reset_style_7d_runs_dry_first_is_warning ... ok test tui::render::modals::tests::every_sub_focus_tab_documents_esc_in_help ... 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::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::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_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::a_quarantined_codex_row_renders_the_broken_marker ... 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::live_column_width_is_monotone_in_inner_width ... 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::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::the_harness_filter_cycles_and_names_itself ... 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::disabled_and_past_reset_row_stays_fully_dim ... 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::plugin::tests::the_delegates_pane_drops_whole_rather_than_clipping_when_the_tab_needs_the_rows ... ok test tui::render::overview::tests::fallback_panel_marks_a_blocked_member ... ok test tui::render::plugin::tests::the_delegates_pane_marks_its_overflow_with_a_count ... 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::render_smoke::a_narrow_login_line_keeps_the_open_editors_exit_hint ... 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::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_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::plugin::tests::a_delegate_row_carries_the_figures_its_own_record_holds ... ok test tui::render::plugin::tests::a_live_delegate_outranks_finished_ones_however_recently_they_landed ... ok test tui::render::plugin::tests::delegate_row_text_renders_inert_with_tooltip_when_herdr_config_does_not_parse ... ok test tui::render::plugin::tests::each_delegate_state_carries_its_own_hue ... ok test tui::render::plugin::tests::herdr_options_render_all_six_rows_on_both_tiers ... ok test tui::render::plugin::tests::herdr_options_render_blurred_when_focus_sits_on_the_selector ... ok test tui::render::plugin::tests::herdr_row_renders_danger_dot_on_registry_error ... ok test tui::render::plugin::tests::herdr_row_renders_danger_dot_on_registry_warnings ... ok test tui::render::render_smoke::scroll_offset_keeps_the_whole_focused_block_on_screen ... ok test tui::render::plugin::tests::herdr_row_renders_ok_dot_without_fix ... ok test tui::render::plugin::tests::herdr_row_renders_warn_dot_and_offers_fix_when_key_unbound ... ok test tui::render::plugin::tests::herdr_row_renders_warn_dot_and_offers_fix_when_sidebar_untemplated ... ok test tui::render::plugin::tests::herdr_row_renders_warn_dot_without_fix_when_config_does_not_parse ... ok test tui::render::plugin::tests::herdr_row_renders_warn_dot_without_fix_when_config_unreadable ... ok test tui::render::plugin::tests::herdr_row_renders_warn_dot_without_fix_when_not_installed ... ok test tui::render::plugin::tests::herdr_row_renders_warn_dot_without_fix_when_version_too_old ... ok test tui::render::plugin::tests::herdr_tag_refresh_editor_renders_the_edit_state ... ok test tui::render::plugin::tests::the_band_sort_keeps_each_band_newest_first ... ok test tui::render::overview::tests::failed_row_colors_countdown_red ... ok test tui::render::plugin::tests::the_delegates_pane_names_each_state_and_carries_the_steer_line ... ok test tui::render::plugin::tests::the_delegates_pane_renders_its_empty_state_with_the_steer_line ... ok test tui::render::plugin::tests::the_delegates_pane_reports_what_monitor_reports_for_the_same_record ... 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::overview::tests::live_cell_stays_under_header_when_7d_reset_is_two_digit_hours ... 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::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::render_smoke::fallback_edit_caret_follows_the_blocked_reason_pill ... 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::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::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::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_cache_write_not_reported ... ok test tui::render::tokens::tests::model_detail_marks_nothing_on_incomplete_split ... ok test tui::render::render_smoke::form_panes_keep_the_focused_row_on_screen_when_they_overflow ... ok test tui::render::tokens::tests::model_detail_total_floors_mixed_priced_days ... ok test tui::render::tokens::tests::model_lines_dash_unpriced_models_when_a_table_is_loaded ... ok test tui::render::tokens::tests::peak_window_boundary_hour_16_prices_peak ... 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::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::login_modal_offers_both_doors_while_waiting_then_only_the_stage ... 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::render_smoke::narrow_footer_degrades_to_essential_hints ... ok test tui::render::tokens::tests::total_cost_counts_unpriced_with_tokens ... ok test tui::render::render_smoke::narrow_master_detail_stacks_wide_stays_side_by_side ... 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::usage::tests::a_failing_refresh_names_itself_on_the_cached_row ... ok test tui::render::render_smoke::narrow_modal_body_wraps_instead_of_clipping ... ok test tui::render::usage::tests::a_streak_pill_turns_red_only_once_it_is_stuck ... 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::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::render_smoke::narrow_overview_chain_row_keeps_its_figures_on_one_line ... 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::render_smoke::narrow_status_detail_duration_drops_to_its_own_line ... 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::usage::tests::stale_window_color_fades_to_faint ... ok test tui::render::usage::tests::stats_from_bars_does_not_rename_duplicate_labels ... ok test tui::render::render_smoke::narrow_tokens_dashboard_keeps_card_text_whole ... ok test tui::render::usage::tests::stats_from_bars_fills_pace_for_windowed_labels ... ok test tui::render::usage::tests::stats_from_bars_keeps_api_labels_and_source_order ... 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_canceled_pill_when_subscription_is_active ... ok test tui::render::usage::tests::status_lines_no_hint_row_after_closed_rail_stays_unbridged ... ok test tui::render::usage::tests::status_lines_oauth_profile_never_renders_no_key ... 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_renders_the_auto_start_divergence ... ok test tui::render::usage::tests::status_lines_shows_canceled_from_a_prior_sessions_cached_plan ... 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_stale_cue_coexists_with_cached_fetch_status ... ok test tui::render::usage::tests::status_lines_stale_prepends_the_fetch_row ... ok test tui::render::usage::tests::status_lines_wrapped_non_last_hint_bridges_its_continuation ... ok test tui::render::usage::tests::status_lines_suppresses_only_the_fetch_and_refresh_rungs_when_disabled ... ok test tui::render::usage::tests::the_block_leads_its_own_line_and_never_abuts_the_fetch_state ... 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::usage::tests::tp_rows_uncredentialed_profile_is_terminal ... ok test tui::render::usage::tests::tp_rows_render_a_refusal_under_the_figures_it_qualifies ... 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::render_smoke::new_form_renders_the_capture_row_and_its_done_state ... ok test tui::showcase::future_iso_parses ... 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::showcase::showcase ... ignored, interactive TUI; run with `cargo test showcase -- --ignored --nocapture` in a real terminal 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 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::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 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::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 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::render::render_smoke::the_code_field_shows_the_typed_text_and_the_placeholder ... 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 tui::render::render_smoke::the_console_login_modal_keeps_r_alone ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_confirms_kicked_windows_and_distrusts_a_single_reading ... ok test tui::render::render_smoke::the_day_picker_wraps_between_chips_at_every_width ... 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_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_rejects_the_sliding_idle_shape ... 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 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 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::lookback_excludes_pre_cutoff_samples ... ok test usage::burn::tests::project_utilization_absurd_burn_clamps_to_finite_max ... 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_nan_burn_treated_as_idle ... ok test usage::burn::tests::project_utilization_negative_burn_cannot_drop_projection ... 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 tui::render::render_smoke::the_live_column_appears_monotonically_in_width ... ok test usage::burn::tests::wallet_too_few_transitions_yields_none ... ok test usage::burn::tests::wallet_top_up_cuts_the_series ... 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 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 tui::render::render_smoke::the_overview_column_budget_never_pays_for_a_new_column_with_an_old_one ... 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 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 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 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 usage::fetch::tests::a_usage_429_still_surfaces_a_freshly_fetched_plan ... ok test tui::render::tabs::tab_overflow_tests::normal_form_shows_all_tabs ... ok test tui::render::tabs::tab_overflow_tests::overflow_chevrons_at_middle_tab ... ok test tui::render::tabs::tab_overflow_tests::overflow_form_shows_only_active ... 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::from_subscription_type_defaults_to_unknown_not_pro ... ok test tui::render::tabs::tab_overflow_tests::overflow_no_left_chevron_at_first_tab ... ok test usage::fetch::tests::from_subscription_type_round_trips_every_token_a_login_mints ... ok test tui::render::tabs::tab_overflow_tests::overflow_no_right_chevron_at_last_tab ... 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::get_json_emits_cc_per_client_wire_headers ... ok test usage::fetch::tests::limits_drive_windows_and_pick_up_new_models ... ok test tui::render::tabs::tab_overflow_tests::tokens_dashboard_uses_alignment_not_middot ... ok test usage::fetch::tests::non_2xx_arrives_as_ok_so_the_status_branches_stay_reachable ... 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::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_rejects_huge_year_without_panic ... ok test usage::fetch::tests::retry_after_parses_delta_seconds_and_http_date ... 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 tui::render::tokens::tests::cost_lens_reads_rates_unavailable_after_a_failed_fetch ... ok test tui::render::tokens::tests::daily_lens_rows_carry_todays_hourly_buckets ... ok test tui::render::tokens::tests::dashboard_clamps_to_a_centered_band_on_wide_short_terminals ... 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::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_false_when_below_cap_or_lapsed_or_absent ... ok test usage::fetch::tests::windows_maxed_true_for_a_live_capped_window ... ok test tui::render::tokens::tests::dashboard_reflows_to_two_columns_on_big_terminals ... ok test tui::render::tokens::tests::placeholder_shows_the_full_width_bouncing_bar ... ok test tui::render::tokens::tests::price_failed_clears_on_loaded ... ok test tui::render::tokens::tests::price_failed_keeps_the_last_good_table_on_a_transient_failure ... ok test tui::render::tokens::tests::price_failed_sets_on_failed_without_a_table ... ok test tui::render::tokens::tests::total_card_groups_kv_rows_and_carries_the_range_meta ... ok test tui::render::tokens::tests::trend_and_activity_badges_read_by_week_and_by_month ... ok test tui::render::usage::tests::a_key_without_an_endpoint_renders_through_the_oauth_arm ... ok 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 tui::showcase::config_reset_rows_cycle_and_persist_with_the_clock_row_gated ... 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 tui::showcase::tab_backtab_cycle_screens_like_arrow_keys_at_top_level ... ok test update::tests::spawn_sends_nothing_when_update_disabled ... ok test update::tests::updates_disabled_when_env_is_one ... ok test tui::showcase::tab_key_does_not_leak_past_modal_or_field_capture ... 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_anchor_memoizes_the_replay_against_the_history_files ... ok test usage::auto_start_queue::tests::auto_start_queue_anchor_replays_non_member_profiles ... ok test usage::auto_start_queue::tests::auto_start_queue_history_seed_and_next_open_replay_real_usage_files ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_confirms_a_kicked_window_on_its_marker ... ok test usage::auto_start_queue::tests::auto_start_queue_series_open_hedges_an_unconfirmed_kick_marker ... ok test usage::scheduler::tests::a_none_derivation_removes_the_mirrored_window ... 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_durable_stamp_past_the_ttl_still_re_pulls ... ok 2026-09-26T09:34:19+00:00 clauth: feed-corrupt: rate-limit tier backfill failed: failed to parse /build/.tmptbaluy/.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_failing_endpoint_stays_capped_across_restarts ... 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::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::an_unanchored_profile_ignores_the_durable_stamp ... 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::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::fetch::tests::identity_anchor_backfills_only_when_missing ... ok test usage::fetch::tests::identity_anchor_refuses_blank_or_absent_uuid ... ok test usage::scheduler::tests::an_oauth_fetch_mark_never_retires_a_concurrent_rotation ... 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 2026-09-26T09:34:19+00:00 clauth: feed-leg: backfilled the rate-limit tier into the stored chain 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::scheduler::tests::anchor_post_reset_oauth_schedules_only_eligible_profiles ... 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::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_401_under_a_live_session_rotates_and_retries ... ok test usage::scheduler::tests::a_429_on_a_clock_expired_token_rotates_and_repulls_the_plan ... 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_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-09-26T09:35:08+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 has been running for over 60 seconds test usage::scheduler::tests::a_disk_pair_that_moved_past_the_spent_token_is_returned_not_quarantined has been running for over 60 seconds test usage::scheduler::tests::a_failed_retry_keeps_the_pair_and_queues_a_refetch has been running for over 60 seconds test usage::scheduler::tests::a_failed_third_party_fetch_appends_no_wallet_readings has been running for over 60 seconds test usage::scheduler::tests::a_flagged_non_active_profile_carries_a_moved_disk_pair_without_a_refresh has been running for over 60 seconds test usage::scheduler::tests::a_flagged_non_active_profile_with_an_unchanged_pair_still_bails_without_a_refresh has been running for over 60 seconds test usage::scheduler::tests::a_flagged_profile_skips_the_dead_refresh_but_keeps_the_401_probe has been running for over 60 seconds test usage::scheduler::tests::a_flagged_profile_still_gets_its_live_usage_poll_on_the_proactive_arm has been running for over 60 seconds test usage::scheduler::tests::a_fresh_wire_reset_drops_the_prev_wire_sourced_window has been running for over 60 seconds test usage::scheduler::tests::a_fresher_live_mirror_is_adopted_before_any_refresh_is_spent has been running for over 60 seconds test usage::scheduler::tests::a_headroom_window_is_not_reading_dead has been running for over 60 seconds test usage::scheduler::tests::a_healthy_session_gets_no_decision_and_its_row_is_not_touched has been running for over 60 seconds test usage::scheduler::tests::a_lagging_fresh_body_keeps_the_kick_window_and_its_stamp has been running for over 60 seconds test usage::scheduler::tests::a_lapsed_window_is_not_reading_dead has been running for over 60 seconds test usage::scheduler::tests::a_live_fetch_appends_the_sample_and_its_bridge has been running for over 60 seconds test usage::scheduler::tests::a_live_session_blocking_rotation_still_carries_a_moved_disk_pair has been running for over 60 seconds test usage::scheduler::tests::a_live_session_blocking_rotation_with_an_unchanged_pair_still_bails has been running for over 60 seconds test usage::scheduler::tests::a_missing_or_tokenless_profile_never_reads_as_a_benign_double_spend has been running for over 60 seconds test usage::scheduler::tests::a_panicking_oauth_worker_records_failed_status has been running for over 60 seconds test usage::scheduler::tests::a_panicking_oauth_worker_strands_neither_slot has been running for over 60 seconds test usage::scheduler::tests::a_panicking_third_party_worker_records_failed_status has been running for over 60 seconds test usage::scheduler::tests::a_rate_limited_retry_keeps_the_pair_and_never_enqueues_a_refetch has been running for over 60 seconds test usage::scheduler::tests::a_reading_dead_member_releases_a_pinned_session has been running for over 60 seconds test usage::scheduler::tests::a_rotation_carries_its_pair_back_when_the_persist_fails has been running for over 60 seconds test usage::scheduler::tests::a_row_whose_session_is_gone_gets_no_decision has been running for over 60 seconds test usage::scheduler::tests::a_session_decision_lands_with_no_global_active_profile has been running for over 60 seconds test usage::scheduler::tests::a_session_on_a_disabled_member_is_moved_off_it has been running for over 60 seconds test usage::scheduler::tests::a_session_on_a_distrusted_member_gets_no_decision_unless_that_member_is_broken has been running for over 60 seconds test usage::scheduler::tests::a_session_that_has_never_swapped_decides_off_its_start_profile has been running for over 60 seconds test usage::scheduler::tests::a_session_walks_past_a_member_the_executor_would_refuse has been running for over 60 seconds test usage::scheduler::tests::a_tokenless_profile_bails_before_the_carry_runs has been running for over 60 seconds test usage::scheduler::tests::a_windowless_member_with_a_shallow_streak_is_not_reading_dead has been running for over 60 seconds test usage::scheduler::tests::a_wrap_off_decision_leaves_the_sessions_intended_member_untouched has been running for over 60 seconds test usage::scheduler::tests::an_adopt_after_a_rejected_refresh_keeps_the_profile_out_of_quarantine has been running for over 60 seconds test usage::scheduler::tests::an_isolated_session_gets_no_decision has been running for over 60 seconds test usage::scheduler::tests::an_opted_out_session_gets_no_decision_so_this_leg_is_inert_until_the_flag_lands has been running for over 60 seconds test usage::scheduler::tests::an_unacquirable_rotation_guard_bails_without_spending_the_chain has been running for over 60 seconds test usage::scheduler::tests::an_unchanged_live_sample_appends_nothing has been running for over 60 seconds test usage::scheduler::tests::a_disarmed_refusal_keeps_the_carry_outcome_on_the_unblocked_path ... ok test usage::scheduler::tests::auto_start_re_tests_a_live_window_block_but_leaves_a_healthy_one ... ok test usage::scheduler::tests::a_disk_pair_that_moved_past_the_spent_token_is_returned_not_quarantined ... ok test usage::scheduler::tests::apply_codex_switch_moves_the_on_disk_marker has been running for over 60 seconds test usage::scheduler::tests::apply_codex_switch_walks_at_the_codex_weekly_line has been running for over 60 seconds test usage::scheduler::tests::apply_outcome_marks_the_weekly_reset_re_test has been running for over 60 seconds test usage::scheduler::tests::auto_start_kick_rotates_under_a_live_session has been running for over 60 seconds test usage::scheduler::tests::a_failed_retry_keeps_the_pair_and_queues_a_refetch ... ok test usage::scheduler::tests::a_failed_third_party_fetch_appends_no_wallet_readings ... ok test usage::scheduler::tests::cached_fallback_does_not_clobber_store ... ok 2026-09-26T09:35:37+00:00 clauth: 'rot-carry-non-active' re-authenticated: auth_broken cleared test usage::scheduler::tests::auto_start_queue_election_is_a_no_op_when_the_toggle_is_off has been running for over 60 seconds 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::auto_start_queue_election_is_wired_into_tick has been running for over 60 seconds test usage::scheduler::tests::auto_start_queue_election_picks_one_member_and_holds_the_rest has been running for over 60 seconds 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::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_wire_reset_drops_the_prev_wire_sourced_window ... ok 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 2026-09-26T09:36:23+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_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-09-26T09:36:35+00:00 clauth: 'rot-carry-blocked' re-authenticated: auth_broken cleared 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::carrying_an_external_rotation_clears_a_stale_quarantine has been running for over 60 seconds test usage::scheduler::tests::a_live_session_blocking_rotation_still_carries_a_moved_disk_pair ... ok 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::a_live_session_blocking_rotation_with_an_unchanged_pair_still_bails ... 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::clear_activity_leaves_both_fetch_legs_to_their_owners ... ok test usage::scheduler::tests::a_panicking_third_party_worker_records_failed_status ... ok test usage::scheduler::tests::claude_rolling_tick_broken_verdict_takes_the_long_leash has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_clamps_a_short_hold_to_its_own_leash has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_drops_retry_state_for_departed_profiles has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_ignores_fresh_and_non_rolling_profiles has been running for over 60 seconds test usage::scheduler::tests::a_rate_limited_retry_keeps_the_pair_and_never_enqueues_a_refetch ... 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::a_reading_dead_member_releases_a_pinned_session ... 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 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 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::a_rotation_carries_its_pair_back_when_the_persist_fails ... 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::a_session_on_a_distrusted_member_gets_no_decision_unless_that_member_is_broken ... ok test usage::scheduler::tests::claude_rolling_tick_quarantined_chain_takes_the_broken_leash has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_reaches_the_gate_for_a_misfilled_sidecar has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_ready_but_still_due_paces_like_transient has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_relogin_hold_releases_on_a_credential_write has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_relogin_transients_take_the_long_leash has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_restamps_a_dying_rolling_sidecar has been running for over 60 seconds test usage::scheduler::tests::a_tokenless_profile_bails_before_the_carry_runs ... ok test usage::scheduler::tests::a_windowless_member_with_a_shallow_streak_is_not_reading_dead ... ok test usage::scheduler::tests::a_wrap_off_decision_leaves_the_sessions_intended_member_untouched ... ok test usage::scheduler::tests::claude_rolling_tick_scan_gap_holds_a_second_tick_off has been running for over 60 seconds 2026-09-26T09:37:50+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::claude_rolling_tick_skips_a_disabled_profile has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_survives_a_backwards_clock_step has been running for over 60 seconds test usage::scheduler::tests::claude_rolling_tick_transient_failure_widens_the_retry has been running for over 60 seconds test usage::scheduler::tests::cold_bail_records_a_plan_only_canceled_entry has been running for over 60 seconds test usage::scheduler::tests::collect_oauth_seed_names_includes_disabled_and_bootstrap_seeds_its_cache has been running for over 60 seconds test usage::scheduler::tests::an_adopt_after_a_rejected_refresh_keeps_the_profile_out_of_quarantine ... 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_unacquirable_rotation_guard_bails_without_spending_the_chain ... ok test usage::scheduler::tests::an_unchanged_live_sample_appends_nothing ... ok 2026-09-26T09:38:14+00:00 clauth: codex auto-switched to 'cx2' — live at the next codex session 2026-09-26T09:38: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 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 2026-09-26T09:38:14+00:00 clauth: codex auto-switched to 'cx2' — live at the next codex session test usage::scheduler::tests::filter_suppressed_re_admits_an_entry_whose_credential_changed ... ok test usage::scheduler::tests::apply_codex_switch_walks_at_the_codex_weekly_line ... ok test usage::scheduler::tests::fresh_body_lagging_a_kick_keeps_the_live_window ... 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::apply_outcome_marks_the_weekly_reset_re_test ... 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 2026-09-26T09:38:20+00:00 kick-live: 5h window retry kick failed after rotation: HTTP 401 test usage::scheduler::tests::drain_arms_the_weekly_reset_mark_only_for_opted_in_profiles has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_a_live_body_keeps_the_bare_cadence has been running for over 60 seconds test usage::scheduler::tests::auto_start_kick_rotates_under_a_live_session ... ok test usage::scheduler::tests::midstorm_kick_keeps_the_block_ladder_for_a_hosting_member ... ok test usage::scheduler::tests::auto_start_queue_election_is_a_no_op_when_the_toggle_is_off ... ok 2026-09-26T09:38:32+00:00 a: 5h auto-start window opened (queue 1/2, next in 2h 28m) test usage::scheduler::tests::fetch_third_party_due_appends_the_wallet_series_beside_the_stats_cache has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_does_not_insert_cached has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_does_not_insert_generic_failed_without_cache has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_does_not_insert_known_failed has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_does_not_insert_rate_limited has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_generic_429_hint_stays_unfloored has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_generic_no_data_defers_to_floor has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_generic_no_hint_429_uses_the_floor has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_inserts_generic_auth_expired has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_inserts_known_auth_expired has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_no_data_at_a_wide_interval_adds_nothing has been running for over 60 seconds test usage::scheduler::tests::auto_start_queue_election_is_wired_into_tick ... ok test usage::scheduler::tests::oauth_completions_apply_in_completion_order_not_list_order ... ok test usage::scheduler::tests::auto_start_queue_election_picks_one_member_and_holds_the_rest ... 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_defers_flagged_profiles_until_the_flag_lifts ... ok test usage::scheduler::tests::partition_due_clamps_the_active_capped_bake_exactly ... ok test usage::scheduler::tests::partition_due_excludes_switching ... ok test usage::scheduler::tests::partition_due_excludes_refreshing ... 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::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::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_typed_no_data_keeps_cadence has been running for over 60 seconds test usage::scheduler::tests::fetch_third_party_due_typed_no_hint_429_keeps_the_flat_rung has been running for over 60 seconds test usage::scheduler::tests::fresh_body_stamps_fetched_at_and_reads_not_stale has been running for over 60 seconds test usage::scheduler::tests::kick_block_persists_and_clears_by_outcome has been running for over 60 seconds test usage::scheduler::tests::midstorm_kick_fires_for_a_member_hosting_a_live_chain_session 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-09-26T09:39:31+00:00 elected: 5h window kick failed: HTTP 403 test usage::scheduler::tests::midstorm_kick_stays_gated_for_a_member_hosting_no_live_chain_session has been running for over 60 seconds test usage::scheduler::tests::oauth_and_provider_completions_clear_only_their_own_activity 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::scan_auto_switch_distrusts_a_deep_slot_stuck_rate_limited_active ... ok test usage::scheduler::tests::auto_start_queue_run_fetch_records_the_failure_when_refused_before_the_kick ... 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_walks_off_a_broken_active_without_a_fresh_read ... ok test usage::scheduler::tests::bootstrap_legs_keep_separate_stamps_for_a_hybrid_profile ... 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_recovery_never_relinks_to_a_switch_grade_kick_rejected_member ... ok test usage::scheduler::tests::scan_recovery_queues_a_recovered_chain_member ... ok test usage::scheduler::tests::bootstrap_third_party_seeds_any_cache ... ok test usage::scheduler::tests::scan_recovery_never_relinks_to_an_auth_broken_member ... ok test usage::scheduler::tests::selected_next_refresh_picks_the_provider_leg_for_a_hybrid ... 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::cached_bail_overlays_a_fresh_plan_onto_store_and_disk ... ok 2026-09-26T09:39:53+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::streak_axes_move_independently_and_a_live_body_clears_both ... 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::claude_rolling_tick_reaches_the_gate_for_a_misfilled_sidecar ... 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::claude_rolling_tick_ready_but_still_due_paces_like_transient ... ok test usage::scheduler::tests::third_party_flat_rung_stays_under_the_floor_at_a_sub_cadence_interval ... ok 2026-09-26T09:39:53+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-09-26T09:39:53+00:00 clauth: 'cl-fix' credentials changed under a re-stamp hold — re-checking now 2026-09-26T09:39:53+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 2026-09-26T09:39:53+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-09-26T09:39:53+00:00 clauth: re-stamp for 'cl-grant' failed (will retry): could not reach anthropic: retry in a moment 2026-09-26T09:39:53+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::transient_errors_preserve_rate_limit_streak ... ok test usage::scheduler::tests::transient_refresh_failure_is_not_terminal ... 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-09-26T09:39:53+00:00 clauth: re-stamp for 'cl-flaky' failed (will retry): connection reset: check your connection and retry 2026-09-26T09:39:53+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::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 usage::scheduler::tests::collect_oauth_seed_names_includes_disabled_and_bootstrap_seeds_its_cache ... ok 2026-09-26T09:39:53+00:00 clauth: fs watcher cannot watch /build/.tmpsgnpHY/does-not-exist: No path was found. about ["/build/.tmpsgnpHY/does-not-exist"] 2026-09-26T09:39:53+00:00 clauth: fs watcher cannot watch /build/.tmpsgnpHY/does-not-exist: No path was found. about ["/build/.tmpsgnpHY/does-not-exist"] 2026-09-26T09:39:53+00:00 clauth: fs watcher armed 1 of 2 directories; the rest reconcile every 200ms instead of on their events 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 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 usage::scheduler::tests::fetch_third_party_due_appends_the_wallet_series_beside_the_stats_cache ... ok test watchdog::tests::a_stream_of_unaccountable_events_is_reported_even_while_another_spec_matches ... ok test usage::scheduler::tests::fetch_third_party_due_does_not_insert_cached ... ok test watchdog::tests::a_store_publish_reconciles_with_every_ticker_disabled ... 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 usage::scheduler::tests::fetch_third_party_due_does_not_insert_generic_failed_without_cache ... ok test watchdog::tests::one_matched_event_clears_the_suspicion_for_good ... ok test watchdog::tests::an_event_about_the_watched_directory_itself_is_never_an_orphan ... ok test usage::scheduler::tests::fetch_third_party_due_does_not_insert_known_failed ... ok test watchdog::tests::the_callback_counts_events_it_was_handed_apart_from_the_ones_it_took ... ok test watchdog::tests::the_filter_takes_named_children_and_drops_staging_siblings ... 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 2026-09-26T09:39:53+00:00 clauth: fs watcher cannot watch /build/.tmp6g4WlO/does-not-exist: No path was found. about ["/build/.tmp6g4WlO/does-not-exist"] 2026-09-26T09:39:53+00:00 clauth: fs watcher cannot watch /build/.tmp6g4WlO/does-not-exist: No path was found. about ["/build/.tmp6g4WlO/does-not-exist"] 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 watchdog::tests::watch_specs_cover_each_reconciled_file_through_its_directory ... ok test watchdog::tests::the_watched_list_names_both_spellings_when_they_differ ... ok test which::tests::a_blank_access_token_never_matches_a_sidecar ... ok test usage::scheduler::tests::fetch_third_party_due_generic_no_data_defers_to_floor ... 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 usage::scheduler::tests::fetch_third_party_due_generic_no_hint_429_uses_the_floor ... ok test which::tests::attributes_unmatched_login_to_credential_less_active ... ok test which::tests::codex_home_parse_accepts_the_clauth_shape_only ... ok test usage::scheduler::tests::fetch_third_party_due_inserts_generic_auth_expired ... ok test usage::scheduler::tests::fetch_third_party_due_inserts_known_auth_expired ... ok test usage::scheduler::tests::fetch_third_party_due_no_data_at_a_wide_interval_adds_nothing ... 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::fetch_third_party_due_typed_no_data_keeps_cadence ... 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-09-26T09:39:53+00:00 kitty: 5h auto-start kick rate-limited (rejected: true), api ceiling in 10m; backing off 2026-09-26T09:39: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::oauth_and_provider_completions_clear_only_their_own_activity ... ok test which::tests::json_tier_is_null_when_nothing_resolved ... ok test usage::scheduler::tests::plan_ride_preserves_fetched_at_and_stays_stale_despite_advanced_mtime ... ok test watchdog::tests::the_loop_raises_the_unaccountable_line_once ... ok test watchdog::tests::the_loop_raises_the_nothing_matched_line_once ... ok test which::tests::matches_profile_by_refresh_token ... ok test which::tests::json_view_doc_names_the_managed_half_and_points_at_the_routing_answer ... 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::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::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::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 watchdog::tests::a_publish_inside_the_coalescing_window_still_wakes_the_watchdog ... ok test watchdog::tests::the_loop_says_nothing_about_a_watcher_that_matched ... ok test watchdog::tests::a_partially_armed_watcher_shortens_the_fallback ... ok test watchdog::tests::a_wake_inside_the_cooldown_is_deferred_not_dropped ... ok test watchdog::tests::the_poll_fallback_reconciles_when_no_directory_can_be_armed ... ok test watchdog::tests::a_dir_watch_survives_the_rename_that_publishes_a_file ... ok test watchdog::tests::a_sustained_event_stream_wakes_once_per_window_not_once_per_burst ... ok test watchdog::tests::the_cooldown_is_measured_from_the_end_of_the_reconcile ... ok test usage::scheduler::tests::run_fetch_consumes_the_weekly_reset_mark_only_on_a_fired_kick has been running for over 60 seconds test usage::scheduler::tests::run_fetch_consumes_the_weekly_reset_mark_only_on_a_fired_kick ... ok 2026-09-26T09:40:15+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 has been running for over 60 seconds test usage::scheduler::tests::run_fetch_records_a_window_exhaustion_429_as_a_switch_grade_block ... ok test usage::scheduler::tests::scan_auto_switch_leaves_a_reading_dead_global_active ... 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::standdown_hydrate_follows_the_daemon_cache_forward ... 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::standdown_tick_drains_forced_and_publishes_countdowns ... ok test usage::scheduler::tests::the_identity_memo_never_caches_a_failed_probe ... ok test usage::scheduler::tests::the_chain_cursor_indexes_the_config_chain_not_the_filtered_snapshot ... 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::tick_prunes_histories_and_throttles_a_second_tick_inside_the_cadence_window ... ok test usage::scheduler::tests::tick_fetches_the_third_party_leg_under_its_own_lease has been running for over 60 seconds test usage::scheduler::tests::tick_stands_down_when_another_instance_holds_the_fetch_lease has been running for over 60 seconds test usage::scheduler::tests::try_seed_cache_dates_the_seed_off_the_bodies_own_stamp has been running for over 60 seconds test usage::scheduler::tests::try_seed_cache_seeds_any_cache_and_resumes_timer has been running for over 60 seconds test usage::scheduler::tests::two_opted_in_sessions_on_different_members_get_different_intended_members has been running for over 60 seconds test usage::scheduler::tests::wallet_series_keeps_each_wallets_readings_separate has been running for over 60 seconds test usage::scheduler::tests::wallet_series_prunes_past_retention_but_keeps_the_bridge has been running for over 60 seconds test usage::scheduler::tests::wallet_series_records_first_reading_then_bridge_on_change has been running for over 60 seconds test which::tests::a_claude_runtime_claim_outranks_an_inherited_codex_home has been running for over 60 seconds test which::tests::a_default_config_dir_session_reads_as_global has been running for over 60 seconds test which::tests::codex_home_attribution_is_roster_gated has been running for over 60 seconds test which::tests::codex_json_view_keeps_the_key_set_and_reads_the_codex_slot has been running for over 60 seconds test which::tests::codex_json_view_tracks_the_claude_key_set has been running for over 60 seconds test which::tests::default_dir_verdicts_follow_the_macos_gate_and_the_canonical_compare has been running for over 60 seconds test which::tests::json_base_url_carries_a_third_partys_endpoint has been running for over 60 seconds test which::tests::json_base_url_is_null_for_an_anthropic_account has been running for over 60 seconds test which::tests::json_publishes_both_an_endpoint_and_a_tier_for_a_hybrid_profile has been running for over 60 seconds test which::tests::json_tier_agrees_with_the_status_json_surface has been running for over 60 seconds test which::tests::json_tier_falls_back_to_the_token_claim_with_no_cache has been running for over 60 seconds test which::tests::json_tier_is_null_for_a_recognised_third_party_holding_oauth_creds has been running for over 60 seconds test which::tests::json_tier_is_null_when_no_tier_is_known has been running for over 60 seconds test which::tests::json_tier_reports_a_canceled_accounts_real_tier_not_its_login_claim has been running for over 60 seconds test which::tests::json_tier_reports_the_cached_plan_over_the_token_claim has been running for over 60 seconds test which::tests::resolve_global_ignores_claude_config_dir_in_the_readers_env has been running for over 60 seconds test usage::scheduler::tests::tick_fetches_the_third_party_leg_under_its_own_lease ... ok 2026-09-26T09:41:01+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 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 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_reads_as_global ... 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::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_base_url_carries_a_third_partys_endpoint ... ok test which::tests::json_base_url_is_null_for_an_anthropic_account ... ok test which::tests::json_publishes_both_an_endpoint_and_a_tier_for_a_hybrid_profile ... 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::api::terminal::tests::strip_session_env_removes_every_session_var stdout ---- thread 'daemon::api::terminal::tests::strip_session_env_removes_every_session_var' (6393) panicked at src/daemon/api/../../../tests/inline/daemon_api_terminal.rs:167:28: run env: Os { code: 2, kind: NotFound, message: "No such file or directory" } failures: daemon::api::terminal::tests::strip_session_env_removes_every_session_var test result: FAILED. 4156 passed; 1 failed; 1 ignored; 0 measured; 6 filtered out; finished in 590.06s error: test failed, to rerun pass `--bin clauth`