Skip to content

Named dockview layouts: blueprint + Docker cross-env name-collision fix#2435

Merged
joshalbrecht merged 14 commits into
mainfrom
mngr/add-dockview-profiles
Jul 14, 2026
Merged

Named dockview layouts: blueprint + Docker cross-env name-collision fix#2435
joshalbrecht merged 14 commits into
mainfrom
mngr/add-dockview-profiles

Describe the docker get_host fast path by what it now keys on

071e24e
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / Acceptance Tests completed Jul 14, 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): 332
  • Tests that ran more than once: 115
  • Tests marked @pytest.mark.flaky: 7
  • Flaky-recovered (failed then passed): 3
  • Failing (final): 0

Failures

libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_transfers_git_repo_with_untracked_files (attempt 1/7) — failure: AssertionError: CLI failed with stderr: Creating host test-modal-git-6660ccde in modal ... WARNING: No image or Dockerfile specified -- building from mngr default Dockerfile. Consider using your own...
/code/mngr/libs/mngr_modal/imbue/mngr_modal/test_modal_create.py:405: in test_mngr_create_transfers_git_repo_with_untracked_files
    assert result.returncode == 0, f"CLI failed with stderr: {result.stderr}\nstdout: {result.stdout}"
E   AssertionError: CLI failed with stderr: Creating host test-modal-git-6660ccde 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]
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-a4742ce1 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-a4742ce1 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]
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_cwd_override_on_modal (attempt 2/4) — failure: subprocess.TimeoutExpired: Command '['uv', 'run', 'mngr', 'exec', 'test-exec-cwd-eeb8de93', 'pwd', '--cwd', '/tmp']' timed out after 60 seconds
/code/mngr/libs/mngr_modal/imbue/mngr_modal/test_exec.py:90: in test_exec_cwd_override_on_modal
    result = _exec_on_agent(agent_name, "pwd", modal_subprocess_env, extra_args=["--cwd", "/tmp"])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/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-cwd-eeb8de93', 'pwd', '--cwd', '/tmp']' timed out after 60 seconds
Test Runs Final @flaky
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_transfers_git_repo_with_untracked_files 7 flaked 1, passed 6 no
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_cwd_override_on_modal 4 flaked 1, passed 3 no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_with_build_args_on_modal 2 flaked 1, passed 1 no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_entry_has_correct_fields 9 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_start_host_restores_from_snapshot 8 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-ovh] 6 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_create.py::test_mngr_create_with_transfer_git_worktree_on_modal_raises_error 6 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-claude] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-claude] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-imbue-cloud] 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-lima] 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_git_push_force_overwrites_diverged_remote 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_round_trips_files 4 passed no
libs/mngr/imbue/mngr/cli/test_doc_links.py::test_main_pinned_doc_url_resolves 4 passed no
libs/mngr/imbue/mngr/cli/test_doc_links.py::test_missing_doc_url_404s 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/hosts/test_host.py::test_rsync_files_remote_files_from_handling 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_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_with_git_info_source 4 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_nonexistent_host_record 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_create_and_list_snapshots 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_create_host_creates_sandbox_with_ssh 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_host_volume_is_symlinked_and_persists_data 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_list_snapshots_returns_initial_snapshot 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_restart_after_graceful_stop_without_initial_snapshot 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_restart_fails_after_hard_kill_without_initial_snapshot 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_start_host_clears_stop_reason_on_resume 4 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_start_host_on_stopped_host_uses_latest_resumable_snapshot 4 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-lima] 3 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr-ovh] 3 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[imbue-mngr] 3 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[modal-proxy] 3 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_excludes_test_files[resource-guards] 3 passed no
libs/mngr/imbue/mngr/api/test_sync_acceptance.py::test_git_push_transfers_commits_to_agent 3 passed no
libs/mngr/imbue/mngr/cli/test_urwid_tty.py::test_kqueue_tty_registration_with_piped_stdin 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/imbue/mngr/providers/ssh/test_ssh_provider.py::test_ssh_provider_execute_command 3 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_muted_agent_stays_muted_when_a_provider_fails 3 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_real_agent_gets_entry 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_modal_create.py::test_mngr_create_echo_command_on_modal 3 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_idle_shutdown.py::test_idle_shutdown_creates_both_initial_and_idle_snapshots 3 passed no
libs/mngr_notifications/imbue/mngr_notifications/test_notify.py::test_watcher_detects_running_to_waiting_via_observe_events 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-forward] 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-latchkey] 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-vps] 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[overlay] 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-forward] 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-vps] 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[minds] 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_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_create.py::test_cli_create_from_git_url 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_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_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_discover_hosts 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_muted_agent_in_muted_section 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_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_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/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_nonexistent_sandbox 2 passed no
libs/mngr_modal/imbue/mngr_modal/routes/test_snapshot_and_shutdown.py::test_snapshot_and_shutdown_success 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_transfers_git_repo_with_new_branch 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_instance.py::test_cidr_allowlist_allows_traffic_within_range 2 passed no
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_cidr_allowlist_restricts_network_access 2 passed yes
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_delete_snapshot 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_id 2 passed yes
libs/mngr_modal/imbue/mngr_modal/test_modal_instance.py::test_get_host_by_name 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_host_volume_data_readable_via_volume_interface 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_start_host_on_running_host 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_pair/imbue/mngr_pair/test_api.py::test_unison_syncer_handles_large_files 2 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr-modal] 1 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[imbue-mngr] 1 passed no
apps/minds/scripts/build_test.py::test_workspace_wheel_is_pure_python[modal-proxy] 1 passed no
libs/mngr/imbue/mngr/hosts/test_host.py::test_remote_lock_cooperatively_retains_lock_on_error_when_env_var_set 1 passed no
libs/mngr_kanpan/imbue/mngr_kanpan/test_fetcher_acceptance.py::test_fetch_board_snapshot_with_repo_paths_source 1 passed no
libs/mngr_modal/imbue/mngr_modal/test_exec.py::test_exec_failure_propagates_exit_code_on_modal 1 passed no
libs/mngr_modal/imbue/mngr_modal/test_snapshot.py::test_snapshot_create_then_list_on_modal 1 passed yes