meshcode 2.6.5__tar.gz → 2.6.7__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 (31) hide show
  1. {meshcode-2.6.5 → meshcode-2.6.7}/PKG-INFO +1 -1
  2. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/__init__.py +1 -1
  3. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/server.py +5 -5
  4. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/PKG-INFO +1 -1
  5. {meshcode-2.6.5 → meshcode-2.6.7}/pyproject.toml +1 -1
  6. {meshcode-2.6.5 → meshcode-2.6.7}/README.md +0 -0
  7. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/cli.py +0 -0
  8. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/comms_v4.py +0 -0
  9. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/invites.py +0 -0
  10. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/launcher.py +0 -0
  11. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/launcher_install.py +0 -0
  12. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/__init__.py +0 -0
  13. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/__main__.py +0 -0
  14. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/backend.py +0 -0
  15. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/realtime.py +0 -0
  16. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/test_backend.py +0 -0
  17. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  18. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  19. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/preferences.py +0 -0
  20. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/protocol_v2.py +0 -0
  21. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/run_agent.py +0 -0
  22. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/secrets.py +0 -0
  23. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/self_update.py +0 -0
  24. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/setup_clients.py +0 -0
  25. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/SOURCES.txt +0 -0
  26. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/dependency_links.txt +0 -0
  27. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/entry_points.txt +0 -0
  28. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/requires.txt +0 -0
  29. {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/top_level.txt +0 -0
  30. {meshcode-2.6.5 → meshcode-2.6.7}/setup.cfg +0 -0
  31. {meshcode-2.6.5 → meshcode-2.6.7}/tests/test_status_enum_coverage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.6.5
3
+ Version: 2.6.7
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,2 +1,2 @@
1
1
  """MeshCode — Real-time communication between AI agents."""
2
- __version__ = "2.6.5"
2
+ __version__ = "2.6.7"
@@ -994,8 +994,8 @@ def _heartbeat_thread_fn():
994
994
  elif _current_state == "online" and idle_secs > 30:
995
995
  # Brief idle — show as idle, not sleeping yet
996
996
  _set_state("idle", "idle")
997
- elif _current_state == "idle" and idle_secs > 90 and parent_cpu < 2.0:
998
- # Extended idle + no CPU activity → sleeping
997
+ elif _current_state == "idle" and idle_secs > 300 and parent_cpu < 2.0:
998
+ # Extended idle + no CPU activity → sleeping (5 min, not 90s)
999
999
  _set_state("sleeping", "sleeping")
1000
1000
 
1001
1001
  # Sync current state to DB (in case realtime missed it)
@@ -1340,7 +1340,7 @@ async def meshcode_wait(timeout_seconds: int = 120, include_acks: bool = False)
1340
1340
  Args:
1341
1341
  timeout_seconds: Max wait time in seconds (default 120, hard cap 120).
1342
1342
  """
1343
- global _IN_WAIT, _CONSECUTIVE_IDLE_SECONDS
1343
+ global _IN_WAIT, _CONSECUTIVE_IDLE_SECONDS, _LAST_SEEN_TS
1344
1344
 
1345
1345
  # PRODUCT RULE 1: If agent has open tasks, refuse to wait. Work first.
1346
1346
  pending_tasks = _get_pending_tasks_summary()
@@ -1409,14 +1409,13 @@ async def meshcode_wait(timeout_seconds: int = 120, include_acks: bool = False)
1409
1409
  "auto_sleep": True,
1410
1410
  "idle_seconds": _CONSECUTIVE_IDLE_SECONDS,
1411
1411
  "threshold": _AUTO_SLEEP_THRESHOLD,
1412
- "instruction": "You have been idle too long. Status set to sleeping. Exit the wait loop to save resources. You will be woken by auto_wake if a new message arrives.",
1412
+ "instruction": "You have been idle for a while. Status set to sleeping. Call meshcode_wait() again to keep listening do NOT exit the loop or use ScheduleWakeup.",
1413
1413
  }
1414
1414
  # Auto-inject pending tasks so agents don't forget to check
1415
1415
  pending_tasks = _get_pending_tasks_summary()
1416
1416
  if pending_tasks:
1417
1417
  result["pending_tasks"] = pending_tasks
1418
1418
  # Track last seen timestamp for message dedup
1419
- global _LAST_SEEN_TS
1420
1419
  if result.get("got_message"):
1421
1420
  msgs = result.get("messages", [])
1422
1421
  if msgs:
@@ -1600,6 +1599,7 @@ def meshcode_check(include_acks: bool = False, since: Optional[str] = None) -> D
1600
1599
  since: ISO-8601 timestamp. Only return messages newer than this.
1601
1600
  Use meshcode_remember("last_seen", ts) to persist across sessions.
1602
1601
  """
1602
+ global _LAST_SEEN_TS
1603
1603
  pending = be.count_pending(_PROJECT_ID, AGENT_NAME, api_key=_get_api_key())
1604
1604
  # Peek at realtime buffer WITHOUT draining — check is non-destructive
1605
1605
  realtime_buffered = _REALTIME.peek() if _REALTIME else []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.6.5
3
+ Version: 2.6.7
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.6.5"
7
+ version = "2.6.7"
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
File without changes
File without changes
File without changes
File without changes