meshcode 2.11.35__tar.gz → 2.11.37__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.35 → meshcode-2.11.37}/PKG-INFO +1 -1
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/__init__.py +1 -1
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/backend.py +23 -3
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.35 → meshcode-2.11.37}/pyproject.toml +1 -1
- {meshcode-2.11.35 → meshcode-2.11.37}/README.md +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/__main__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/cli.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/compat.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/daemon.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/doctor.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/invites.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/launcher.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/preferences.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/rpc_allowlist.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/secrets.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/self_update.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode/upload.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/setup.cfg +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_core.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_doctor.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_run_agent_dry_run.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_run_agent_no_server_import.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_self_update_user_site.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.35 → meshcode-2.11.37}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -969,13 +969,22 @@ def read_inbox(project_id: str, agent: str, mark_read: bool = True, api_key: Opt
|
|
|
969
969
|
|
|
970
970
|
|
|
971
971
|
def count_pending(project_id: str, agent: str, api_key: Optional[str] = None) -> int:
|
|
972
|
-
# Use SECURITY DEFINER RPC when api_key is available
|
|
972
|
+
# Use SECURITY DEFINER RPC when api_key is available.
|
|
973
|
+
# SEC-5 R-SEC5-A: call rate-limited _rl wrapper. Server-side returns
|
|
974
|
+
# cached payload on limit so Python contract stays {ok:true, count:int}.
|
|
975
|
+
# Falls back to non-rl on 404 if the wrapper isn't deployed yet.
|
|
973
976
|
if api_key:
|
|
974
|
-
result = sb_rpc("
|
|
977
|
+
result = sb_rpc("mc_count_pending_rl", {
|
|
975
978
|
"p_api_key": api_key,
|
|
976
979
|
"p_project_id": project_id,
|
|
977
980
|
"p_agent_name": agent,
|
|
978
981
|
})
|
|
982
|
+
if isinstance(result, dict) and result.get("error_code") == "404":
|
|
983
|
+
result = sb_rpc("mc_count_pending", {
|
|
984
|
+
"p_api_key": api_key,
|
|
985
|
+
"p_project_id": project_id,
|
|
986
|
+
"p_agent_name": agent,
|
|
987
|
+
})
|
|
979
988
|
if isinstance(result, dict) and result.get("ok"):
|
|
980
989
|
return result.get("count", 0)
|
|
981
990
|
# Fall through to direct query if RPC doesn't exist yet
|
|
@@ -1248,13 +1257,24 @@ def task_list(api_key, project_id, agent, status_filter=None, include_done=False
|
|
|
1248
1257
|
cached = _TASK_LIST_CACHE.get(cache_key)
|
|
1249
1258
|
if cached and (now - cached[1]) < _TASK_LIST_MIN_INTERVAL:
|
|
1250
1259
|
return cached[0]
|
|
1251
|
-
|
|
1260
|
+
# SEC-5 R-SEC5-A: call rate-limited _rl wrapper. Returns same shape as
|
|
1261
|
+
# original (with extra rate_limited/remaining metadata Python ignores).
|
|
1262
|
+
# Falls back to non-rl on 404 if wrapper isn't deployed.
|
|
1263
|
+
result = sb_rpc("mc_task_list_rl", {
|
|
1252
1264
|
"p_api_key": api_key,
|
|
1253
1265
|
"p_project_id": project_id,
|
|
1254
1266
|
"p_agent": agent,
|
|
1255
1267
|
"p_status_filter": status_filter,
|
|
1256
1268
|
"p_include_done": include_done,
|
|
1257
1269
|
})
|
|
1270
|
+
if isinstance(result, dict) and result.get("error_code") == "404":
|
|
1271
|
+
result = sb_rpc("mc_task_list", {
|
|
1272
|
+
"p_api_key": api_key,
|
|
1273
|
+
"p_project_id": project_id,
|
|
1274
|
+
"p_agent": agent,
|
|
1275
|
+
"p_status_filter": status_filter,
|
|
1276
|
+
"p_include_done": include_done,
|
|
1277
|
+
})
|
|
1258
1278
|
with _TASK_LIST_CACHE_LOCK:
|
|
1259
1279
|
if len(_TASK_LIST_CACHE) >= _TASK_LIST_CACHE_MAX:
|
|
1260
1280
|
oldest_key = min(_TASK_LIST_CACHE, key=lambda k: _TASK_LIST_CACHE[k][1])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.35 → meshcode-2.11.37}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/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.35 → meshcode-2.11.37}/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.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/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.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/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.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/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.35 → meshcode-2.11.37}/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.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.35 → meshcode-2.11.37}/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.35 → meshcode-2.11.37}/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
|