meshcode 2.11.44__tar.gz → 2.11.46__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.44 → meshcode-2.11.46}/PKG-INFO +1 -1
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/__init__.py +1 -1
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/server.py +137 -2
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.44 → meshcode-2.11.46}/pyproject.toml +1 -1
- {meshcode-2.11.44 → meshcode-2.11.46}/README.md +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/__main__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/cli.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/compat.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/daemon.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/doctor.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/invites.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/launcher.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/preferences.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/rpc_allowlist.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/secrets.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/self_update.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode/upload.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/PKG-INFO 2 +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/SOURCES 2.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/dependency_links 2.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/entry_points 2.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/requires 2.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/top_level 2.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/setup.cfg +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_core.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_doctor.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_run_agent_dry_run.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_run_agent_no_server_import.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_self_update_user_site.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.44 → meshcode-2.11.46}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -3353,6 +3353,53 @@ def _get_pending_tasks_summary() -> Optional[List[Dict[str, str]]]:
|
|
|
3353
3353
|
return None
|
|
3354
3354
|
|
|
3355
3355
|
|
|
3356
|
+
def _try_auto_claim_self_assigned_tasks(max_claims: int = 20) -> List[Dict[str, str]]:
|
|
3357
|
+
"""URGENT_RUNTIME_FIX_TASK_PULL (Samuel directive 2026-05-26T04:20Z msg
|
|
3358
|
+
a15d7ed4 + commander msg 0cfca3f3 AUTOCLAIM_ON_RECONNECT): claim every
|
|
3359
|
+
OPEN task already ASSIGNED to me but not yet claimed by anyone. Closes
|
|
3360
|
+
the 'tasks sit forever when agent was offline at create time' gap.
|
|
3361
|
+
|
|
3362
|
+
Always-on (NOT gated on autonomous_mode per Samuel msg a15d7ed4 quote:
|
|
3363
|
+
"antes siempre que habia task assigned el agente sabia que tenia un
|
|
3364
|
+
task assigned pendiente y no paraba hasta completar todos").
|
|
3365
|
+
|
|
3366
|
+
Returns the list of claimed task summaries (may be empty).
|
|
3367
|
+
"""
|
|
3368
|
+
claimed: List[Dict[str, str]] = []
|
|
3369
|
+
try:
|
|
3370
|
+
api_key = _get_api_key()
|
|
3371
|
+
if not api_key:
|
|
3372
|
+
return claimed
|
|
3373
|
+
result = be.task_list(api_key, _PROJECT_ID, AGENT_NAME, status_filter="open")
|
|
3374
|
+
if not isinstance(result, dict) or not result.get("ok"):
|
|
3375
|
+
return claimed
|
|
3376
|
+
tasks = result.get("tasks", [])
|
|
3377
|
+
candidates = [
|
|
3378
|
+
t for t in tasks
|
|
3379
|
+
if t.get("assignee") == AGENT_NAME
|
|
3380
|
+
and not t.get("claimed_by")
|
|
3381
|
+
and t.get("status") == "open"
|
|
3382
|
+
]
|
|
3383
|
+
# Sort urgent → high → normal → low, oldest first within priority
|
|
3384
|
+
_PRIO = {"urgent": 0, "high": 1, "normal": 2, "low": 3}
|
|
3385
|
+
candidates.sort(key=lambda t: (_PRIO.get(t.get("priority", "normal"), 2), t.get("created_at", "")))
|
|
3386
|
+
for target in candidates[:max_claims]:
|
|
3387
|
+
claim_result = be.sb_rpc("mc_task_claim", {
|
|
3388
|
+
"p_api_key": api_key,
|
|
3389
|
+
"p_task_id": target["id"],
|
|
3390
|
+
})
|
|
3391
|
+
if isinstance(claim_result, dict) and claim_result.get("ok"):
|
|
3392
|
+
log.info(f"[meshcode] auto-claimed self-assigned task: {target['title'][:60]}")
|
|
3393
|
+
claimed.append({
|
|
3394
|
+
"id": target["id"][:8],
|
|
3395
|
+
"title": target["title"][:80],
|
|
3396
|
+
"priority": target.get("priority", "normal"),
|
|
3397
|
+
})
|
|
3398
|
+
except Exception as e:
|
|
3399
|
+
log.debug(f"[meshcode] auto-claim self-assigned failed: {e}")
|
|
3400
|
+
return claimed
|
|
3401
|
+
|
|
3402
|
+
|
|
3356
3403
|
def _try_auto_claim_task() -> Optional[Dict[str, str]]:
|
|
3357
3404
|
"""Auto-claim the oldest open task matching this agent's role.
|
|
3358
3405
|
|
|
@@ -3494,6 +3541,17 @@ async def meshcode_wait(timeout_seconds: int = 20, include_acks: bool = False) -
|
|
|
3494
3541
|
# The legacy refuse-on-open-tasks behavior is preserved behind an
|
|
3495
3542
|
# opt-in env flag MESHCODE_WAIT_BLOCKS_ON_TASKS=1 in case any
|
|
3496
3543
|
# workspace depends on it; default OFF to fix the contradiction.
|
|
3544
|
+
# URGENT_RUNTIME_FIX_TASK_PULL (Samuel msg a15d7ed4): proactive
|
|
3545
|
+
# self-assigned-task sweep at every wait entry. Any open task
|
|
3546
|
+
# assigned to me but not yet claimed gets auto-claimed before we
|
|
3547
|
+
# even check inbox — closes the "task sits because agent was
|
|
3548
|
+
# offline at create time" gap. Always-on, not gated on
|
|
3549
|
+
# autonomous_mode. Best-effort.
|
|
3550
|
+
try:
|
|
3551
|
+
_wait_entry_auto_claimed = _try_auto_claim_self_assigned_tasks()
|
|
3552
|
+
except Exception:
|
|
3553
|
+
_wait_entry_auto_claimed = []
|
|
3554
|
+
|
|
3497
3555
|
pending_tasks = _get_pending_tasks_summary()
|
|
3498
3556
|
if pending_tasks and os.environ.get("MESHCODE_WAIT_BLOCKS_ON_TASKS", "").lower() in ("1", "true", "yes"):
|
|
3499
3557
|
if not _is_leader_agent():
|
|
@@ -3502,8 +3560,28 @@ async def meshcode_wait(timeout_seconds: int = 20, include_acks: bool = False) -
|
|
|
3502
3560
|
"reason": "You have open tasks. Work them before entering wait. (legacy behavior, MESHCODE_WAIT_BLOCKS_ON_TASKS=1)",
|
|
3503
3561
|
"pending_tasks": pending_tasks,
|
|
3504
3562
|
"count": len(pending_tasks),
|
|
3563
|
+
"auto_claimed_at_wait_entry": _wait_entry_auto_claimed,
|
|
3505
3564
|
}
|
|
3506
3565
|
|
|
3566
|
+
# URGENT_RUNTIME_FIX_TASK_PULL (Samuel msg a15d7ed4): if we have
|
|
3567
|
+
# ANY pending-self tasks (claimed or open-assigned-to-me), short-
|
|
3568
|
+
# circuit out of wait so the agent works them in priority order
|
|
3569
|
+
# without burning a 20s timeout cycle each round. Mirrors the
|
|
3570
|
+
# legacy "no paraba hasta completar todos" cadence. Non-leader
|
|
3571
|
+
# agents only — leaders need to stay in wait to triage wildcard
|
|
3572
|
+
# tasks for the mesh.
|
|
3573
|
+
if pending_tasks and not _is_leader_agent():
|
|
3574
|
+
out: Dict[str, Any] = {
|
|
3575
|
+
"pending_tasks": pending_tasks,
|
|
3576
|
+
"count": len(pending_tasks),
|
|
3577
|
+
"you_are_autonomous": _get_autonomous_mode(),
|
|
3578
|
+
"task_pull_active": True,
|
|
3579
|
+
"hint": "Work the highest-priority task with meshcode_task_start, then meshcode_task_complete. Wait will surface the next one automatically.",
|
|
3580
|
+
}
|
|
3581
|
+
if _wait_entry_auto_claimed:
|
|
3582
|
+
out["auto_claimed_at_wait_entry"] = _wait_entry_auto_claimed
|
|
3583
|
+
return out
|
|
3584
|
+
|
|
3507
3585
|
# PRODUCT RULE 2: If agent has unread messages in DB, refuse to wait.
|
|
3508
3586
|
try:
|
|
3509
3587
|
db_pending = be.count_pending(_PROJECT_ID, AGENT_NAME, api_key=_get_api_key())
|
|
@@ -4160,6 +4238,18 @@ def meshcode_set_status(status: str, task: str = "") -> Dict[str, Any]:
|
|
|
4160
4238
|
# "idle Ns" string from accumulating across status churn.
|
|
4161
4239
|
if status == "online" and isinstance(resp, dict) and resp.get("ok"):
|
|
4162
4240
|
_CONSECUTIVE_IDLE_SECONDS = 0
|
|
4241
|
+
# URGENT_RUNTIME_FIX_TASK_PULL (Samuel msg a15d7ed4 + commander
|
|
4242
|
+
# msg 0cfca3f3): autoclaim-on-reconnect. When the agent flips to
|
|
4243
|
+
# online/working, sweep any open-assigned-to-me tasks and claim
|
|
4244
|
+
# them so they don't sit indefinitely. Always-on (not gated on
|
|
4245
|
+
# autonomous_mode). Best-effort; never fails the set_status path.
|
|
4246
|
+
if status in ("online", "working") and isinstance(resp, dict) and resp.get("ok"):
|
|
4247
|
+
try:
|
|
4248
|
+
_claimed_on_reconnect = _try_auto_claim_self_assigned_tasks()
|
|
4249
|
+
if _claimed_on_reconnect:
|
|
4250
|
+
resp["auto_claimed_on_reconnect"] = _claimed_on_reconnect
|
|
4251
|
+
except Exception:
|
|
4252
|
+
pass
|
|
4163
4253
|
return resp
|
|
4164
4254
|
|
|
4165
4255
|
|
|
@@ -4298,9 +4388,24 @@ def meshcode_tasks(status_filter: Optional[str] = None, verbose: bool = False) -
|
|
|
4298
4388
|
@mcp.tool()
|
|
4299
4389
|
@with_working_status
|
|
4300
4390
|
def meshcode_task_claim(task_id: str) -> Dict[str, Any]:
|
|
4301
|
-
"""Claim an open task. Fails if already claimed by someone else.
|
|
4391
|
+
"""Claim an open task. Fails if already claimed by someone else.
|
|
4392
|
+
|
|
4393
|
+
On success, also flips mc_agents.status='working' with a short task
|
|
4394
|
+
label (URGENT_RUNTIME_FIX_TASK_PULL, msg a15d7ed4 STATUS_SURFACING)
|
|
4395
|
+
so observers + Samuel see "working on X" in real time.
|
|
4396
|
+
"""
|
|
4302
4397
|
api_key = _get_api_key()
|
|
4303
|
-
|
|
4398
|
+
resp = be.task_claim(api_key, _PROJECT_ID, task_id, AGENT_NAME)
|
|
4399
|
+
if isinstance(resp, dict) and resp.get("ok"):
|
|
4400
|
+
try:
|
|
4401
|
+
_short_id = (resp.get("task_id") or task_id)[:8]
|
|
4402
|
+
_short_title = (resp.get("title") or "").strip()[:60] or "task"
|
|
4403
|
+
be.set_status(_PROJECT_ID, AGENT_NAME, "working",
|
|
4404
|
+
f"task {_short_id}: {_short_title}",
|
|
4405
|
+
api_key=api_key)
|
|
4406
|
+
except Exception:
|
|
4407
|
+
pass # status surfacing is best-effort
|
|
4408
|
+
return resp
|
|
4304
4409
|
|
|
4305
4410
|
|
|
4306
4411
|
@mcp.tool()
|
|
@@ -4344,6 +4449,14 @@ def meshcode_task_complete(task_id: str, summary: str = "", force: bool = False)
|
|
|
4344
4449
|
"risk=low|med|high). The team's backlog stays fed without the "
|
|
4345
4450
|
"commander manually generating ideas."
|
|
4346
4451
|
)
|
|
4452
|
+
# URGENT_RUNTIME_FIX_TASK_PULL (msg a15d7ed4 STATUS_SURFACING):
|
|
4453
|
+
# clear the task label + flip to online so the wait loop pulls
|
|
4454
|
+
# the next pending task on the next round without leaving the
|
|
4455
|
+
# roster showing "working on <stale task>".
|
|
4456
|
+
try:
|
|
4457
|
+
be.set_status(_PROJECT_ID, AGENT_NAME, "online", "", api_key=api_key)
|
|
4458
|
+
except Exception:
|
|
4459
|
+
pass
|
|
4347
4460
|
return result
|
|
4348
4461
|
|
|
4349
4462
|
|
|
@@ -5403,6 +5516,28 @@ def meshcode_add_agent(name: str, role: str = "", autonomous: bool = False) -> D
|
|
|
5403
5516
|
return result or {"error": "failed to add agent"}
|
|
5404
5517
|
|
|
5405
5518
|
|
|
5519
|
+
@mcp.tool()
|
|
5520
|
+
@with_working_status
|
|
5521
|
+
def meshcode_set_meshwork_autonomous_default(enabled: bool) -> Dict[str, Any]:
|
|
5522
|
+
"""Set the autonomous_mode_default for the current meshwork.
|
|
5523
|
+
|
|
5524
|
+
Owner-only. Agents whose own mc_agents.autonomous_mode IS NULL fall
|
|
5525
|
+
through to this default. Setting True makes new agents autonomous by
|
|
5526
|
+
default; setting False reverts to the conservative ask-mode default.
|
|
5527
|
+
|
|
5528
|
+
AUTONOMOUS-MODE-UNIVERSAL Phase 2 (mig 359, task f248d98e). Writes an
|
|
5529
|
+
mc_traces audit row on every flip.
|
|
5530
|
+
|
|
5531
|
+
Args:
|
|
5532
|
+
enabled: True = autonomous default for the meshwork; False = ask-mode default.
|
|
5533
|
+
"""
|
|
5534
|
+
return be.sb_rpc("mc_meshwork_set_autonomous_default", {
|
|
5535
|
+
"p_api_key": _get_api_key(),
|
|
5536
|
+
"p_project_id": _PROJECT_ID,
|
|
5537
|
+
"p_default": bool(enabled),
|
|
5538
|
+
})
|
|
5539
|
+
|
|
5540
|
+
|
|
5406
5541
|
@mcp.tool()
|
|
5407
5542
|
@with_working_status
|
|
5408
5543
|
def meshcode_edit_agent(name: str, role: Optional[str] = None, launch_prompt: Optional[str] = None) -> Dict[str, Any]:
|
|
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.44 → meshcode-2.11.46}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/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.44 → meshcode-2.11.46}/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.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/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.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/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.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/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.44 → meshcode-2.11.46}/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.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.44 → meshcode-2.11.46}/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.44 → meshcode-2.11.46}/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
|