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.
- {meshcode-2.6.5 → meshcode-2.6.7}/PKG-INFO +1 -1
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/__init__.py +1 -1
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/server.py +5 -5
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.6.5 → meshcode-2.6.7}/pyproject.toml +1 -1
- {meshcode-2.6.5 → meshcode-2.6.7}/README.md +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/cli.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/comms_v4.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/invites.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/launcher.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/launcher_install.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/preferences.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/run_agent.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/secrets.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/self_update.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode/setup_clients.py +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/setup.cfg +0 -0
- {meshcode-2.6.5 → meshcode-2.6.7}/tests/test_status_enum_coverage.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""MeshCode — Real-time communication between AI agents."""
|
|
2
|
-
__version__ = "2.6.
|
|
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 >
|
|
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
|
|
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 []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|