meshcode 2.11.96__tar.gz → 2.11.97__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.
Files changed (91) hide show
  1. {meshcode-2.11.96 → meshcode-2.11.97}/PKG-INFO +1 -1
  2. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/__init__.py +1 -1
  3. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/hostd.py +12 -2
  4. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode.egg-info/PKG-INFO +1 -1
  5. {meshcode-2.11.96 → meshcode-2.11.97}/pyproject.toml +1 -1
  6. {meshcode-2.11.96 → meshcode-2.11.97}/README.md +0 -0
  7. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/__main__.py +0 -0
  8. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/_session_handoff_template.py +0 -0
  9. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/_stop_hook_template.py +0 -0
  10. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/ascii_art.py +0 -0
  11. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/atomic_push.py +0 -0
  12. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/claude_update.py +0 -0
  13. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/cli.py +0 -0
  14. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/comms_v4.py +0 -0
  15. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/compat.py +0 -0
  16. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/daemon.py +0 -0
  17. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/date_parse.py +0 -0
  18. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/doctor.py +0 -0
  19. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/error_hints.py +0 -0
  20. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/exceptions.py +0 -0
  21. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/invites.py +0 -0
  22. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/launcher.py +0 -0
  23. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/launcher_install.py +0 -0
  24. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/__init__.py +0 -0
  25. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/__main__.py +0 -0
  26. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/backend.py +0 -0
  27. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/realtime.py +0 -0
  28. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/server.py +0 -0
  29. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
  30. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/test_backend.py +0 -0
  31. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
  32. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
  33. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
  34. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  35. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  36. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/preferences.py +0 -0
  37. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/protocol_handler.py +0 -0
  38. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/protocol_v2.py +0 -0
  39. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/quickstart.py +0 -0
  40. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/rpc_allowlist.py +0 -0
  41. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/run_agent.py +0 -0
  42. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/scripts/check_secrets.py +0 -0
  43. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/scripts/race_rate_harness.py +0 -0
  44. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/secrets.py +0 -0
  45. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/self_update.py +0 -0
  46. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/setup_clients.py +0 -0
  47. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/supervisor.py +0 -0
  48. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/up.py +0 -0
  49. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode/upload.py +0 -0
  50. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode.egg-info/SOURCES.txt +0 -0
  51. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode.egg-info/dependency_links.txt +0 -0
  52. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode.egg-info/entry_points.txt +0 -0
  53. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode.egg-info/requires.txt +0 -0
  54. {meshcode-2.11.96 → meshcode-2.11.97}/meshcode.egg-info/top_level.txt +0 -0
  55. {meshcode-2.11.96 → meshcode-2.11.97}/setup.cfg +0 -0
  56. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_auto_update_hardening.py +0 -0
  57. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_autonomous_closegap_1.py +0 -0
  58. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_autonomous_closegap_2.py +0 -0
  59. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_autonomous_closegap_3.py +0 -0
  60. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_autonomous_prompt_inject.py +0 -0
  61. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_boot_bug_regression.py +0 -0
  62. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_color_truecolor.py +0 -0
  63. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_core.py +0 -0
  64. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_cross_agent_messaging.py +0 -0
  65. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_date_parse.py +0 -0
  66. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_doctor.py +0 -0
  67. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_epistemic_v1_python_sdk.py +0 -0
  68. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_epistemic_v1_stop_conditions.py +0 -0
  69. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_esc_deaf_state.py +0 -0
  70. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_exceptions.py +0 -0
  71. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_file_upload.py +0 -0
  72. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_init_device_code.py +0 -0
  73. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_install_guard.py +0 -0
  74. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_lease_sigterm_release.py +0 -0
  75. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_mark_read_batch.py +0 -0
  76. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_marketplace_ratings.py +0 -0
  77. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_migration_integrity.py +0 -0
  78. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_realtime_event_freshness.py +0 -0
  79. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_rls_cross_tenant.py +0 -0
  80. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_rpc_grants.py +0 -0
  81. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_rpc_migrations.py +0 -0
  82. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_run_agent_dry_run.py +0 -0
  83. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_run_agent_no_server_import.py +0 -0
  84. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_security_regressions.py +0 -0
  85. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_self_update_user_site.py +0 -0
  86. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_sentinel.py +0 -0
  87. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_setup_path.py +0 -0
  88. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_sleep_signals.py +0 -0
  89. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_status_enum_coverage.py +0 -0
  90. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_stay_on_loop_hook.py +0 -0
  91. {meshcode-2.11.96 → meshcode-2.11.97}/tests/test_wait_open_tasks_contradiction.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.11.96
3
+ Version: 2.11.97
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -1,5 +1,5 @@
1
1
  """MeshCode — Real-time communication between AI agents."""
2
- __version__ = "2.11.96"
2
+ __version__ = "2.11.97"
3
3
 
4
4
  # Exception hierarchy — eagerly imported (lightweight, no deps)
5
5
  from meshcode.exceptions import ( # noqa: F401
@@ -403,13 +403,23 @@ def _spawn_agent(project: str, agent: str, headless: bool = False) -> bool:
403
403
  # on ';' -> file-not-found. Layered ON TOP of the 2.11.72 headless-flags fix (visible branch only).
404
404
  # task 14782bb4: CLEAR any inherited NO_*UPDATE (so the agent auto-updates non-blocking) and run
405
405
  # via `python -m meshcode` (NOT the .exe shim) so a bg `pip install -U` can replace meshcode.exe.
406
+ # RELIABILITY (commander, REOPEN_PATH_bug): the VISIBLE spawn must also put the meshcode
407
+ # console script on PATH (a8efddeb fixed only the headless branch). Without it the spawned
408
+ # agent + its `meshcode mcp` child die with "meshcode not on PATH". Prepend sys.executable's
409
+ # bin dir, mirroring the headless POSIX fix + the win32 venv-Scripts injection.
410
+ try:
411
+ _bindir = str(Path(sys.executable).resolve().parent)
412
+ except Exception:
413
+ _bindir = ""
406
414
  if sys.platform == "win32":
407
415
  cmd = (f'set "CLAUDECODE=" & set "CLAUDE_CODE_SESSION=" & '
408
416
  f'set "MESHCODE_NO_UPDATE=" & set "MESHCODE_NO_AUTO_UPDATE=" & '
409
- f'"{sys.executable}" -m meshcode run "{target}"')
417
+ + (f'set "PATH={_bindir};%PATH%" & ' if _bindir else '')
418
+ + f'"{sys.executable}" -m meshcode run "{target}"')
410
419
  else:
411
420
  cmd = (f"unset CLAUDECODE CLAUDE_CODE_SESSION MESHCODE_NO_UPDATE MESHCODE_NO_AUTO_UPDATE; "
412
- f"exec {shlex.quote(sys.executable)} -m meshcode run {shlex.quote(target)}")
421
+ + (f"export PATH={shlex.quote(_bindir)}:$PATH; " if _bindir else "")
422
+ + f"exec {shlex.quote(sys.executable)} -m meshcode run {shlex.quote(target)}")
413
423
  try:
414
424
  from meshcode import protocol_handler as _ph
415
425
  ok, info = _ph._spawn_terminal(cmd)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.11.96
3
+ Version: 2.11.97
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "meshcode"
7
- version = "2.11.96"
7
+ version = "2.11.97"
8
8
  description = "Real-time communication between AI agents — Supabase-backed CLI"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
File without changes
File without changes
File without changes
File without changes