meshcode 2.11.106__tar.gz → 2.11.107__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 (278) hide show
  1. {meshcode-2.11.106 → meshcode-2.11.107}/PKG-INFO +1 -1
  2. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/__init__.py +1 -1
  3. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/server.py +27 -5
  4. meshcode-2.11.107/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +4117 -0
  5. meshcode-2.11.107/meshcode-backend-wt/meshcode/run_agent.py +958 -0
  6. meshcode-2.11.107/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +638 -0
  7. meshcode-2.11.107/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +3563 -0
  8. meshcode-2.11.107/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +460 -0
  9. meshcode-2.11.107/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +4117 -0
  10. meshcode-2.11.107/meshcode-noun-wt/build/lib/meshcode/run_agent.py +958 -0
  11. meshcode-2.11.107/meshcode-noun-wt/comms_v4.py +1941 -0
  12. meshcode-2.11.107/meshcode-noun-wt/meshcode/ascii_art.py +638 -0
  13. meshcode-2.11.107/meshcode-noun-wt/meshcode/comms_v4.py +3563 -0
  14. meshcode-2.11.107/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +1261 -0
  15. meshcode-2.11.107/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +460 -0
  16. meshcode-2.11.107/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +4117 -0
  17. meshcode-2.11.107/meshcode-noun-wt/meshcode/run_agent.py +958 -0
  18. meshcode-2.11.107/meshcode-noun-wt/meshcode/setup_clients.py +926 -0
  19. meshcode-2.11.107/meshcode-tasks-wt/comms_v4.py +1941 -0
  20. meshcode-2.11.107/meshcode-tasks-wt/meshcode/ascii_art.py +638 -0
  21. meshcode-2.11.107/meshcode-tasks-wt/meshcode/comms_v4.py +3563 -0
  22. meshcode-2.11.107/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +1261 -0
  23. meshcode-2.11.107/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +460 -0
  24. meshcode-2.11.107/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +4117 -0
  25. meshcode-2.11.107/meshcode-tasks-wt/meshcode/run_agent.py +958 -0
  26. meshcode-2.11.107/meshcode-tasks-wt/meshcode/setup_clients.py +926 -0
  27. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/PKG-INFO +1 -1
  28. {meshcode-2.11.106 → meshcode-2.11.107}/pyproject.toml +1 -1
  29. meshcode-2.11.106/meshcode-backend-wt/comms_v4.py +0 -0
  30. meshcode-2.11.106/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
  31. meshcode-2.11.106/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
  32. meshcode-2.11.106/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
  33. meshcode-2.11.106/meshcode-backend-wt/meshcode/run_agent.py +0 -0
  34. meshcode-2.11.106/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
  35. meshcode-2.11.106/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
  36. meshcode-2.11.106/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
  37. meshcode-2.11.106/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
  38. meshcode-2.11.106/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
  39. meshcode-2.11.106/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
  40. meshcode-2.11.106/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
  41. meshcode-2.11.106/meshcode-noun-wt/comms_v4.py +0 -0
  42. meshcode-2.11.106/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
  43. meshcode-2.11.106/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
  44. meshcode-2.11.106/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
  45. meshcode-2.11.106/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
  46. meshcode-2.11.106/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
  47. meshcode-2.11.106/meshcode-noun-wt/meshcode/run_agent.py +0 -0
  48. meshcode-2.11.106/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
  49. meshcode-2.11.106/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
  50. meshcode-2.11.106/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
  51. meshcode-2.11.106/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
  52. {meshcode-2.11.106 → meshcode-2.11.107}/README.md +0 -0
  53. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/__main__.py +0 -0
  54. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/_session_handoff_template 2.py +0 -0
  55. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/_session_handoff_template 3.py +0 -0
  56. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/_session_handoff_template.py +0 -0
  57. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/_stop_hook_template.py +0 -0
  58. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/ascii_art.py +0 -0
  59. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/atomic_push.py +0 -0
  60. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/claude_update 2.py +0 -0
  61. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/claude_update 3.py +0 -0
  62. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/claude_update.py +0 -0
  63. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/cli.py +0 -0
  64. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/comms_v4.py +0 -0
  65. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/compat.py +0 -0
  66. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/daemon.py +0 -0
  67. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/date_parse.py +0 -0
  68. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/doctor.py +0 -0
  69. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/error_hints.py +0 -0
  70. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/exceptions.py +0 -0
  71. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/hostd 2.py +0 -0
  72. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/hostd.py +0 -0
  73. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/invites.py +0 -0
  74. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/launcher.py +0 -0
  75. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/launcher_install.py +0 -0
  76. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/__init__.py +0 -0
  77. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/__main__.py +0 -0
  78. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/backend.py +0 -0
  79. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/realtime.py +0 -0
  80. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
  81. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/test_backend.py +0 -0
  82. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
  83. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
  84. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
  85. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  86. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  87. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/preferences.py +0 -0
  88. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/protocol_handler.py +0 -0
  89. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/protocol_v2.py +0 -0
  90. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/quickstart.py +0 -0
  91. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/rpc_allowlist.py +0 -0
  92. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/run_agent.py +0 -0
  93. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/scripts/check_secrets.py +0 -0
  94. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/scripts/race_rate_harness.py +0 -0
  95. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/secrets.py +0 -0
  96. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/self_update.py +0 -0
  97. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/setup_clients.py +0 -0
  98. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/supervisor.py +0 -0
  99. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/up 2.py +0 -0
  100. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/up.py +0 -0
  101. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode/upload.py +0 -0
  102. {meshcode-2.11.106/meshcode-tasks-wt → meshcode-2.11.107/meshcode-backend-wt}/comms_v4.py +0 -0
  103. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/__init__.py +0 -0
  104. {meshcode-2.11.106/meshcode-noun-wt/build/lib → meshcode-2.11.107/meshcode-backend-wt}/meshcode/ascii_art.py +0 -0
  105. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/cli.py +0 -0
  106. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
  107. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/compat.py +0 -0
  108. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
  109. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
  110. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/invites.py +0 -0
  111. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/launcher.py +0 -0
  112. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
  113. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  114. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  115. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
  116. {meshcode-2.11.106/meshcode-tasks-wt → meshcode-2.11.107/meshcode-backend-wt}/meshcode/meshcode_mcp/realtime.py +0 -0
  117. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  118. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  119. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  120. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/preferences.py +0 -0
  121. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
  122. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
  123. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/secrets.py +0 -0
  124. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/self_update.py +0 -0
  125. {meshcode-2.11.106/meshcode-noun-wt → meshcode-2.11.107/meshcode-backend-wt}/meshcode/setup_clients.py +0 -0
  126. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
  127. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/meshcode/upload.py +0 -0
  128. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/scripts/sentinel.py +0 -0
  129. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_core.py +0 -0
  130. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
  131. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
  132. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
  133. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
  134. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
  135. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
  136. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
  137. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
  138. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
  139. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
  140. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
  141. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
  142. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
  143. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
  144. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
  145. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
  146. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
  147. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
  148. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
  149. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
  150. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
  151. {meshcode-2.11.106/meshcode-tasks-wt → meshcode-2.11.107/meshcode-noun-wt/build/lib}/meshcode/meshcode_mcp/backend.py +0 -0
  152. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
  153. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
  154. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  155. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
  156. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
  157. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
  158. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
  159. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
  160. {meshcode-2.11.106/meshcode-tasks-wt → meshcode-2.11.107/meshcode-noun-wt/build/lib}/meshcode/setup_clients.py +0 -0
  161. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
  162. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
  163. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/__init__.py +0 -0
  164. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/cli.py +0 -0
  165. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/compat.py +0 -0
  166. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
  167. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
  168. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/invites.py +0 -0
  169. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/launcher.py +0 -0
  170. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
  171. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  172. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  173. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  174. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  175. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  176. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/preferences.py +0 -0
  177. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
  178. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
  179. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/secrets.py +0 -0
  180. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/self_update.py +0 -0
  181. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
  182. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/meshcode/upload.py +0 -0
  183. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/scripts/sentinel.py +0 -0
  184. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_core.py +0 -0
  185. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
  186. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
  187. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
  188. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
  189. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
  190. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
  191. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
  192. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
  193. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
  194. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
  195. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
  196. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
  197. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/cli.py +0 -0
  198. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/compat.py +0 -0
  199. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
  200. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
  201. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/invites.py +0 -0
  202. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
  203. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
  204. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  205. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  206. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  207. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  208. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  209. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
  210. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
  211. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
  212. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
  213. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
  214. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
  215. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/meshcode/upload.py +0 -0
  216. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
  217. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_core.py +0 -0
  218. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
  219. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
  220. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
  221. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
  222. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
  223. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
  224. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
  225. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
  226. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
  227. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
  228. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
  229. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/PKG-INFO 2 +0 -0
  230. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/SOURCES 2.txt +0 -0
  231. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/SOURCES.txt +0 -0
  232. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/dependency_links 2.txt +0 -0
  233. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/dependency_links.txt +0 -0
  234. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/entry_points 2.txt +0 -0
  235. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/entry_points.txt +0 -0
  236. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/requires 2.txt +0 -0
  237. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/requires.txt +0 -0
  238. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/top_level 2.txt +0 -0
  239. {meshcode-2.11.106 → meshcode-2.11.107}/meshcode.egg-info/top_level.txt +0 -0
  240. {meshcode-2.11.106 → meshcode-2.11.107}/setup.cfg +0 -0
  241. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_auto_update_hardening.py +0 -0
  242. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_autonomous_closegap_1.py +0 -0
  243. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_autonomous_closegap_2.py +0 -0
  244. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_autonomous_closegap_3.py +0 -0
  245. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_autonomous_prompt_inject 2.py +0 -0
  246. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_autonomous_prompt_inject 3.py +0 -0
  247. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_autonomous_prompt_inject.py +0 -0
  248. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_boot_bug_regression.py +0 -0
  249. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_color_truecolor.py +0 -0
  250. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_core.py +0 -0
  251. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_cross_agent_messaging.py +0 -0
  252. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_date_parse.py +0 -0
  253. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_doctor.py +0 -0
  254. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_epistemic_v1_python_sdk.py +0 -0
  255. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_epistemic_v1_stop_conditions.py +0 -0
  256. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_esc_deaf_state.py +0 -0
  257. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_exceptions.py +0 -0
  258. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_file_upload.py +0 -0
  259. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_init_device_code.py +0 -0
  260. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_install_guard.py +0 -0
  261. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_lease_sigterm_release.py +0 -0
  262. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_mark_read_batch.py +0 -0
  263. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_marketplace_ratings.py +0 -0
  264. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_migration_integrity.py +0 -0
  265. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_realtime_event_freshness.py +0 -0
  266. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_rls_cross_tenant.py +0 -0
  267. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_rpc_grants.py +0 -0
  268. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_rpc_migrations.py +0 -0
  269. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_run_agent_dry_run.py +0 -0
  270. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_run_agent_no_server_import.py +0 -0
  271. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_security_regressions.py +0 -0
  272. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_self_update_user_site.py +0 -0
  273. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_sentinel.py +0 -0
  274. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_setup_path.py +0 -0
  275. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_sleep_signals.py +0 -0
  276. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_status_enum_coverage.py +0 -0
  277. {meshcode-2.11.106 → meshcode-2.11.107}/tests/test_stay_on_loop_hook.py +0 -0
  278. {meshcode-2.11.106 → meshcode-2.11.107}/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.106
