Skip to content

Spec: mngr message delivery signals#2411

Draft
weishi-imbue wants to merge 2 commits into
mainfrom
mngr/compact
Draft

Spec: mngr message delivery signals#2411
weishi-imbue wants to merge 2 commits into
mainfrom
mngr/compact

Fix mngr message on hosts without GNU coreutils; drain stale tmux sig…

36affa6
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / Acceptance Tests completed Jul 9, 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): 278
  • 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_modal_create.py::test_mngr_create_with_build_args_on_modal (attempt 1/2) — failure: AssertionError: CLI failed with stderr: Creating host test-modal-build-f0a6b84e in modal ... WARNING: No image or Dockerfile specified -- building from mngr default Dockerfile. Consider using your o...
/code/mngr/libs/mngr_modal/imbue/mngr_modal/test_modal_create.py:216: in test_mngr_create_with_build_args_on_modal
    assert result.returncode == 0, f"CLI failed with stderr: {result.stderr}\nstdout: {result.stdout}"
E   AssertionError: CLI failed with stderr: Creating host test-modal-build-f0a6b84e in modal ...
E     WARNING: No image or Dockerfile specified -- building from mngr default Dockerfile. Consider using your own Dockerfile (-b --file=<path>) to include your project's dependencies for faster startup.
E     Waiting for sshd to be ready...
E     Traceback (most recent call last):
E       File "/code/mngr/libs/mngr_modal/imbue/mngr_modal/routes/deployment.py", line 25, in deploy_function
E         modal_interface.deploy(
E       File "/code/mngr/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 331, in wrapped_f
E         return copy(f, *args, **kw)
E                ^^^^^^^^^^^^^^^^^^^^
E       File "/code/mngr/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 470, in __call__
E         do = self.iter(retry_state=retry_state)
E              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E       File "/code/mngr/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 371, in iter
E         result = action(retry_state)
E                  ^^^^^^^^^^^^^^^^^^^
E       File "/code/mngr/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 393, in <lambda>
E         self._add_action_func(lambda rs: rs.outcome.result())
E                                          ^^^^^^^^^^^^^^^^^^^
E       File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
E         return self.__get_result()
E                ^^^^^^^^^^^^^^^^^^^
E       File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
E         raise self._exception
E       File "/code/mngr/.venv/lib/python3.12/site-packages/tenacity/__init__.py", line 473, in __call__
E         result = fn(*args, **kwargs)
E                  ^^^^^^^
... [truncated to 2000 chars]
Test Runs Final @flaky
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_with_build_args_on_modal 2 flaked 1, passed 1 no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-forward] 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-ovh] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[minds] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[overlay] 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_rsync_dry_run_does_not_transfer 4 passed no
libs/mngr/imbue/mngr/cli/test_create.py::test_cli_create_from_git_url 4 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_missing_host_id 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_delete_snapshot 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-claude] 3 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-modal] 3 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[resource-guards] 3 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_nonexistent_sandbox 3 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_success 3 passed no
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_cwd_override_on_modal 3 passed no
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_echo_on_modal 3 passed no
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_failure_propagates_exit_code_on_modal 3 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_cidr_allowlist_restricts_network_access 3 passed yes
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_host_by_id 3 passed yes
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_host_by_name 3 passed no
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-aws] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-imbue-cloud] 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-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-latchkey] 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-modal] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-vps] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[modal-proxy] 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_git_push_transfers_commits_to_agent 2 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_rsync_round_trips_files 2 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_rsync_transfers_files_from_agent 2 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_rsync_transfers_files_to_agent 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_plugin.py::test_plugin_add_path_and_remove_lifecycle 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/cli/test_urwid_tty.py::test_kqueue_tty_registration_with_piped_stdin 2 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_create_work_dir_git_mirror_from_remote_source_to_local_target 2 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_git_transfer_remote_to_remote 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 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_destroy_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_claude/imbue/mngr_claude/test_claude_agent_dialog.py::test_send_message_does_not_raise_dialog_detected_when_no_dialog 2 passed no
libs/mngr_claude/imbue/mngr_claude/test_claude_agent_dialog.py::test_send_message_raises_dialog_detected_when_dialog_visible 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_cached_fields_updated 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_entry_has_correct_fields 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_real_agent_gets_entry 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_fetch_board_snapshot_with_repo_paths_source 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_work_dir_set_for_local_agent 2 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_local_snapshot_skips_remote_sources 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_sandbox_id 2 passed yes
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_nonexistent_host_record 2 passed no
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_echo_command_on_modal 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_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_create.py::test_mngr_create_with_transfer_git_worktree_on_modal_raises_error 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_nonexistent_snapshot_raises_error 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_destroy_host_stops_sandbox_and_delete_host_removes_record 2 passed yes
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_discover_hosts_includes_created_host 2 passed yes
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_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_get_host_resources 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_offline_blocks_all_network_access 2 passed yes
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_modal/imbue/mngr_modal/test_modal_instance.py::test_upload_deploy_files_handles_large_set_on_modal 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