meshcode 2.11.73__tar.gz → 2.11.74__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.73 → meshcode-2.11.74}/PKG-INFO +1 -1
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/__init__.py +1 -1
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/claude_update.py +6 -1
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/hostd.py +19 -5
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/self_update.py +63 -2
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.73 → meshcode-2.11.74}/pyproject.toml +1 -1
- {meshcode-2.11.73 → meshcode-2.11.74}/README.md +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/__main__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/cli.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/compat.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/daemon.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/doctor.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/hostd 3.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/invites.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/launcher.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/preferences.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/rpc_allowlist.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/secrets.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/up.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode/upload.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/PKG-INFO 2 +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/SOURCES 2.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/dependency_links 2.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/entry_points 2.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/requires 2.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/top_level 2.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/setup.cfg +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_closegap_1.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_closegap_2.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_closegap_3.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 10.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 11.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 12.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 13.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 14.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 15.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 16.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 17.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 18.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 19.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 2.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 20.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 21.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 22.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 3.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 4.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 5.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 6.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 7.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 8.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject 9.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_autonomous_prompt_inject.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_core.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_doctor.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_file_upload.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_marketplace_ratings.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_run_agent_dry_run.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_run_agent_no_server_import.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_self_update_user_site.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.73 → meshcode-2.11.74}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -60,9 +60,14 @@ def _is_claude_session() -> bool:
|
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
def _update_disabled() -> bool:
|
|
63
|
+
# task 399d7b51 FIX A (unify): honor MESHCODE_NO_AUTO_UPDATE too. hostd launcher / run_agent /
|
|
64
|
+
# schtasks set that var to disable ALL launch-time auto-update; previously only the meshcode-pip
|
|
65
|
+
# path checked MESHCODE_NO_UPDATE, so the claude-CLI blocking update still fired (extra hang).
|
|
63
66
|
if os.environ.get("MESHCODE_NO_UPDATE") == "1":
|
|
64
67
|
return True
|
|
65
|
-
if "
|
|
68
|
+
if os.environ.get("MESHCODE_NO_AUTO_UPDATE") == "1":
|
|
69
|
+
return True
|
|
70
|
+
if "--no-update" in sys.argv or "--no-auto-update" in sys.argv:
|
|
66
71
|
return True
|
|
67
72
|
return False
|
|
68
73
|
|
|
@@ -47,8 +47,18 @@ STATE_DIR = Path.home() / ".meshcode"
|
|
|
47
47
|
HOST_ID_PATH = STATE_DIR / "host_id"
|
|
48
48
|
LOG_PATH = STATE_DIR / "hostd.log"
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
def _env_poll_interval() -> int:
|
|
51
|
+
# task 399d7b51 SPEED: poll faster so click->desired_state->spawn latency drops (was 45s).
|
|
52
|
+
# Env-configurable (survives upgrade); floor 3s so we never hammer the DB.
|
|
53
|
+
try:
|
|
54
|
+
v = int(os.environ.get("MESHCODE_HOSTD_POLL_SEC", "10"))
|
|
55
|
+
except Exception:
|
|
56
|
+
v = 10
|
|
57
|
+
return max(3, v)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
POLL_INTERVAL_SEC = _env_poll_interval() # default 10s (was 45); env MESHCODE_HOSTD_POLL_SEC, floor 3
|
|
61
|
+
STALE_SECONDS = 150 # heartbeat liveness cutoff (QA #3) — do NOT lower (false respawns / boot-storm)
|
|
52
62
|
RESPAWN_TIMEOUT_SEC = 30
|
|
53
63
|
# statuses that mean "actively working" → never recycle mid-task
|
|
54
64
|
BUSY_STATUSES = {"working", "online", "busy"}
|
|
@@ -204,6 +214,7 @@ def _spawn_agent(project: str, agent: str, headless: bool = False) -> bool:
|
|
|
204
214
|
env = {k: v for k, v in os.environ.items()
|
|
205
215
|
if k not in ("CLAUDECODE", "CLAUDE_CODE_SESSION")}
|
|
206
216
|
env["MESHCODE_NO_AUTO_UPDATE"] = "1"
|
|
217
|
+
env["MESHCODE_NO_UPDATE"] = "1" # belt-and-suspenders: var honored pre-2.11.74 (no launch-hang)
|
|
207
218
|
log_dir = STATE_DIR / "logs"
|
|
208
219
|
try:
|
|
209
220
|
log_dir.mkdir(parents=True, exist_ok=True)
|
|
@@ -257,10 +268,11 @@ def _spawn_agent(project: str, agent: str, headless: bool = False) -> bool:
|
|
|
257
268
|
# on ';' -> file-not-found. Layered ON TOP of the 2.11.72 headless-flags fix (visible branch only).
|
|
258
269
|
if sys.platform == "win32":
|
|
259
270
|
cmd = (f'set "CLAUDECODE=" & set "CLAUDE_CODE_SESSION=" & '
|
|
260
|
-
f'set "MESHCODE_NO_AUTO_UPDATE=1" & "
|
|
271
|
+
f'set "MESHCODE_NO_AUTO_UPDATE=1" & set "MESHCODE_NO_UPDATE=1" & '
|
|
272
|
+
f'"{bin_}" run "{target}"')
|
|
261
273
|
else:
|
|
262
274
|
cmd = (f"unset CLAUDECODE CLAUDE_CODE_SESSION; export MESHCODE_NO_AUTO_UPDATE=1; "
|
|
263
|
-
f"exec {shlex.quote(bin_)} run {shlex.quote(target)}")
|
|
275
|
+
f"export MESHCODE_NO_UPDATE=1; exec {shlex.quote(bin_)} run {shlex.quote(target)}")
|
|
264
276
|
try:
|
|
265
277
|
from meshcode import protocol_handler as _ph
|
|
266
278
|
ok, info = _ph._spawn_terminal(cmd)
|
|
@@ -447,7 +459,9 @@ def _hostd_install_windows() -> int:
|
|
|
447
459
|
launch_cmd = STATE_DIR / "hostd-launch.cmd"
|
|
448
460
|
launch_cmd.write_text(
|
|
449
461
|
"@echo off\r\n"
|
|
450
|
-
'set "
|
|
462
|
+
'set "MESHCODE_NO_UPDATE=1"\r\n' # var honored pre-2.11.74 (belt-and-suspenders)
|
|
463
|
+
'set "MESHCODE_NO_AUTO_UPDATE=1"\r\n' # unified var (honored 2.11.74+)
|
|
464
|
+
'set "MESHCODE_HOSTD_POLL_SEC=10"\r\n' # faster click->spawn (default 10s, floor 3)
|
|
451
465
|
f'"{mc}" hostd run\r\n',
|
|
452
466
|
encoding="utf-8",
|
|
453
467
|
)
|
|
@@ -96,14 +96,59 @@ def is_pipx_install() -> bool:
|
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
def update_disabled() -> bool:
|
|
99
|
-
"""User explicitly opted out for this run / globally.
|
|
99
|
+
"""User explicitly opted out for this run / globally.
|
|
100
|
+
|
|
101
|
+
task 399d7b51 FIX A: honor BOTH var names. The hostd launcher, run_agent, and the 2.11.73
|
|
102
|
+
Windows schtasks installer all historically set MESHCODE_NO_AUTO_UPDATE (NOT MESHCODE_NO_UPDATE),
|
|
103
|
+
so the "disable" everyone believed they were applying was a silent NO-OP — every launch still
|
|
104
|
+
ran the blocking pip update (and hung on Windows WinError 32). Accept both names + flags.
|
|
105
|
+
"""
|
|
100
106
|
if os.environ.get("MESHCODE_NO_UPDATE") == "1":
|
|
101
107
|
return True
|
|
102
|
-
if "
|
|
108
|
+
if os.environ.get("MESHCODE_NO_AUTO_UPDATE") == "1":
|
|
109
|
+
return True
|
|
110
|
+
if "--no-update" in sys.argv or "--no-auto-update" in sys.argv:
|
|
103
111
|
return True
|
|
104
112
|
return False
|
|
105
113
|
|
|
106
114
|
|
|
115
|
+
def _selfheal_pip_turds() -> int:
|
|
116
|
+
"""FIX C (399d7b51): remove ~eshcode / ~~shcode leftovers that pip drops in site-packages when a
|
|
117
|
+
Windows overwrite of meshcode.exe fails (WinError 32). Best-effort; returns count removed."""
|
|
118
|
+
import glob
|
|
119
|
+
removed = 0
|
|
120
|
+
dirs = set()
|
|
121
|
+
try:
|
|
122
|
+
import site
|
|
123
|
+
for p in (site.getsitepackages() if hasattr(site, "getsitepackages") else []):
|
|
124
|
+
dirs.add(p)
|
|
125
|
+
try:
|
|
126
|
+
dirs.add(site.getusersitepackages())
|
|
127
|
+
except Exception:
|
|
128
|
+
pass
|
|
129
|
+
except Exception:
|
|
130
|
+
pass
|
|
131
|
+
try:
|
|
132
|
+
dirs.add(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
133
|
+
except Exception:
|
|
134
|
+
pass
|
|
135
|
+
for d in dirs:
|
|
136
|
+
if not d or not os.path.isdir(d):
|
|
137
|
+
continue
|
|
138
|
+
for pat in ("~eshcode*", "~~shcode*", "~~eshcode*"):
|
|
139
|
+
for t in glob.glob(os.path.join(d, pat)):
|
|
140
|
+
try:
|
|
141
|
+
if os.path.isdir(t):
|
|
142
|
+
import shutil as _sh
|
|
143
|
+
_sh.rmtree(t, ignore_errors=True)
|
|
144
|
+
else:
|
|
145
|
+
os.remove(t)
|
|
146
|
+
removed += 1
|
|
147
|
+
except Exception:
|
|
148
|
+
pass
|
|
149
|
+
return removed
|
|
150
|
+
|
|
151
|
+
|
|
107
152
|
def _version_tuple(v: str) -> Tuple[int, ...]:
|
|
108
153
|
parts = []
|
|
109
154
|
for p in v.split("."):
|
|
@@ -401,6 +446,22 @@ def check_and_maybe_update_blocking(verbose: bool = True, timeout_sec: int = 60)
|
|
|
401
446
|
# Dev mode — never touch the working tree from underneath the user.
|
|
402
447
|
return None
|
|
403
448
|
|
|
449
|
+
# FIX B+C (399d7b51): on Windows an inline `pip install -U meshcode` CANNOT overwrite
|
|
450
|
+
# meshcode.exe while a meshcode process is running (WinError 32) — it has hung ~10s and
|
|
451
|
+
# FAILED on every Windows launch since April, leaving ~eshcode/~~shcode turds. Do NOT block:
|
|
452
|
+
# self-heal the turds, then delegate to the NON-blocking staged updater (applies on a future
|
|
453
|
+
# clean start) and return immediately so the launch goes straight to the editor.
|
|
454
|
+
if sys.platform == "win32":
|
|
455
|
+
try:
|
|
456
|
+
_selfheal_pip_turds()
|
|
457
|
+
except Exception:
|
|
458
|
+
pass
|
|
459
|
+
try:
|
|
460
|
+
check_and_maybe_update(verbose=verbose) # non-blocking; never overwrites a live .exe inline
|
|
461
|
+
except Exception:
|
|
462
|
+
pass
|
|
463
|
+
return None
|
|
464
|
+
|
|
404
465
|
cur = _current_version()
|
|
405
466
|
latest = fetch_latest_version()
|
|
406
467
|
_mark_checked(latest)
|
|
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.73 → meshcode-2.11.74}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/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.73 → meshcode-2.11.74}/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.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/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.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/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.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.73 → meshcode-2.11.74}/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.73 → meshcode-2.11.74}/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
|