Skip to content

Persist Electron logs and recover from renderer death across all window views#2428

Merged
joshalbrecht merged 17 commits into
mainfrom
gabriel/archetypal-mouse
Jul 14, 2026
Merged

Persist Electron logs and recover from renderer death across all window views#2428
joshalbrecht merged 17 commits into
mainfrom
gabriel/archetypal-mouse

Merge remote-tracking branch 'origin/main' into gabriel/archetypal-mouse

45c1a55
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / Acceptance Tests completed Jul 13, 2026 in 0s

Tests passed after flaky retries

One or more tests failed on first attempt but passed on retry. See the workflow run summary and job logs for the failed-attempt annotations and details.

Acceptance Tests: retry + flaky summary

  • Unique tests: 122
  • Total runs (attempts across retries): 352
  • Tests that ran more than once: 121
  • Tests marked @pytest.mark.flaky: 6
  • Flaky-recovered (failed then passed): 1
  • Failing (final): 0

Failures

libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_echo_on_modal (attempt 4/7) — failure: subprocess.TimeoutExpired: Command '['uv', 'run', 'mngr', 'exec', 'test-exec-echo-3a6376c2', 'echo hello-from-modal']' timed out after 60 seconds
/code/mngr/libs/mngr_modal/imbue/mngr_modal/test_exec.py:73: in test_exec_echo_on_modal
    result = _exec_on_agent(agent_name, "echo hello-from-modal", modal_subprocess_env)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/code/mngr/libs/mngr_modal/imbue/mngr_modal/test_exec.py:53: in _exec_on_agent
    return subprocess.run(
/usr/local/lib/python3.12/subprocess.py:550: in run
    stdout, stderr = process.communicate(input, timeout=timeout)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/subprocess.py:1209: in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/subprocess.py:2116: in _communicate
    self._check_timeout(endtime, orig_timeout, stdout, stderr)
/usr/local/lib/python3.12/subprocess.py:1253: in _check_timeout
    raise TimeoutExpired(
E   subprocess.TimeoutExpired: Command '['uv', 'run', 'mngr', 'exec', 'test-exec-echo-3a6376c2', 'echo hello-from-modal']' timed out after 60 seconds
Test Runs Final @flaky
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_echo_on_modal 7 flaked 1, passed 6 no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_echo_command_on_modal 10 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-modal] 9 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_success 9 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_delete_nonexistent_snapshot_raises_error 9 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-forward] 5 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_rsync_files_remote_to_remote 5 passed no
libs/mngr_claude/imbue/mngr_claude/test_claude_agent_dialog.py::test_send_message_raises_dialog_detected_when_dialog_visible 5 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_work_dir_set_for_local_agent 5 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-aws] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-latchkey] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-latchkey] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[minds] 4 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_git_pull_merges_agent_commits 4 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_git_push_transfers_commits_to_agent 4 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_rsync_dry_run_does_not_transfer 4 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_rsync_transfers_files_to_agent 4 passed no
libs/mngr/imbue/mngr/cli/test_plugin.py::test_plugin_add_path_and_remove_lifecycle 4 passed no
libs/mngr/imbue/mngr/cli/test_urwid_tty.py::test_kqueue_tty_registration_with_piped_stdin 4 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_git_transfer_remote_to_remote 4 passed no
libs/mngr/imbue/mngr/providers/ssh/test_ssh_provider.py::test_ssh_provider_destroy_host_raises_not_implemented 4 passed no
libs/mngr_claude/imbue/mngr_claude/test_claude_agent_dialog.py::test_send_message_does_not_raise_dialog_detected_when_no_dialog 4 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_cached_fields_updated 4 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_real_agent_gets_entry 4 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_with_repo_paths_source 4 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_local_snapshot_skips_remote_sources 4 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_nonexistent_sandbox 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_cwd_override_on_modal 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_failure_propagates_exit_code_on_modal 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_json_output_on_modal 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_cidr_allowlist_restricts_network_access 4 passed yes
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_discover_hosts_includes_created_host 4 passed yes
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_host_by_name 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_host_resources 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_offline_blocks_all_network_access 4 passed yes
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_upload_deploy_files_handles_large_set_on_modal 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-imbue-cloud] 3 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-vps] 3 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[overlay] 3 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_rsync_transfers_files_from_agent 3 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_create_work_dir_git_mirror_from_remote_source_to_local_target 3 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_entry_has_correct_fields 3 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_nonexistent_host_record 3 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_with_transfer_git_worktree_on_modal_raises_error 3 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_destroy_host_stops_sandbox_and_delete_host_removes_record 3 passed yes
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[concurrency-group] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-common] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-claude] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-lima] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-modal] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-ovh] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-vps] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[minds] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[modal-proxy] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[overlay] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[resource-guards] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[concurrency-group] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-common] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-aws] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-claude] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-forward] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-imbue-cloud] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-lima] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-ovh] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[modal-proxy] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[resource-guards] 2 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_git_push_force_overwrites_diverged_remote 2 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_rsync_round_trips_files 2 passed no
libs/mngr/imbue/mngr/cli/test_create.py::test_cli_create_from_git_url 2 passed no
libs/mngr/imbue/mngr/cli/test_doc_links.py::test_main_pinned_doc_url_resolves 2 passed no
libs/mngr/imbue/mngr/cli/test_doc_links.py::test_missing_doc_url_404s 2 passed no
libs/mngr/imbue/mngr/cli/test_doc_links.py::test_release_pinned_doc_url_resolves 2 passed no
libs/mngr/imbue/mngr/cli/test_urwid_tty.py::test_kqueue_tty_registration_with_direct_stdin 2 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_remote_lock_cooperatively_releases_lock_on_error 2 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_remote_lock_cooperatively_releases_lock_on_success 2 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_remote_lock_cooperatively_retains_lock_on_error_when_env_var_set 2 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_rsync_files_remote_files_from_handling 2 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_rsync_files_remote_to_remote_with_files_from 2 passed no
libs/mngr/imbue/mngr/providers/ssh/test_ssh_provider.py::test_ssh_provider_create_host_raises_not_implemented 2 passed no
libs/mngr/imbue/mngr/providers/ssh/test_ssh_provider.py::test_ssh_provider_discover_hosts 2 passed no
libs/mngr/imbue/mngr/providers/ssh/test_ssh_provider.py::test_ssh_provider_execute_command 2 passed no
libs/mngr/imbue/mngr/providers/ssh/test_ssh_provider.py::test_ssh_provider_get_host 2 passed no
libs/mngr/imbue/mngr/providers/ssh/test_ssh_provider.py::test_ssh_provider_get_host_by_id 2 passed no
libs/mngr/imbue/mngr/providers/ssh/test_ssh_provider.py::test_ssh_provider_host_id_is_deterministic 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_muted_agent_in_muted_section 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_muted_agent_stays_muted_when_a_provider_fails 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_with_git_info_source 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_with_no_agents 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_toggle_agent_mute_twice_returns_to_unmuted 2 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_missing_host_id 2 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_missing_sandbox_id 2 passed yes
libs/mngr_modal/imbue/mngr_modal/test_claude_usage_on_modal.py::test_provision_statusline_shim_on_modal_host 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_transfers_git_repo_with_new_branch 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_transfers_git_repo_with_untracked_files 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_with_build_args_on_modal 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_with_dockerfile_on_modal 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_with_failing_dockerfile_shows_build_failure 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_with_invalid_snapshot_id_fails 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_idle_shutdown.py::test_idle_shutdown_creates_both_initial_and_idle_snapshots 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_cidr_allowlist_allows_traffic_within_range 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_create_and_list_snapshots 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_create_host_creates_sandbox_with_ssh 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_delete_snapshot 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_and_set_host_tags 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_host_by_id 2 passed yes
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_host_by_name_not_found_raises_error 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_host_not_found_raises_error 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_host_volume_data_readable_via_volume_interface 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_host_volume_is_symlinked_and_persists_data 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_list_snapshots_returns_initial_snapshot 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_persistent_host_creates_shutdown_script 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_restart_after_graceful_stop_without_initial_snapshot 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_restart_fails_after_hard_kill_without_initial_snapshot 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_start_host_clears_stop_reason_on_resume 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_start_host_on_running_host 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_start_host_on_stopped_host_uses_latest_resumable_snapshot 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_start_host_restores_from_snapshot 2 passed no
libs/mngr_notifications/imbue/mngr_notifications/test_notify.py::test_watcher_detects_running_to_waiting_via_observe_events 2 passed no
libs/mngr_pair/imbue/mngr_pair/test_api.py::test_unison_syncer_handles_large_files 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_snapshot.py::test_snapshot_create_then_list_on_modal 1 passed no