[INFO] fetching crate agent-console 0.3.6...
[INFO] testing agent-console-0.3.6 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate agent-console 0.3.6 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate agent-console 0.3.6
[INFO] finished tweaking crates.io crate agent-console 0.3.6
[INFO] tweaked toml for crates.io crate agent-console 0.3.6 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate agent-console 0.3.6 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate agent-console 0.3.6 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rust-embed-utils v8.12.0
[INFO] [stderr]   Downloaded uuid v1.23.5
[INFO] [stderr]   Downloaded rust-embed-impl v8.12.0
[INFO] [stderr]   Downloaded vt100 v0.16.2
[INFO] [stderr]   Downloaded rusqlite v0.40.1
[INFO] [stderr]   Downloaded rust-embed v8.12.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.38.1
[INFO] [stderr]   Downloaded portable-pty v0.9.0
[INFO] [stderr]   Downloaded serial2 v0.2.37
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5
[INFO] running `Command { std: "docker" "start" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling cc v1.2.67
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling arrayvec v0.7.8
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling lru v0.18.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling hybrid-array v0.4.14
[INFO] [stderr]    Compiling vte v0.15.0
[INFO] [stderr]    Compiling hashlink v0.12.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.1
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling vt100 v0.16.2
[INFO] [stderr]    Compiling block-buffer v0.12.1
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling time v0.3.53
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rust-embed-utils v8.12.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling serial2 v0.2.37
[INFO] [stderr]    Compiling uuid v1.23.5
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rust-embed-impl v8.12.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling rust-embed v8.12.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling portable-pty v0.9.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tungstenite v0.29.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-tungstenite v0.29.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling rusqlite v0.40.1
[INFO] [stderr]    Compiling agent-console v0.3.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3m 26s
[INFO] running `Command { std: "docker" "inspect" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling agent-console v0.3.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.26s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/agent_console-bca27e540f84ef25)
[INFO] [stdout] 
[INFO] [stdout] running 424 tests
[INFO] [stdout] test app::tests::background_notification_clears_when_the_session_recovers_or_is_opened ... ok
[INFO] [stdout] test app::tests::folded_workspaces_stay_selectable_through_navigation_search_and_refresh ... ok
[INFO] [stdout] test app::tests::background_status_transition_notifies_once_and_jumps_directly ... ok
[INFO] [stdout] test app::tests::periodic_discovery_does_not_block_tick_or_queue_duplicate_scans ... ok
[INFO] [stdout] test app::tests::manual_summary_retry_clears_all_gates ... ok
[INFO] [stdout] test app::tests::old_archived_sessions_are_hidden_by_default_but_searchable ... ok
[INFO] [stdout] test app::tests::navigation_follows_the_grouped_workspace_order ... ok
[INFO] [stdout] test app::tests::archived_sessions_move_to_the_end_and_remain_selectable_for_restore ... ok
[INFO] [stdout] test app::tests::stale_idle_agent_restarts_but_active_agent_is_preserved ... ok
[INFO] [stdout] test app::tests::a_stopped_discovery_worker_is_reported_to_the_user ... ok
[INFO] [stdout] test app::tests::finishing_workspace_records_the_current_transcript_metadata_without_scanning ... ok
[INFO] [stdout] test app::tests::a_cached_command_wrapper_title_is_replaced_by_the_parsed_prompt ... ok
[INFO] [stdout] test app::tests::alerts_expand_the_archived_group_without_restoring_the_session ... ok
[INFO] [stdout] test clipboard::tests::current_platform_has_a_clipboard_candidate ... ok
[INFO] [stdout] test completion::tests::a_tilde_path_without_a_known_home_completes_to_nothing ... ok
[INFO] [stdout] test app::tests::new_session_dialog_validates_cwd_and_creates_stable_session ... ok
[INFO] [stdout] test config::tests::configured_keys_replace_defaults_and_are_case_insensitive ... ok
[INFO] [stdout] test config::tests::dashboard_defaults_expose_archive_and_contextual_takeover_without_a_menu ... ok
[INFO] [stdout] test config::tests::empty_provider_command_is_rejected ... ok
[INFO] [stdout] test config::tests::help_lists_fixed_and_configured_actions_with_user_facing_names ... ok
[INFO] [stdout] test completion::tests::workspace_completion_lists_only_matching_directories_and_preserves_tilde ... ok
[INFO] [stdout] test config::tests::invalid_or_duplicate_keys_are_rejected_at_startup ... ok
[INFO] [stdout] test config::tests::named_profiles_are_rejected_in_favor_of_one_command_per_provider ... ok
[INFO] [stdout] test config::tests::missing_provider_config_uses_normal_binary ... ok
[INFO] [stdout] test config::tests::removed_shell_rename_binding_is_rejected ... ok
[INFO] [stdout] test config::tests::provider_command_prepends_configured_argv ... ok
[INFO] [stdout] test config::tests::single_existing_executable_remains_a_direct_command ... ok
[INFO] [stdout] test config::tests::summary_scheduler_policy_is_configurable ... ok
[INFO] [stdout] test config::tests::workspace_defaults_use_direct_contextual_controls ... ok
[INFO] [stdout] test config::tests::workspace_keys_reachable_from_a_child_avoid_provider_bindings ... ok
[INFO] [stdout] test config::tests::single_missing_executable_is_resolved_as_a_shell_alias ... ok
[INFO] [stdout] test diagnostics::tests::diagnostics_rotate_and_remain_private ... ok
[INFO] [stdout] test discovery::tests::a_pi_transcript_without_its_header_is_not_a_session ... ok
[INFO] [stdout] test discovery::tests::a_pi_transcript_yields_its_name_prompt_activity_and_search_terms ... ok
[INFO] [stdout] test discovery::tests::a_pi_turn_that_died_in_the_provider_reads_as_failed ... ok
[INFO] [stdout] test discovery::tests::an_injected_hook_directive_cannot_title_a_session_its_slash_command_can ... ok
[INFO] [stdout] test app::tests::provisional_session_adopts_the_first_discovered_prompt_as_its_title ... ok
[INFO] [stdout] test discovery::tests::claude_mem_observer_sessions_are_not_discovered ... ok
[INFO] [stdout] test discovery::tests::claude_command_wrappers_keep_the_last_real_prompt_as_the_task ... ok
[INFO] [stdout] test discovery::tests::claude_resume_metadata_includes_titles_prompts_summary_tag_and_pr ... ok
[INFO] [stdout] test discovery::tests::changed_transcript_reuses_a_cached_prompt_for_the_same_provider_session ... ok
[INFO] [stdout] test app::tests::refresh_preserves_selection_by_stable_key ... ok
[INFO] [stdout] test app::tests::refresh_never_replaces_a_known_first_prompt ... ok
[INFO] [stdout] test discovery::tests::claude_sidechain_markers_between_bounded_windows_are_not_discovered ... ok
[INFO] [stdout] test discovery::tests::discovers_codex_and_claude_fixtures ... ok
[INFO] [stdout] test discovery::tests::codex_subagents_are_not_discovered ... ok
[INFO] [stdout] test discovery::tests::codex_title_uses_the_first_real_prompt_once ... ok
[INFO] [stdout] test discovery::tests::internal_context_is_not_treated_as_a_user_task ... ok
[INFO] [stdout] test app::tests::archived_group_folds_across_workspaces_and_survives_search_and_refresh ... ok
[INFO] [stdout] test discovery::tests::malformed_lines_are_ignored ... ok
[INFO] [stdout] test discovery::tests::provider_command_wrappers_are_not_treated_as_a_user_task ... ok
[INFO] [stdout] test discovery::tests::first_prompt_fallback_scans_past_the_old_byte_budget ... ok
[INFO] [stdout] test discovery::tests::provider_titles_use_the_first_real_text_after_internal_and_image_content ... ok
[INFO] [stdout] test discovery::tests::first_prompts_are_recovered_from_between_the_bounded_windows ... ok
[INFO] [stdout] test app::tests::summary_failures_back_off_exponentially_and_open_provider_circuit ... ok
[INFO] [stdout] test events::tests::hook_round_trip_and_waiting_precedence ... ok
[INFO] [stdout] test events::tests::user_message_resolves_pending_decisions ... ok
[INFO] [stdout] test model::tests::deterministic_status_precedence_is_waiting_working_failed_idle ... ok
[INFO] [stdout] test model::tests::the_title_is_the_first_prompt_and_ignores_later_work ... ok
[INFO] [stdout] test providers::tests::a_selection_retires_the_providers_it_omits ... ok
[INFO] [stdout] test providers::tests::adapters_accept_only_their_own_transcripts ... ok
[INFO] [stdout] test providers::tests::an_absent_selection_enables_every_provider ... ok
[INFO] [stdout] test app::tests::the_rename_dialog_opens_on_the_title_the_list_shows ... ok
[INFO] [stdout] test app::tests::search_matches_task_provider_workspace_and_status ... ok
[INFO] [stdout] test providers::tests::an_unusable_selection_keeps_every_provider_instead_of_showing_nothing ... ok
[INFO] [stdout] test providers::tests::every_agent_kind_has_exactly_one_adapter ... ok
[INFO] [stdout] test prune::tests::concurrent_history_updates_are_preserved ... ok
[INFO] [stdout] test doctor::tests::reports_fake_and_missing_provider_binaries ... ok
[INFO] [stdout] test app::tests::workspace_search_preview_and_cancel_restore_the_original_session ... ok
[INFO] [stdout] test app::tests::runtime_updates_workspace_chrome_while_agent_view_is_open ... ok
[INFO] [stdout] test app::tests::summary_queue_skips_backoff_and_open_circuit_without_starving_other_provider ... ok
[INFO] [stdout] test app::tests::workspace_sidebar_groups_sessions_and_uses_first_prompt_titles ... ok
[INFO] [stdout] test pty::tests::a_poll_still_parses_across_a_daemon_that_predates_the_snapshot ... ok
[INFO] [stdout] test pty::tests::a_partial_scroll_regions_captured_rows_are_the_snapshot_vt100_never_had ... ok
[INFO] [stdout] test app::tests::the_preview_carries_the_first_prompt_and_the_rolling_summary ... ok
[INFO] [stdout] test pty::tests::a_daemon_that_cannot_answer_the_version_question_is_the_answer ... ok
[INFO] [stdout] test app::tests::dashboard_entry_reuses_a_live_managed_agent_after_its_transcript_changes ... ok
[INFO] [stdout] test doctor::tests::provider_help_contracts_detect_resume_hooks_and_summary_flags ... ok
[INFO] [stdout] test pty::tests::a_current_daemon_answers_the_protocol_this_build_speaks ... ok
[INFO] [stdout] test discovery::tests::codex_metadata_cache_keeps_last_good_result_when_sqlite_refresh_fails ... ok
[INFO] [stdout] test pty::tests::a_shell_id_is_the_last_segment_of_its_daemon_id_even_when_the_session_key_has_pipes ... ok
[INFO] [stdout] test pty::tests::a_socket_path_within_sun_path_is_accepted ... ok
[INFO] [stdout] test pty::tests::a_spawn_environment_survives_the_daemon_wire ... ok
[INFO] [stdout] test discovery::tests::codex_state_metadata_enriches_resume_search_terms ... ok
[INFO] [stdout] test pty::tests::a_spec_from_before_the_environment_existed_still_parses ... ok
[INFO] [stdout] test pty::tests::a_terminal_that_has_printed_nothing_has_no_snapshot_to_send ... ok
[INFO] [stdout] test pty::tests::a_tui_attaching_past_the_raw_tail_scrolls_the_rows_above_the_checkpoint ... ok
[INFO] [stdout] test pty::tests::a_process_local_terminal_is_sized_by_its_viewers_too ... ok
[INFO] [stdout] test pty::tests::agent_command_uses_configured_provider_prefix ... ok
[INFO] [stdout] test pty::tests::a_viewer_whose_process_is_gone_stops_holding_the_terminal_small ... ok
[INFO] [stdout] test pty::tests::alternate_older_overlap_prefers_the_nearest_captured_occurrence ... ok
[INFO] [stdout] test pty::tests::a_spawned_agent_does_not_inherit_the_launching_session_markers ... ok
[INFO] [stdout] test pty::tests::a_poll_that_replays_the_whole_ring_sends_no_snapshot_beside_it ... ok
[INFO] [stdout] test pty::tests::a_poll_reports_the_size_the_pty_is_running_at ... ok
[INFO] [stdout] test pty::tests::alternate_selection_aligns_fixed_chrome_and_distant_captured_rows ... ok
[INFO] [stdout] test pty::tests::alternate_selection_keeps_repeated_content_and_replaces_dynamic_chrome ... ok
[INFO] [stdout] test pty::tests::alternate_selection_merges_overlapping_repaints_without_duplicates ... ok
[INFO] [stdout] test pty::tests::a_shell_handle_is_the_same_terminal_every_surface_gets ... ok
[INFO] [stdout] test pty::tests::an_alternate_screen_has_no_rows_above_it_to_send ... ok
[INFO] [stdout] test pty::tests::an_explicit_setting_of_its_own_is_left_alone ... ok
[INFO] [stdout] test pty::tests::an_over_long_socket_path_fails_with_the_length_the_limit_and_the_fix ... ok
[INFO] [stdout] test pty::tests::both_providers_are_kept_off_the_alternate_screen ... ok
[INFO] [stdout] test events::tests::sqlite_index_reads_only_new_records_and_resets_after_rotation ... ok
[INFO] [stdout] test pty::tests::clicks_outside_terminal_panes_are_ignored_without_coordinate_underflow ... ok
[INFO] [stdout] test pty::tests::close_shell_is_immediate_only_when_shell_has_focus ... ok
[INFO] [stdout] test pty::tests::claude_resume_cwd_returns_cwd_when_no_worktree ... ok
[INFO] [stdout] test pty::tests::claude_resume_cwd_walks_up_to_project_root_when_in_worktree ... ok
[INFO] [stdout] test pty::tests::alternate_selection_serializes_scrolls_and_bounds_captured_rows ... ok
[INFO] [stdout] test app::tests::legacy_daemon_agent_is_hydrated_before_stale_restart_decision ... ok
[INFO] [stdout] test pty::tests::command_block_capture_excludes_output_before_the_last_submitted_command ... ok
[INFO] [stdout] test pty::tests::console_mouse_events_encode_as_sgr_input ... ok
[INFO] [stdout] test pty::tests::console_key_events_encode_as_terminal_input ... ok
[INFO] [stdout] test pty::tests::command_construction_uses_provider_resume_contracts ... ok
[INFO] [stdout] test doctor::tests::version_policy_and_local_state_probes_are_deterministic ... ok
[INFO] [stdout] test pty::tests::daemon_lease_refuses_a_second_owner_and_force_takeover_revokes_the_first ... ok
[INFO] [stdout] test pty::tests::codex_style_scrollback_retains_more_than_two_hundred_lines ... FAILED
[INFO] [stdout] test pty::tests::a_sessions_shells_are_listed_with_the_ids_that_address_them ... ok
[INFO] [stdout] test pty::tests::a_resync_carries_rows_the_raw_ring_no_longer_holds_and_only_when_asked ... ok
[INFO] [stdout] test pty::tests::direct_shell_controls_do_not_require_session_list_focus ... ok
[INFO] [stdout] test pty::tests::enhanced_control_sequences_keep_workspace_shortcuts_working ... ok
[INFO] [stdout] test pty::tests::escape_is_never_a_console_command_and_is_flushed_to_the_child ... ok
[INFO] [stdout] test pty::tests::each_snapshot_row_closes_its_own_colour ... ok
[INFO] [stdout] test pty::tests::every_workspace_shortcut_routes_in_its_allowed_focus ... ok
[INFO] [stdout] test pty::tests::focused_session_list_accepts_navigation_and_creation_actions ... ok
[INFO] [stdout] test pty::tests::focused_session_list_footer_shows_rename_search_alert_and_help ... ok
[INFO] [stdout] test pty::tests::focused_session_list_has_a_visible_focus_badge ... ok
[INFO] [stdout] test pty::tests::a_shell_is_borrowed_by_id_and_only_from_its_own_session ... ok
[INFO] [stdout] test pty::tests::focused_sidebar_highlights_the_selected_item_instead_of_the_title ... ok
[INFO] [stdout] test pty::tests::alternate_scroll_timeout_releases_a_boundary_and_sends_the_queued_reverse ... ok
[INFO] [stdout] test pty::tests::daemon_checkpoint_carries_codex_scrollback_beyond_the_raw_tail ... ok
[INFO] [stdout] test pty::tests::closing_one_shell_leaves_the_others_alive_and_keeps_the_selection_in_range ... ok
[INFO] [stdout] test pty::tests::modified_enter_encodings_are_forwarded_to_child ... ok
[INFO] [stdout] test pty::tests::daemon_ensure_is_idempotent_and_keeps_terminal_state_between_clients ... ok
[INFO] [stdout] test pty::tests::daemon_replay_preserves_screen_after_raw_history_rollover ... ok
[INFO] [stdout] test pty::tests::focused_shell_footer_shows_all_direct_controls ... ok
[INFO] [stdout] test pty::tests::daemon_ensure_restarts_a_terminal_after_the_previous_process_exits ... ok
[INFO] [stdout] test pty::tests::focus_cycles_sessions_agent_and_shell ... ok
[INFO] [stdout] test pty::tests::mouse_click_is_forwarded_to_an_agent_tui_that_requested_mouse_reporting ... ok
[INFO] [stdout] test pty::tests::a_second_viewer_shrinks_the_pty_and_its_leaving_gives_the_size_back ... ok
[INFO] [stdout] test pty::tests::dragging_past_the_pane_edge_scrolls_and_keeps_selecting ... ok
[INFO] [stdout] test pty::tests::managed_terminal_poll_raw_reports_offsets_and_bytes_since_the_cursor ... ok
[INFO] [stdout] test pty::tests::maximized_agent_renders_the_live_pty_instead_of_the_session_preview ... ok
[INFO] [stdout] test pty::tests::no_daemon_at_all_is_not_an_out_of_date_one ... ok
[INFO] [stdout] test pty::tests::no_viewers_at_all_leaves_the_terminal_where_it_is ... ok
[INFO] [stdout] test pty::tests::one_viewer_gets_exactly_the_size_it_asked_for ... ok
[INFO] [stdout] test pty::tests::only_documented_control_bytes_are_reserved_in_child_focus ... ok
[INFO] [stdout] test pty::tests::alternate_screen_selection_keeps_pages_repainted_by_claude ... ok
[INFO] [stdout] test pty::tests::ordinary_keys_and_ctrl_t_are_forwarded_in_child_focus ... ok
[INFO] [stdout] test pty::tests::mouse_click_without_drag_does_not_select_or_copy ... ok
[INFO] [stdout] test pty::tests::pi_is_pinned_to_the_regular_tui_that_keeps_scrollback ... ok
[INFO] [stdout] test pty::tests::printable_custom_bindings_are_never_stolen_from_a_child ... ok
[INFO] [stdout] test pty::tests::pi_resumes_and_creates_through_one_session_id_flag ... ok
[INFO] [stdout] test pty::tests::mouse_reporting_keeps_the_pending_selection_anchor_while_scrolling ... ok
[INFO] [stdout] test pty::tests::mouse_drag_selects_text_in_one_pane ... ok
[INFO] [stdout] test pty::tests::mouse_wheel_extends_an_active_selection_across_history ... ok
[INFO] [stdout] test pty::tests::remote_terminal_marks_a_lost_daemon_dead_so_resume_can_respawn ... ok
[INFO] [stdout] test pty::tests::removed_function_and_ctrl_arrow_keys_are_forwarded ... ok
[INFO] [stdout] test pty::tests::ordinary_drag_selects_text_in_a_shell_pane ... ok
[INFO] [stdout] test pty::tests::shell_capture_is_bounded_and_bracketed_paste_does_not_submit ... ok
[INFO] [stdout] test pty::tests::rewriting_the_pi_hook_bridge_never_leaves_it_truncated ... ok
[INFO] [stdout] test pty::tests::subsequent_workspace_frame_does_not_clear_the_screen ... ok
[INFO] [stdout] test pty::tests::terminal_checkpoint_restores_screen_modes_and_scroll_region ... ok
[INFO] [stdout] test pty::tests::terminal_selection_collects_more_than_two_native_viewports ... ok
[INFO] [stdout] test pty::tests::pty_captures_output_accepts_input_and_outlives_detach_state ... ok
[INFO] [stdout] test pty::tests::ordinary_drag_selects_text_even_when_agent_requested_mouse_reporting ... ok
[INFO] [stdout] test pty::tests::mouse_wheel_uses_alternate_scroll_for_an_agent_tui_without_mouse_reporting ... ok
[INFO] [stdout] test pty::tests::rapid_alternate_wheels_wait_for_each_repaint ... ok
[INFO] [stdout] test pty::tests::the_blank_rows_a_bounded_scrollback_starts_with_are_dropped ... ok
[INFO] [stdout] test pty::tests::terminal_selection_spans_codex_status_bar_scrollback ... ok
[INFO] [stdout] test pty::tests::terminal_selection_keeps_its_history_anchor_across_viewport_scrolling ... ok
[INFO] [stdout] test pty::tests::mouse_wheel_scrolls_codex_style_history_above_a_status_bar ... ok
[INFO] [stdout] test pty::tests::the_scrollback_snapshot_is_the_rows_above_the_screen_and_none_of_the_ones_on_it ... ok
[INFO] [stdout] test pty::tests::mouse_wheel_prefers_outer_history_when_agent_requests_mouse_reporting ... ok
[INFO] [stdout] test pty::tests::unreserved_control_byte_is_forwarded_immediately ... ok
[INFO] [stdout] test pty::tests::vim_list_jumps_wait_for_a_second_g_and_leave_child_input_unchanged ... ok
[INFO] [stdout] test pty::tests::the_pi_hook_bridge_is_written_and_points_back_at_this_executable ... ok
[INFO] [stdout] test pty::tests::the_pty_is_sized_to_the_smallest_of_every_viewer_in_each_dimension ... ok
[INFO] [stdout] test pty::tests::the_snapshot_and_the_checkpoint_partition_the_retained_grid ... ok
[INFO] [stdout] test pty::tests::workspace_alert_renders_below_session_shortcut_hints ... ok
[INFO] [stdout] test pty::tests::workspace_disables_terminal_mouse_reporting ... ok
[INFO] [stdout] test pty::tests::mouse_wheel_scrolls_the_pane_under_the_pointer ... ok
[INFO] [stdout] test pty::tests::workspace_help_renders_contextual_session_shortcuts ... ok
[INFO] [stdout] test pty::tests::workspace_input_routes_sgr_mouse_wheel_with_coordinates ... ok
[INFO] [stdout] test pty::tests::workspace_layout_supports_maximize_restore_and_shell_area_resize ... ok
[INFO] [stdout] test pty::tests::workspace_requests_modified_key_reporting_only_for_agent_input ... ok
[INFO] [stdout] test pty::tests::workspace_reserves_an_agent_title_bar_and_shows_direct_shortcuts ... ok
[INFO] [stdout] test pty::tests::workspace_router_uses_configured_bindings_instead_of_defaults ... ok
[INFO] [stdout] test pty::tests::workspace_frame_is_synchronized_to_prevent_partial_redraw_flicker ... ok
[INFO] [stdout] test pty::tests::workspace_input_routes_legacy_x10_mouse_wheel_with_coordinates ... ok
[INFO] [stdout] test pty::tests::workspace_search_clears_sidebar_rows_removed_by_live_filter ... ok
[INFO] [stdout] test pty::tests::workspace_scroll_shortcuts_route_to_viewport_commands ... ok
[INFO] [stdout] test pty::tests::workspace_search_renders_live_query_and_controls ... ok
[INFO] [stdout] test pty::tests::workspace_search_handles_batched_editing_and_commit_input ... ok
[INFO] [stdout] test pty::tests::workspace_sidebar_is_compact_on_wide_terminals ... ok
[INFO] [stdout] test pty::tests::workspace_sidebar_shows_live_status_counts_above_sessions ... ok
[INFO] [stdout] test pty::tests::workspace_text_is_fitted_by_terminal_columns ... ok
[INFO] [stdout] test pty::tests::workspace_sidebar_colors_provider_labels_like_dashboard ... ok
[INFO] [stdout] test pty::tests::mouse_wheel_is_forwarded_to_an_agent_tui_that_requested_mouse_reporting ... ok
[INFO] [stdout] test prune::tests::cleanup_lock_excludes_dashboards_and_symlink_artifacts_are_rejected ... FAILED
[INFO] [stdout] test summary::tests::a_pi_summary_is_recovered_from_the_last_json_line_it_printed ... ok
[INFO] [stdout] test pty::tests::selection_uses_the_claude_style_alternate_screen_viewport ... ok
[INFO] [stdout] test pty::tests::terminal_selection_extracts_visible_cells_across_rows ... ok
[INFO] [stdout] test pty::tests::terminal_render_clears_stale_pane_cells ... ok
[INFO] [stdout] test summary::tests::parses_codex_and_claude_structured_output ... ok
[INFO] [stdout] test summary::tests::provider_commands_are_isolated_and_non_persistent ... ok
[INFO] [stdout] test pty::tests::selection_uses_the_displayed_codex_scrollback_viewport ... ok
[INFO] [stdout] test summary::tests::summary_backend_never_crosses_session_provider ... ok
[INFO] [stdout] test summary::tests::structured_output_survives_wrapper_banners_and_ansi_noise ... ok
[INFO] [stdout] test summary::tests::rolling_prompt_redacts_secrets_and_is_bounded ... ok
[INFO] [stdout] test summary::tests::summary_can_use_a_shell_alias ... ok
[INFO] [stdout] test summary::tests::summary_uses_the_same_configured_provider_command ... ok
[INFO] [stdout] test tests::a_flag_missing_its_value_or_given_a_bad_one_is_reported ... ok
[INFO] [stdout] test summary::tests::the_prompt_is_an_argument_so_a_tty_wrapper_cannot_swallow_it ... ok
[INFO] [stdout] test tests::cli_help_documents_the_embedded_server_and_keeps_the_web_subcommand ... ok
[INFO] [stdout] test summary::tests::summary_process_starts_in_its_own_session ... ok
[INFO] [stdout] test tests::cli_help_exposes_non_interactive_metadata_commands ... ok
[INFO] [stdout] test store::tests::malformed_state_is_deferred_then_recovered_on_clean_exit ... ok
[INFO] [stdout] test store::tests::legacy_json_state_is_imported_once_into_sqlite ... ok
[INFO] [stdout] test summary::tests::schema_is_written_atomically ... ok
[INFO] [stdout] test store::tests::a_title_cached_under_older_parsing_rules_is_re_derived_once ... ok
[INFO] [stdout] test pty::tests::alternate_mouse_reporting_selection_captures_the_scrolled_page ... ok
[INFO] [stdout] test tests::dashboard_sidebar_is_compact_on_wide_terminals ... ok
[INFO] [stdout] test prune::tests::activity_after_preview_and_open_provider_processes_prevent_deletion ... ok
[INFO] [stdout] test tests::help_is_recognized_wherever_it_appears_in_the_options ... ok
[INFO] [stdout] test pty::tests::terminal_viewport_scrolls_back_and_returns_to_live_tail ... ok
[INFO] [stdout] test pty::tests::workspace_title_reports_scrollback_offset ... ok
[INFO] [stdout] test store::tests::codex_instruction_titles_cached_under_rules_one_are_re_derived ... ok
[INFO] [stdout] test tests::keycaps_do_not_depend_on_a_dark_background_for_contrast ... ok
[INFO] [stdout] test tests::only_the_dashboard_accepts_no_web ... ok
[INFO] [stdout] test store::tests::state_round_trip ... ok
[INFO] [stdout] test tests::accepting_workspace_completion_keeps_the_field_active_for_child_completion ... ok
[INFO] [stdout] test tests::session_card_grid_adapts_columns_and_keeps_selection_visible ... ok
[INFO] [stdout] test tests::dashboard_leads_with_the_selected_session_task_and_current_focus ... ok
[INFO] [stdout] test tests::shift_tab_moves_new_session_fields_backwards ... ok
[INFO] [stdout] test tests::the_dashboard_takes_the_same_web_options_the_subcommand_does ... ok
[INFO] [stdout] test tests::the_header_web_line_carries_the_url_the_token_and_the_exposure ... ok
[INFO] [stdout] test summary::tests::child_output_larger_than_the_pipe_buffer_does_not_deadlock ... ok
[INFO] [stdout] test store::tests::event_append_is_private_and_retains_a_bounded_valid_tail ... ok
[INFO] [stdout] test tests::dashboard_highlights_the_card_linked_to_the_sidebar_selection ... ok
[INFO] [stdout] test tests::failed_session_priority_has_a_visible_fallback_without_a_summary_blocker ... ok
[INFO] [stdout] test tests::workspace_editor_view_keeps_a_long_path_cursor_visible ... ok
[INFO] [stdout] test tests::dashboard_footer_shows_all_primary_controls ... ok
[INFO] [stdout] test tests::dashboard_space_and_vim_jumps_follow_visible_rows ... ok
[INFO] [stdout] test tests::search_and_new_session_dialogs_show_their_contextual_controls ... ok
[INFO] [stdout] test tests::dashboard_mouse_wheel_navigates_the_session_list ... ok
[INFO] [stdout] test web::assets::tests::javascript_gets_a_javascript_mime_type ... ok
[INFO] [stdout] test web::assets::tests::the_letterbox_frames_the_screen_rather_than_the_emulator_root ... ok
[INFO] [stdout] test tests::help_panel_carries_the_web_address_in_the_dashboard_column ... ok
[INFO] [stdout] test tests::help_panel_keeps_every_group_visible_at_a_standard_terminal_size ... ok
[INFO] [stdout] test web::assets::tests::embedded_shell_assets_exist ... ok
[INFO] [stdout] test web::auth::tests::a_bearer_token_is_not_accepted_in_basic_mode ... ok
[INFO] [stdout] test web::assets::tests::unversioned_shell_assets_revalidate_so_an_upgrade_is_not_masked_by_a_stale_cache ... ok
[INFO] [stdout] test web::assets::tests::webmanifest_gets_the_manifest_mime_type ... ok
[INFO] [stdout] test web::auth::tests::a_correct_basic_header_authenticates ... ok
[INFO] [stdout] test web::auth::tests::configured_credentials_select_basic_and_expose_no_token ... ok
[INFO] [stdout] test web::auth::tests::a_stale_cookie_falls_back_to_the_header_rather_than_rejecting ... ok
[INFO] [stdout] test web::auth::tests::malformed_credentials_are_rejected_without_repeating_the_secret ... ok
[INFO] [stdout] test web::auth::tests::missing_token_returns_none ... ok
[INFO] [stdout] test web::auth::tests::no_configured_credentials_falls_back_to_a_random_token ... ok
[INFO] [stdout] test web::auth::tests::similar_but_unequal_tokens_do_not_match ... ok
[INFO] [stdout] test web::auth::tests::the_challenge_names_basic_so_the_browser_prompts_instead_of_the_app ... ok
[INFO] [stdout] test web::auth::tests::query_token_takes_precedence_over_header ... ok
[INFO] [stdout] test web::auth::tests::constant_time_comparison_still_answers_correctly ... ok
[INFO] [stdout] test web::auth::tests::credentials_split_on_the_first_colon_so_passwords_may_contain_colons ... ok
[INFO] [stdout] test web::auth::tests::the_session_cookie_authenticates_a_handshake_that_carries_no_header ... ok
[INFO] [stdout] test web::auth::tests::the_session_cookie_is_scoped_and_not_readable_from_script ... ok
[INFO] [stdout] test web::auth::tests::token_extracted_from_bearer_header ... ok
[INFO] [stdout] test web::auth::tests::wrong_basic_credentials_are_refused ... ok
[INFO] [stdout] test web::control::tests::a_blank_prompt_never_looks_staged ... ok
[INFO] [stdout] test web::control::tests::a_long_paste_shown_as_a_placeholder_still_counts_as_staged ... ok
[INFO] [stdout] test web::control::tests::a_prompt_is_recognised_on_screen_even_once_the_composer_has_wrapped_it ... ok
[INFO] [stdout] test web::control::tests::an_empty_or_whitespace_prompt_is_rejected_before_it_reaches_the_agent ... ok
[INFO] [stdout] test web::control::tests::the_paste_carries_the_prompt_but_never_an_enter ... ok
[INFO] [stdout] test web::control::tests::the_stop_button_sends_the_escape_the_agents_listen_for ... ok
[INFO] [stdout] test web::dashboard::doctor::tests::an_absent_provider_reports_no_version_verdict ... ok
[INFO] [stdout] test web::dashboard::doctor::tests::the_report_serializes_the_sections_the_diagnostics_panel_renders ... ok
[INFO] [stdout] test web::auth::tests::the_password_is_redacted_from_debug_output ... ok
[INFO] [stdout] test web::auth::tests::token_extracted_from_cookie ... ok
[INFO] [stdout] test tests::help_panel_separates_direct_session_list_and_child_bindings ... ok
[INFO] [stdout] test web::auth::tests::token_extracted_from_query_string ... ok
[INFO] [stdout] test tests::the_provider_arrows_walk_the_ring_in_opposite_directions ... ok
[INFO] [stdout] test web::dashboard::session_ops::tests::a_denied_lease_serializes_the_holder_the_takeover_button_names ... ok
[INFO] [stdout] test tests::session_list_groups_workspaces_and_uses_first_prompt_titles ... ok
[INFO] [stdout] test tests::search_filters_and_normalizes_selection_before_enter ... ok
[INFO] [stdout] test web::dashboard::session_ops::tests::a_lease_request_defaults_to_asking_rather_than_forcing ... ok
[INFO] [stdout] test tests::typing_in_focused_workspace_replaces_the_default_path ... ok
[INFO] [stdout] test tests::workspace_editor_moves_and_deletes_unicode_characters_safely ... ok
[INFO] [stdout] test tests::workspace_editor_inserts_and_deletes_at_the_cursor ... ok
[INFO] [stdout] test web::dashboard::shell_capture::tests::a_checkpoint_and_the_bytes_after_it_are_read_as_one_stream ... ok
[INFO] [stdout] test web::dashboard::shell_capture::tests::a_lease_conflict_while_staging_stays_a_lease_conflict ... ok
[INFO] [stdout] test web::dashboard::shell_capture::tests::a_missing_session_or_shell_is_a_404_and_an_empty_shell_is_a_conflict ... ok
[INFO] [stdout] test web::dashboard::shell_capture::tests::staging_wraps_the_capture_in_the_markers_the_agent_is_told_to_read ... ok
[INFO] [stdout] test web::dashboard::shell_capture::tests::the_capture_is_the_same_plain_text_the_tui_copies ... ok
[INFO] [stdout] test web::dashboard::shell_capture::tests::the_staged_payload_is_a_paste_and_never_submits_the_turn ... ok
[INFO] [stdout] test web::agent::tests::a_session_with_a_transcript_resumes_instead_of_starting_over ... ok
[INFO] [stdout] test web::dialog::tests::a_confirm_hint_alone_is_not_a_prompt ... ok
[INFO] [stdout] test web::dialog::tests::a_dialog_drawn_inside_a_box_is_still_a_dialog ... ok
[INFO] [stdout] test web::dialog::tests::a_label_in_any_script_survives_the_round_trip ... ok
[INFO] [stdout] test tests::dashboard_renders_at_small_and_large_sizes ... ok
[INFO] [stdout] test web::dialog::tests::a_list_far_from_its_supposed_footer_is_not_a_dialog ... ok
[INFO] [stdout] test web::dialog::tests::a_pi_cursor_menu_folds_a_wrapped_path_into_the_option_above_it ... ok
[INFO] [stdout] test web::dialog::tests::a_numbered_trust_dialog_keeps_its_question_and_answers_with_a_digit ... ok
[INFO] [stdout] test web::dialog::tests::a_stale_list_above_a_live_dialog_never_wins_over_the_dialog ... ok
[INFO] [stdout] test web::dialog::tests::an_option_the_dialog_does_not_offer_has_no_answer ... ok
[INFO] [stdout] test web::dialog::tests::an_unnumbered_trust_dialog_is_answered_by_walking_the_highlight ... ok
[INFO] [stdout] test web::dialog::tests::ordinary_assistant_output_is_not_a_dialog ... ok
[INFO] [stdout] test web::dialog::tests::the_codex_update_menu_keeps_its_marked_first_option ... ok
[INFO] [stdout] test web::dialog::tests::the_marked_label_is_recoverable_from_the_screen ... ok
[INFO] [stdout] test web::messages::tests::a_blank_cursor_is_the_same_as_not_sending_one ... ok
[INFO] [stdout] test web::messages::tests::each_cursor_selects_its_own_direction_and_neither_means_the_tail ... ok
[INFO] [stdout] test web::messages::tests::asking_for_both_directions_at_once_is_rejected ... ok
[INFO] [stdout] test web::origin::tests::a_different_port_on_this_machine_is_a_different_origin ... ok
[INFO] [stdout] test web::origin::tests::a_handshake_with_no_origin_is_allowed_so_non_browser_clients_still_work ... ok
[INFO] [stdout] test web::origin::tests::an_opaque_origin_is_refused_rather_than_treated_as_absent ... ok
[INFO] [stdout] test web::origin::tests::a_tls_terminating_proxy_still_counts_as_the_same_origin ... ok
[INFO] [stdout] test web::origin::tests::an_origin_carrying_a_path_does_not_get_to_smuggle_the_host_past_the_check ... ok
[INFO] [stdout] test web::origin::tests::an_origin_with_no_host_to_compare_against_is_refused ... ok
[INFO] [stdout] test web::agent::tests::a_session_without_a_transcript_launches_as_new_rather_than_resuming ... ok
[INFO] [stdout] test web::dashboard::notifications::tests::the_selected_session_still_raises_an_alert_once_suppression_is_off ... ok
[INFO] [stdout] test web::origin::tests::the_page_the_console_serves_can_open_its_own_socket ... ok
[INFO] [stdout] test web::origin::tests::localhost_and_the_loopback_literal_are_not_interchangeable ... ok
[INFO] [stdout] test web::dashboard::notifications::tests::a_read_entry_stays_in_the_queue_so_a_second_client_still_sees_it ... ok
[INFO] [stdout] test web::dashboard::notifications::tests::every_alert_carries_a_stable_id_and_a_timestamp_clients_can_order_by ... ok
[INFO] [stdout] test web::origin::tests::another_site_is_refused_even_though_it_reaches_the_same_server ... ok
[INFO] [stdout] test web::origin::tests::the_host_comparison_ignores_case ... ok
[INFO] [stdout] test web::screen::tests::bracketed_paste_is_reported_only_once_the_agent_turns_it_on ... ok
[INFO] [stdout] test web::screen::tests::a_checkpoint_replaces_the_screen_instead_of_appending_to_it ... ok
[INFO] [stdout] test web::screen::tests::forgetting_a_session_drops_its_screen ... ok
[INFO] [stdout] test web::screen::tests::resizing_reflows_the_tracked_screen ... ok
[INFO] [stdout] test web::screen::tests::the_screen_reads_back_what_the_terminal_drew ... ok
[INFO] [stdout] test web::dashboard::notifications::tests::marking_read_is_idempotent_and_clearing_all_reports_what_it_changed ... ok
[INFO] [stdout] test web::dashboard::notifications::tests::an_unknown_id_is_not_in_the_queue ... ok
[INFO] [stdout] test web::dashboard::session_ops::tests::clearing_with_a_null_alias_is_the_same_as_clearing_with_an_empty_one ... ok
[INFO] [stdout] test web::dashboard::session_ops::tests::an_alias_round_trips_through_the_store_the_tui_reads ... ok
[INFO] [stdout] test web::dashboard::session_ops::tests::renaming_or_retrying_an_unknown_session_is_a_404_rather_than_a_server_error ... ok
[INFO] [stdout] test web::dashboard::session_ops::tests::retrying_a_summary_by_key_matches_the_selection_based_binding ... ok
[INFO] [stdout] test web::settings::tests::a_malformed_credential_names_its_own_source ... ok
[INFO] [stdout] test web::settings::tests::an_unparseable_port_or_flag_from_the_environment_is_reported_not_ignored ... ok
[INFO] [stdout] test web::settings::tests::a_host_that_cannot_be_resolved_says_so_instead_of_panicking ... ok
[INFO] [stdout] test web::settings::tests::credentials_fall_through_to_the_config_file_when_nothing_else_sets_them ... ok
[INFO] [stdout] test web::settings::tests::loopback_literals_are_recognized ... ok
[INFO] [stdout] test web::settings::tests::nothing_configured_binds_loopback_on_the_default_port_with_no_credentials ... ok
[INFO] [stdout] test web::settings::tests::the_command_line_overrides_the_config_file_in_both_directions ... ok
[INFO] [stdout] test web::settings::tests::the_config_file_supplies_host_and_port_when_nothing_overrides_them ... ok
[INFO] [stdout] test web::settings::tests::the_embedded_server_can_be_switched_off_from_either_source ... ok
[INFO] [stdout] test web::settings::tests::the_environment_sits_between_the_command_line_and_the_config_file ... ok
[INFO] [stdout] test web::settings::tests::wildcard_and_lan_binds_are_flagged ... ok
[INFO] [stdout] test web::shells::tests::a_shell_serializes_to_the_id_and_name_the_web_ui_switches_on ... ok
[INFO] [stdout] test web::shells::tests::a_missing_session_or_shell_is_a_404_and_a_dead_directory_is_a_conflict ... ok
[INFO] [stdout] test web::settings::tests::a_hostname_resolves_to_a_loopback_bind ... ok
[INFO] [stdout] test web::dashboard::tests::the_session_list_still_answers_on_its_own_path ... ok
[INFO] [stdout] test prune::tests::confirmed_prune_removes_all_three_providers_and_preserves_other_sessions ... ok
[INFO] [stdout] test web::tests::an_ipv6_literal_is_bracketed_so_the_printed_url_parses ... ok
[INFO] [stdout] test web::session_json::tests::sessions_group_by_workspace_with_the_most_recent_work_first ... ok
[INFO] [stdout] test web::session_json::tests::an_empty_query_filters_nothing_and_a_miss_filters_everything ... ok
[INFO] [stdout] test web::session_json::tests::a_session_reports_its_alias_separately_from_the_title_it_falls_back_to ... ok
[INFO] [stdout] test web::session_json::tests::the_response_carries_the_header_the_dashboard_draws_beside_the_list ... ok
[INFO] [stdout] test web::session_json::tests::filtering_matches_every_field_the_tui_search_matches ... ok
[INFO] [stdout] test web::session_json::tests::matching_ignores_case_and_surrounding_whitespace_like_the_dialog_does ... ok
[INFO] [stdout] test web::session_json::tests::the_status_counts_cover_every_session_even_when_the_list_is_filtered ... ok
[INFO] [stdout] test web::session_json::tests::the_grouped_response_matches_the_shape_the_web_ui_consumes ... ok
[INFO] [stdout] test web::session_json::tests::session_json_serializes_agent_and_status_as_lowercase_strings ... ok
[INFO] [stdout] test web::tests::token_mode_puts_the_token_in_the_url_and_basic_mode_does_not ... ok
[INFO] [stdout] test web::transcript::block::tests::a_typed_slash_command_reads_back_as_the_user_typed_it ... ok
[INFO] [stdout] test web::transcript::block::tests::a_wholly_injected_payload_leaves_no_conversation_behind ... ok
[INFO] [stdout] test web::transcript::block::tests::an_instruction_appended_to_a_real_message_is_cut_off_it ... ok
[INFO] [stdout] test web::transcript::block::tests::capping_leaves_short_values_untouched_including_multibyte_ones ... ok
[INFO] [stdout] test web::transcript::block::tests::capping_marks_the_cut_and_reports_the_original_size ... ok
[INFO] [stdout] test web::transcript::block::tests::capping_never_splits_a_multibyte_character ... ok
[INFO] [stdout] test web::transcript::codex::tests::a_failed_exec_result_is_reported_as_not_ok ... ok
[INFO] [stdout] test web::transcript::codex::tests::the_shell_behind_a_codex_exec_call_is_what_gets_summarised ... ok
[INFO] [stdout] test web::tests::a_same_origin_handshake_gets_past_the_origin_check ... ok
[INFO] [stdout] test web::transcript::tests::a_bogus_backward_cursor_falls_back_to_the_tail ... ok
[INFO] [stdout] test web::transcript::tests::a_backward_window_that_lands_mid_line_drops_the_partial_record ... ok
[INFO] [stdout] test web::transcript::tests::a_claude_assistant_turn_keeps_thinking_text_and_tool_calls_in_order ... ok
[INFO] [stdout] test web::agent::tests::re_ensuring_an_agent_ignores_the_new_size_so_attach_has_to_resize ... ok
[INFO] [stdout] test web::transcript::tests::a_cancelled_pi_shell_command_does_not_read_as_a_success ... ok
[INFO] [stdout] test web::tests::a_client_that_sends_no_origin_is_not_refused ... ok
[INFO] [stdout] test web::transcript::tests::a_codex_compaction_does_not_replay_history_the_transcript_already_holds ... ok
[INFO] [stdout] test web::tests::a_cross_origin_websocket_handshake_is_refused_even_with_valid_credentials ... ok
[INFO] [stdout] test web::transcript::tests::a_cursor_returns_only_what_was_appended_after_it ... ok
[INFO] [stdout] test web::transcript::tests::a_client_far_behind_catches_up_from_the_oldest_unseen_message ... ok
[INFO] [stdout] test web::transcript::tests::a_compaction_is_rendered_when_it_is_the_only_history_the_window_can_see ... ok
[INFO] [stdout] test web::transcript::tests::a_half_written_final_line_is_left_for_the_next_poll ... ok
[INFO] [stdout] test web::transcript::tests::a_pi_branch_summary_is_shown_where_a_compaction_would_be_suppressed ... ok
[INFO] [stdout] test web::transcript::tests::a_failed_claude_tool_result_is_reported_as_not_ok ... ok
[INFO] [stdout] test web::transcript::tests::a_pi_tool_result_is_its_own_message_and_names_the_call_it_answers ... ok
[INFO] [stdout] test web::transcript::tests::a_pi_assistant_turn_keeps_thinking_text_and_tool_calls_in_order ... ok
[INFO] [stdout] test web::transcript::tests::a_message_serializes_to_the_shape_the_web_ui_expects ... ok
[INFO] [stdout] test web::transcript::tests::a_small_base64_image_is_relayed_as_a_data_uri ... ok
[INFO] [stdout] test web::transcript::tests::a_typed_slash_command_survives_the_noise_filter ... ok
[INFO] [stdout] test web::transcript::tests::a_fresh_read_returns_the_tail_of_the_conversation_not_its_head ... ok
[INFO] [stdout] test web::transcript::tests::a_pi_user_bash_line_reads_as_a_command_and_its_output ... ok
[INFO] [stdout] test web::transcript::tests::a_stale_or_bogus_cursor_falls_back_to_the_tail_instead_of_failing ... ok
[INFO] [stdout] test web::transcript::tests::an_earlier_page_is_strictly_older_than_the_page_it_came_from ... ok
[INFO] [stdout] test web::transcript::tests::every_page_reports_both_edges_so_a_client_can_walk_either_way ... ok
[INFO] [stdout] test web::transcript::tests::codex_developer_instructions_and_stream_echoes_never_reach_the_conversation ... ok
[INFO] [stdout] test web::transcript::tests::injected_reminders_and_bookkeeping_lines_are_filtered_out_of_claude ... ok
[INFO] [stdout] test web::transcript::tests::codex_tool_calls_are_summarised_by_the_shell_they_ran ... ok
[INFO] [stdout] test web::transcript::tests::reaching_the_start_of_the_file_stops_offering_earlier_pages ... ok
[INFO] [stdout] test web::transcript::tests::sidechain_subagent_turns_stay_out_of_the_main_conversation ... ok
[INFO] [stdout] test web::transcript::timestamp::tests::a_leap_day_lands_on_the_right_second ... ok
[INFO] [stdout] test web::transcript::timestamp::tests::malformed_or_pre_epoch_timestamps_are_rejected_rather_than_wrapping ... ok
[INFO] [stdout] test web::transcript::timestamp::tests::provider_timestamps_convert_to_unix_seconds ... ok
[INFO] [stdout] test web::ws::tests::a_refused_write_reports_its_own_code_so_the_view_can_offer_a_takeover ... ok
[INFO] [stdout] test web::tests::an_uncredentialed_request_is_refused_before_the_busy_check_runs ... ok
[INFO] [stdout] test web::ws::tests::an_exit_frame_names_the_reason_the_stream_stopped ... ok
[INFO] [stdout] test web::ws::tests::the_scrollback_frame_carries_the_rows_as_text_the_browser_can_parse ... ok
[INFO] [stdout] test web::ws::tests::the_size_frame_names_the_size_the_pty_is_actually_running_at ... ok
[INFO] [stdout] test web::transcript::tests::pi_bookkeeping_entries_stay_out_of_the_conversation ... ok
[INFO] [stdout] test web::tests::an_unmounted_path_falls_through_to_the_app_shell ... ok
[INFO] [stdout] test web::tests::the_shell_and_health_survive_a_held_app_lock ... ok
[INFO] [stdout] test web::tests::the_app_shell_stays_public_in_basic_mode_so_the_page_can_load ... ok
[INFO] [stdout] test web::tests::basic_mode_does_not_also_accept_a_query_token ... ok
[INFO] [stdout] test web::tests::the_agent_socket_keeps_its_own_path_beside_the_shell_ones ... ok
[INFO] [stdout] test web::transcript::tests::an_oversized_base64_image_is_announced_without_relaying_its_payload ... ok
[INFO] [stdout] test web::transcript::tests::oversized_tool_output_is_truncated_with_its_original_size ... ok
[INFO] [stdout] test web::tests::web_archive_ignores_terminal_folding_and_search ... ok
[INFO] [stdout] test web::transcript::tests::paging_backwards_across_several_windows_reassembles_the_whole_conversation ... ok
[INFO] [stdout] test web::ws::tests::an_abruptly_dropped_socket_stops_holding_the_terminal_small ... ok
[INFO] [stdout] test web::tests::basic_mode_challenges_every_api_and_websocket_route ... ok
[INFO] [stdout] test web::tests::the_shell_routes_are_mounted_and_token_guarded ... ok
[INFO] [stdout] test web::dashboard::tests::every_dashboard_route_is_mounted_behind_the_token_layer ... ok
[INFO] [stdout] test web::tests::a_request_is_answered_rather_than_parked_while_the_dashboard_holds_the_app ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- pty::tests::codex_style_scrollback_retains_more_than_two_hundred_lines stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'pty::tests::codex_style_scrollback_retains_more_than_two_hundred_lines' (2473) panicked at src/pty.rs:8920:9:
[INFO] [stdout] expected long session history, retained only 108 rows
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x643058250041 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x643058269a5a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x643058255b6c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x6430582266a6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x643058246449 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x643057fa2730 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x643058246772 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x643058226752 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64305821e849 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x643058227b8d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x64305826a1bc - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x643057e68637 - agent_console[782b70abe1eac707]::pty::tests::codex_style_scrollback_retains_more_than_two_hundred_lines
[INFO] [stdout]   12:     0x643057e3d299 - <agent_console[782b70abe1eac707]::pty::tests::codex_style_scrollback_retains_more_than_two_hundred_lines::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x643057f95a1b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x643057fa3085 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x643057f9c944 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x643057fa61e2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x64305824ece9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7f71b5713dfa - <unknown>
[INFO] [stdout]   19:     0x7f71b57a73d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- prune::tests::cleanup_lock_excludes_dashboards_and_symlink_artifacts_are_rejected stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'prune::tests::cleanup_lock_excludes_dashboards_and_symlink_artifacts_are_rejected' (2379) panicked at src/prune.rs:1109:25:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: "WouldBlock"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x643058250041 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x643058269a5a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x643058255b6c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x6430582266a6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x643058246449 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x643057fa2730 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x643058246772 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x643058226752 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64305821e849 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x643058227b8d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x64305826a1bc - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x643058269f92 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x643057d45e6d - agent_console[782b70abe1eac707]::prune::tests::cleanup_lock_excludes_dashboards_and_symlink_artifacts_are_rejected
[INFO] [stdout]   13:     0x643057e3dcb9 - <agent_console[782b70abe1eac707]::prune::tests::cleanup_lock_excludes_dashboards_and_symlink_artifacts_are_rejected::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x643057f95a1b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x643057fa3085 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x643057f9c944 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x643057fa61e2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x64305824ece9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7f71b5713dfa - <unknown>
[INFO] [stdout]   20:     0x7f71b57a73d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     prune::tests::cleanup_lock_excludes_dashboards_and_symlink_artifacts_are_rejected
[INFO] [stdout]     pty::tests::codex_style_scrollback_retains_more_than_two_hundred_lines
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 422 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.45s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin agent-console`
[INFO] running `Command { std: "docker" "inspect" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5", kill_on_drop: false }`
[INFO] [stdout] 40438a30b31a6f7395f63e7218cd17cb6d6846102283c891acef135b0cc966b5