3
+ Version: 2.11.107
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.106"
2
+ __version__ = "2.11.107"
3
3
 
4
4
  # Exception hierarchy — eagerly imported (lightweight, no deps)
5
5
  from meshcode.exceptions import ( # noqa: F401
@@ -4030,14 +4030,36 @@ async def meshcode_wait(timeout_seconds: int = 20, include_acks: bool = False) -
4030
4030
  # legacy "no paraba hasta completar todos" cadence. Non-leader
4031
4031
  # agents only — leaders need to stay in wait to triage wildcard
4032
4032
  # tasks for the mesh.
4033
- if pending_tasks and not _is_leader_agent():
4034
- # Auto-start the highest priority claimed task so the agent
4035
- # sees it as in_progress and works it immediately. Samuel
4036
- # directive: "agents should claim and work right away one by one."
4033
+ # DURABLE-NO-IDLE-SPIN (task 2adb1705): the task-pull short-circuit must
4034
+ # only fire for tasks that still need STARTING (status 'open'). A task
4035
+ # already in_progress by THIS agent means it has been started and is being
4036
+ # worked or is BLOCKED on an external gate (e.g. a missing credential).
4037
+ # Re-emitting the pull every wait for an in_progress task is exactly the
4038
+ # idle-spin that burned ~45min/148k tokens re-printing "holding". So we
4039
+ # only short-circuit on _tasks_to_start; in_progress tasks fall through to
4040
+ # the normal message-blocking wait (surfaced as a non-blocking reminder).
4041
+ _tasks_to_start = [t for t in (pending_tasks or []) if t.get("status") == "open"]
4042
+ _in_progress_mine = [t for t in (pending_tasks or []) if t.get("status") == "in_progress"]
4043
+ # CHAT-DELIVERY-FIX (2026-06-04, Samuel "fix now"): message delivery MUST take
4044
+ # priority over the task-pull short-circuit. Previously this block returned BEFORE
4045
+ # PRODUCT RULE 2 (below), so any agent holding an OPEN task went DEAF to incoming
4046
+ # messages — never read them, no blue check, the human's chat appeared broken
4047
+ # ("te escribo y no sale palomita azul en nadie"). If there are unread messages,
4048
+ # skip task_pull and fall through to PRODUCT RULE 2 so they get delivered + marked
4049
+ # read first. Task-pull still fires normally when the inbox is empty.
4050
+ _has_unread = False
4051
+ try:
4052
+ _has_unread = bool(be.count_pending(_PROJECT_ID, AGENT_NAME, api_key=_get_api_key()))
4053
+ except Exception:
4054
+ _has_unread = False
4055
+ if _tasks_to_start and not _is_leader_agent() and not _has_unread:
4056
+ # Auto-start the highest priority OPEN task so the agent sees it as
4057
+ # in_progress and works it immediately. Samuel directive: "agents
4058
+ # should claim and work right away one by one."
4037
4059
  _auto_started = None
4038
4060
  _PRIO_ORDER = {"urgent": 0, "high": 1, "normal": 2, "low": 3}
4039
4061
  _sorted_pending = sorted(
4040
- pending_tasks,
4062
+ _tasks_to_start,
4041
4063
  key=lambda t: (_PRIO_ORDER.get(t.get("priority", "normal"), 2), t.get("id", "")),
4042
4064
  )
4043
4065
  for _pt in _sorted_pending: