meshcode 2.11.5__tar.gz → 2.11.6__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.5 → meshcode-2.11.6}/PKG-INFO +1 -1
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/__init__.py +1 -1
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/server.py +162 -67
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.5 → meshcode-2.11.6}/pyproject.toml +1 -1
- {meshcode-2.11.5 → meshcode-2.11.6}/README.md +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/cli.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/compat.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/daemon.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/invites.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/launcher.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/preferences.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/secrets.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/self_update.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode/upload.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/setup.cfg +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_core.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.5 → meshcode-2.11.6}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -1438,18 +1438,14 @@ def _build_instructions() -> str:
|
|
|
1438
1438
|
f"\nUSER-PROVIDED ROLE PROMPT (from the dashboard):\n---\n{_LAUNCH_PROMPT}\n---\n"
|
|
1439
1439
|
if _LAUNCH_PROMPT else ""
|
|
1440
1440
|
)
|
|
1441
|
-
#
|
|
1442
|
-
#
|
|
1443
|
-
#
|
|
1441
|
+
# MIG-PLAN-A 2026-05-18 (boot bug 00d73223 second RC): module-import-time
|
|
1442
|
+
# be.sb_rpc calls block MCP InitializeResult on commander-class agents with
|
|
1443
|
+
# heavy memory payloads, even after mig 312 closed the SDK↔DDL CHECK retry
|
|
1444
|
+
# storm. Defer ALL network I/O out of _build_instructions(). The baked-in
|
|
1445
|
+
# static LOOP directive below is sufficient for boot; if product later
|
|
1446
|
+
# wants live tuning, fetch in BG and inject via memory_hints envelope on
|
|
1447
|
+
# first tool call. NO be.sb_rpc here.
|
|
1444
1448
|
_db_loop = ""
|
|
1445
|
-
try:
|
|
1446
|
-
_r = be.sb_rpc("mc_get_loop_directive", {})
|
|
1447
|
-
if isinstance(_r, list) and _r:
|
|
1448
|
-
_r = _r[0]
|
|
1449
|
-
if isinstance(_r, str) and _r.strip():
|
|
1450
|
-
_db_loop = _r.strip() + "\n\n"
|
|
1451
|
-
except Exception:
|
|
1452
|
-
pass
|
|
1453
1449
|
|
|
1454
1450
|
base = f"""You are agent "{AGENT_NAME}" in meshwork "{PROJECT_NAME}".{role_block}{launch_block}
|
|
1455
1451
|
|
|
@@ -1462,6 +1458,8 @@ SESSION START (run NOW, don't wait for input). If tool schemas are deferred:
|
|
|
1462
1458
|
Then: set_status(online,ready) → check() → tasks() → auto_wake() → status() → wait(). Don't ask user "what to work on" — the mesh tells you.
|
|
1463
1459
|
|
|
1464
1460
|
COMMUNICATE BY CALLING TOOLS, not by thinking aloud. Cross-mesh: send(to="agent@meshwork"). Reference docs (memory/scratchpad/account ops) → recall agent_protocol_quick_ref when needed.
|
|
1461
|
+
|
|
1462
|
+
DECISIONS: when you face a non-trivial pick (architectural choice, risky migration, scope decision), call meshcode_decide(decision, alternatives, evidence_refs) BEFORE acting — returns a trace_id. Call meshcode_outcome(trace_id, outcome, outcome_eval) when the result becomes observable. Use meshcode_explain(memory_key=…) or (decision_substring=…) to surface prior traces + open contradictions. Memory hints with open_contradictions take a -0.2 ranking penalty — treat as a flag, not a veto.
|
|
1465
1463
|
"""
|
|
1466
1464
|
# Inject commander protocol if this agent is a leader
|
|
1467
1465
|
is_leader = _is_leader_agent()
|
|
@@ -1485,67 +1483,68 @@ COMMANDER PROTOCOL (you are the team lead):
|
|
|
1485
1483
|
return base
|
|
1486
1484
|
|
|
1487
1485
|
|
|
1486
|
+
# MIG-PLAN-A 2026-05-18 (boot bug 00d73223 part 2): timer-bracketed
|
|
1487
|
+
# _INSTRUCTIONS construction. If module-import-time work exceeds the budget,
|
|
1488
|
+
# the regression sentinel (CI) trips so we don't silently regress past the
|
|
1489
|
+
# Claude Code MCP-handshake window again. Caught the zylo-commander 17:28
|
|
1490
|
+
# repro after mig 312 had already closed the SDK↔DDL retry storm.
|
|
1491
|
+
_INSTRUCTIONS_BUILD_NS = _time.monotonic_ns()
|
|
1488
1492
|
_INSTRUCTIONS = _build_instructions()
|
|
1493
|
+
_INSTRUCTIONS_BUILD_NS = _time.monotonic_ns() - _INSTRUCTIONS_BUILD_NS
|
|
1494
|
+
log.info(
|
|
1495
|
+
f"_INSTRUCTIONS built in {_INSTRUCTIONS_BUILD_NS/1_000_000:.1f}ms "
|
|
1496
|
+
f"(budget <500ms — MCP handshake window)"
|
|
1497
|
+
)
|
|
1498
|
+
if _INSTRUCTIONS_BUILD_NS > 500_000_000:
|
|
1499
|
+
log.warning(
|
|
1500
|
+
f"_INSTRUCTIONS build exceeded 500ms budget ({_INSTRUCTIONS_BUILD_NS/1_000_000:.1f}ms) "
|
|
1501
|
+
f"— commander-class agents may fail MCP handshake on slower networks. "
|
|
1502
|
+
f"Investigate any be.sb_rpc / network I/O added to _build_instructions()."
|
|
1503
|
+
)
|
|
1489
1504
|
|
|
1490
|
-
#
|
|
1491
|
-
#
|
|
1492
|
-
#
|
|
1493
|
-
#
|
|
1494
|
-
#
|
|
1495
|
-
#
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
if _crit_ok or _ref_ok:
|
|
1515
|
-
_sections = []
|
|
1516
|
-
if _crit_ok and _crit.get("memories"):
|
|
1517
|
-
_crit_lines = [f" {m['key']}: {json.dumps(m['value'], default=str)}"
|
|
1518
|
-
for m in _crit["memories"]]
|
|
1519
|
-
_sections.append("CRITICAL MEMORIES (always loaded):\n" + "\n".join(_crit_lines))
|
|
1520
|
-
if _ref_ok and _ref.get("memories"):
|
|
1521
|
-
_ref_keys = [m["key"] for m in _ref["memories"]]
|
|
1522
|
-
_sections.append(
|
|
1523
|
-
"REFERENCE MEMORIES (key list — fetch on demand via meshcode_recall(key)):\n "
|
|
1524
|
-
+ ", ".join(_ref_keys)
|
|
1525
|
-
)
|
|
1526
|
-
_sections.append(
|
|
1527
|
-
"EPISODIC MEMORIES: not preloaded. Search via "
|
|
1528
|
-
"meshcode_recall_search(query) when you need past incident context."
|
|
1529
|
-
)
|
|
1530
|
-
_INSTRUCTIONS += "\n" + "\n\n".join(_sections) + "\n"
|
|
1531
|
-
log.info(
|
|
1532
|
-
f"pre-loaded tiered memories: critical={len(_crit.get('memories', [])) if _crit_ok else 0}, "
|
|
1533
|
-
f"reference={len(_ref.get('memories', [])) if _ref_ok else 0}"
|
|
1534
|
-
)
|
|
1535
|
-
else:
|
|
1536
|
-
# Legacy fallback: migration 080 not applied → load all (old behavior)
|
|
1537
|
-
_legacy = be.sb_rpc("mc_memory_list", {
|
|
1538
|
-
"p_api_key": _api_key,
|
|
1505
|
+
# MIG-PLAN-A 2026-05-18: memory pre-load deferred to BG daemon thread.
|
|
1506
|
+
# Was synchronous mc_memory_list (critical+reference tiers + legacy fallback)
|
|
1507
|
+
# that appended to module-global _INSTRUCTIONS at import time. On commander-
|
|
1508
|
+
# class agents with heavy memory accumulation, this exceeded Claude Code's
|
|
1509
|
+
# MCP InitializeResult window → "MCP tools not in deferred list" until
|
|
1510
|
+
# manual /mcp reconnect. Two prior partial fixes: fe57b7a5 mode-a (persona +
|
|
1511
|
+
# boot_context BG) and mig 312 (SDK↔DDL needs_launch CHECK). Plan A is the
|
|
1512
|
+
# remaining piece. Memory content is still surfaced — just via the
|
|
1513
|
+
# memory_hints envelope on the first meshcode_check / meshcode_boot tool
|
|
1514
|
+
# call instead of via MCP InitializeResult.instructions. Tradeoff: handshake
|
|
1515
|
+
# guaranteed <1s vs first-tool result ~1s heavier. Net wins handshake budget.
|
|
1516
|
+
_PRELOADED_CRITICAL: Optional[List[Dict[str, Any]]] = None
|
|
1517
|
+
_PRELOADED_REFERENCE_KEYS: Optional[List[str]] = None
|
|
1518
|
+
|
|
1519
|
+
def _preload_memories_bg() -> None:
|
|
1520
|
+
"""Run by daemon thread spawned at lifespan start. Populates module-
|
|
1521
|
+
global _PRELOADED_* used by memory_hints envelope. Soft-fail; consumers
|
|
1522
|
+
fall through to live RPC paths if globals stay None."""
|
|
1523
|
+
global _PRELOADED_CRITICAL, _PRELOADED_REFERENCE_KEYS
|
|
1524
|
+
try:
|
|
1525
|
+
api_key = _get_api_key()
|
|
1526
|
+
crit = be.sb_rpc("mc_memory_list", {
|
|
1527
|
+
"p_api_key": api_key,
|
|
1539
1528
|
"p_agent_name": AGENT_NAME,
|
|
1529
|
+
"p_tier": "critical",
|
|
1540
1530
|
"p_project_name": PROJECT_NAME,
|
|
1541
1531
|
})
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1532
|
+
ref = be.sb_rpc("mc_memory_list", {
|
|
1533
|
+
"p_api_key": api_key,
|
|
1534
|
+
"p_agent_name": AGENT_NAME,
|
|
1535
|
+
"p_tier": "reference",
|
|
1536
|
+
"p_project_name": PROJECT_NAME,
|
|
1537
|
+
})
|
|
1538
|
+
if isinstance(crit, dict) and crit.get("ok"):
|
|
1539
|
+
_PRELOADED_CRITICAL = crit.get("memories") or []
|
|
1540
|
+
if isinstance(ref, dict) and ref.get("ok"):
|
|
1541
|
+
_PRELOADED_REFERENCE_KEYS = [m["key"] for m in (ref.get("memories") or []) if "key" in m]
|
|
1542
|
+
log.info(
|
|
1543
|
+
f"memory pre-load (bg): critical={len(_PRELOADED_CRITICAL or [])} "
|
|
1544
|
+
f"reference_keys={len(_PRELOADED_REFERENCE_KEYS or [])}"
|
|
1545
|
+
)
|
|
1546
|
+
except Exception as e:
|
|
1547
|
+
log.debug(f"memory pre-load (bg) skipped: {e}")
|
|
1549
1548
|
|
|
1550
1549
|
|
|
1551
1550
|
# ============================================================
|
|
@@ -2104,6 +2103,9 @@ async def lifespan(_app):
|
|
|
2104
2103
|
|
|
2105
2104
|
_threading.Thread(target=_load_persona_bg, daemon=True, name="meshcode-load-persona").start()
|
|
2106
2105
|
_threading.Thread(target=_load_boot_context_bg, daemon=True, name="meshcode-load-boot-context").start()
|
|
2106
|
+
# MIG-PLAN-A 2026-05-18: memory pre-load deferred from module-import-time
|
|
2107
|
+
# to here. Soft-fail consumers read from _PRELOADED_CRITICAL / _PRELOADED_REFERENCE_KEYS.
|
|
2108
|
+
_threading.Thread(target=_preload_memories_bg, daemon=True, name="meshcode-preload-memories").start()
|
|
2107
2109
|
|
|
2108
2110
|
# Heartbeat in daemon thread — independent of asyncio event loop.
|
|
2109
2111
|
_heartbeat_stop.clear()
|
|
@@ -4868,6 +4870,99 @@ def meshcode_recall_search(query: str) -> Dict[str, Any]:
|
|
|
4868
4870
|
})
|
|
4869
4871
|
|
|
4870
4872
|
|
|
4873
|
+
# ----------------- EPISTEMIC V1 (decide / outcome / explain) -----------------
|
|
4874
|
+
# mig 305-308 SQL substrate; mig 313 memory_hints contradictions + ranking;
|
|
4875
|
+
# mig 314 public.* wrappers. Task b4befbfd.
|
|
4876
|
+
|
|
4877
|
+
@mcp.tool()
|
|
4878
|
+
@with_working_status
|
|
4879
|
+
def meshcode_decide(
|
|
4880
|
+
decision: str,
|
|
4881
|
+
alternatives: Optional[List[str]] = None,
|
|
4882
|
+
evidence_refs: Optional[List[Dict[str, Any]]] = None,
|
|
4883
|
+
tier: str = "episodic",
|
|
4884
|
+
) -> Dict[str, Any]:
|
|
4885
|
+
"""Log a non-trivial decision to mc_traces (architectural choice, risky migration,
|
|
4886
|
+
scope decision). Returns {trace_id}. Pair with meshcode_outcome later when the
|
|
4887
|
+
result becomes observable so the team can learn from outcomes.
|
|
4888
|
+
|
|
4889
|
+
Args:
|
|
4890
|
+
decision: What you decided (one sentence).
|
|
4891
|
+
alternatives: Other options you considered (list of strings).
|
|
4892
|
+
evidence_refs: Pointers to evidence (list of {type, id|key} dicts).
|
|
4893
|
+
type values: 'memory','msg','task','file','rpc'.
|
|
4894
|
+
tier: 'episodic' (default) | 'reference' | 'critical'.
|
|
4895
|
+
"""
|
|
4896
|
+
if not decision or not decision.strip():
|
|
4897
|
+
return {"ok": False, "error": "decision required"}
|
|
4898
|
+
return be.sb_rpc("mc_decide", {
|
|
4899
|
+
"p_api_key": _get_api_key(),
|
|
4900
|
+
"p_project_id": _PROJECT_ID,
|
|
4901
|
+
"p_agent_name": AGENT_NAME,
|
|
4902
|
+
"p_decision": decision.strip(),
|
|
4903
|
+
"p_alternatives": json.dumps(alternatives or []),
|
|
4904
|
+
"p_evidence_refs": json.dumps(evidence_refs or []),
|
|
4905
|
+
"p_tier": tier,
|
|
4906
|
+
})
|
|
4907
|
+
|
|
4908
|
+
|
|
4909
|
+
@mcp.tool()
|
|
4910
|
+
@with_working_status
|
|
4911
|
+
def meshcode_outcome(
|
|
4912
|
+
trace_id: str,
|
|
4913
|
+
outcome: str,
|
|
4914
|
+
outcome_eval: str,
|
|
4915
|
+
) -> Dict[str, Any]:
|
|
4916
|
+
"""Record the observable outcome of a prior decision (logged via meshcode_decide).
|
|
4917
|
+
Call this when results become visible — even partial results help future-you and
|
|
4918
|
+
the team learn what worked.
|
|
4919
|
+
|
|
4920
|
+
Args:
|
|
4921
|
+
trace_id: UUID returned by meshcode_decide.
|
|
4922
|
+
outcome: Free-form description of what happened.
|
|
4923
|
+
outcome_eval: 'success' | 'failure' | 'partial' | 'unknown'.
|
|
4924
|
+
"""
|
|
4925
|
+
if outcome_eval not in ("success", "failure", "partial", "unknown"):
|
|
4926
|
+
return {"ok": False, "error": "outcome_eval must be success|failure|partial|unknown"}
|
|
4927
|
+
return be.sb_rpc("mc_outcome", {
|
|
4928
|
+
"p_api_key": _get_api_key(),
|
|
4929
|
+
"p_project_id": _PROJECT_ID,
|
|
4930
|
+
"p_agent_name": AGENT_NAME,
|
|
4931
|
+
"p_trace_id": trace_id,
|
|
4932
|
+
"p_outcome": outcome,
|
|
4933
|
+
"p_outcome_eval": outcome_eval,
|
|
4934
|
+
})
|
|
4935
|
+
|
|
4936
|
+
|
|
4937
|
+
@mcp.tool()
|
|
4938
|
+
@with_working_status
|
|
4939
|
+
def meshcode_explain(
|
|
4940
|
+
memory_key: Optional[str] = None,
|
|
4941
|
+
decision_substring: Optional[str] = None,
|
|
4942
|
+
trace_limit: int = 20,
|
|
4943
|
+
) -> Dict[str, Any]:
|
|
4944
|
+
"""Surface recent traces + open contradictions tied to a memory key or decision
|
|
4945
|
+
substring. Use when you want to understand why a memory ranks the way it does,
|
|
4946
|
+
or recall the chain of reasoning around a past choice. Exactly one of
|
|
4947
|
+
(memory_key, decision_substring) is required.
|
|
4948
|
+
|
|
4949
|
+
Args:
|
|
4950
|
+
memory_key: Match traces whose evidence_refs reference this key.
|
|
4951
|
+
decision_substring: ILIKE match against the decision text.
|
|
4952
|
+
trace_limit: Cap on returned traces (1..200, default 20).
|
|
4953
|
+
"""
|
|
4954
|
+
if not memory_key and not decision_substring:
|
|
4955
|
+
return {"ok": False, "error": "one of (memory_key, decision_substring) required"}
|
|
4956
|
+
return be.sb_rpc("mc_explain", {
|
|
4957
|
+
"p_api_key": _get_api_key(),
|
|
4958
|
+
"p_project_id": _PROJECT_ID,
|
|
4959
|
+
"p_agent_name": AGENT_NAME,
|
|
4960
|
+
"p_memory_key": memory_key,
|
|
4961
|
+
"p_decision_substring": decision_substring,
|
|
4962
|
+
"p_trace_limit": trace_limit,
|
|
4963
|
+
})
|
|
4964
|
+
|
|
4965
|
+
|
|
4871
4966
|
# ----------------- BUG REPORTING -----------------
|
|
4872
4967
|
|
|
4873
4968
|
@mcp.tool()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.5 → meshcode-2.11.6}/meshcode-backend-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.5 → meshcode-2.11.6}/meshcode-backend-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
|
{meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py
RENAMED
|
File without changes
|
{meshcode-2.11.5 → meshcode-2.11.6}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.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
|
{meshcode-2.11.5 → meshcode-2.11.6}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.5 → meshcode-2.11.6}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.5 → meshcode-2.11.6}/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.5 → meshcode-2.11.6}/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
|