meshcode 2.11.79__tar.gz → 2.11.80__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {meshcode-2.11.79 → meshcode-2.11.80}/PKG-INFO +1 -1
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/__init__.py +1 -1
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/hostd.py +10 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/run_agent.py +10 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.79 → meshcode-2.11.80}/pyproject.toml +1 -1
- {meshcode-2.11.79 → meshcode-2.11.80}/README.md +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/__main__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/claude_update.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/cli.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/compat.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/daemon.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/doctor.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/invites.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/launcher.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/preferences.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/rpc_allowlist.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/secrets.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/self_update.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/up.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode/upload.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/setup.cfg +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_autonomous_closegap_1.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_autonomous_closegap_2.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_autonomous_closegap_3.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_autonomous_prompt_inject.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_core.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_doctor.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_file_upload.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_marketplace_ratings.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_run_agent_dry_run.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_run_agent_no_server_import.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_self_update_user_site.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.79 → meshcode-2.11.80}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -321,6 +321,16 @@ def _do_respawns(api_key: str, host_id: str) -> int:
|
|
|
321
321
|
# The old mc_set_desired_state(p_state=crashed) call passed NO agent id = no-op; dropped.
|
|
322
322
|
if rec and rec.get("give_up"):
|
|
323
323
|
_log(f"ALERT {proj}/{agent}: respawn cap hit — marked crashed (atomic). No more respawns.")
|
|
324
|
+
# task 843f282c Phase 2: an agent that spawned but NEVER came online (hit the cap) is
|
|
325
|
+
# almost always Claude Code not logged in (hangs on an invisible headless login prompt).
|
|
326
|
+
# Resolve the pending launch -> FE toast instead of an eternal spinner.
|
|
327
|
+
try:
|
|
328
|
+
_rpc("mc_resolve_launch", {
|
|
329
|
+
"p_api_key": api_key, "p_project_id": c.get("project_id"), "p_agent": agent,
|
|
330
|
+
"p_status": "failed", "p_reason": "spawn_failed",
|
|
331
|
+
"p_detail": "agent spawned but never connected — check Claude Code login (run `claude`)"})
|
|
332
|
+
except Exception:
|
|
333
|
+
pass
|
|
324
334
|
n += 1
|
|
325
335
|
return n
|
|
326
336
|
|
|
@@ -1082,6 +1082,16 @@ def run(agent: str, project: Optional[str] = None, editor_override: Optional[str
|
|
|
1082
1082
|
os.execvp(cmd[0], cmd)
|
|
1083
1083
|
except FileNotFoundError:
|
|
1084
1084
|
print(f"[meshcode] ERROR: '{editor}' not found in PATH", file=sys.stderr)
|
|
1085
|
+
# task 843f282c Phase 2: tell the dashboard WHY (claude_not_installed) so the pending launch
|
|
1086
|
+
# toast fires with an actionable message instead of spinning forever. Best-effort.
|
|
1087
|
+
try:
|
|
1088
|
+
from .comms_v4 import sb_rpc as _rpc_resolve
|
|
1089
|
+
_rpc_resolve("mc_resolve_launch", {
|
|
1090
|
+
"p_api_key": api_key, "p_project_id": project_id, "p_agent": agent,
|
|
1091
|
+
"p_status": "failed", "p_reason": "claude_not_installed",
|
|
1092
|
+
"p_detail": f"'{editor}' not found in PATH — install: npm i -g @anthropic-ai/claude-code"})
|
|
1093
|
+
except Exception:
|
|
1094
|
+
pass
|
|
1085
1095
|
return 127
|
|
1086
1096
|
except Exception as e:
|
|
1087
1097
|
print(f"[meshcode] ERROR launching {editor}: {e}", file=sys.stderr)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_cross_agent_messaging.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-backend-wt/tests/test_status_enum_coverage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-noun-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.79 → meshcode-2.11.80}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|