meshcode 2.10.1__tar.gz → 2.10.2__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.10.1 → meshcode-2.10.2}/PKG-INFO +1 -1
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/__init__.py +1 -1
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/run_agent.py +10 -9
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.10.1 → meshcode-2.10.2}/pyproject.toml +1 -1
- {meshcode-2.10.1 → meshcode-2.10.2}/README.md +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/cli.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/comms_v4.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/invites.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/launcher.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/preferences.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/secrets.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/self_update.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/setup.cfg +0 -0
- {meshcode-2.10.1 → meshcode-2.10.2}/tests/test_status_enum_coverage.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""MeshCode — Real-time communication between AI agents."""
|
|
2
|
-
__version__ = "2.10.
|
|
2
|
+
__version__ = "2.10.2"
|
|
@@ -466,18 +466,19 @@ def run(agent: str, project: Optional[str] = None, editor_override: Optional[str
|
|
|
466
466
|
cmd = [editor, str(ws)]
|
|
467
467
|
|
|
468
468
|
# If stdin is not a tty (e.g. heredoc from `meshcode scan <<'ART'`),
|
|
469
|
-
#
|
|
470
|
-
#
|
|
469
|
+
# replace it with /dev/null so the editor can't seek back and re-read
|
|
470
|
+
# the heredoc content. We intentionally do NOT reopen /dev/tty here:
|
|
471
|
+
# Claude Code (and other TUI editors) open /dev/tty themselves for raw
|
|
472
|
+
# keyboard input when they detect stdin is not a terminal. Giving them
|
|
473
|
+
# a dup'd /dev/tty as fd 0 tricks them into a different code-path that
|
|
474
|
+
# breaks interactive input.
|
|
471
475
|
if not sys.stdin.isatty():
|
|
472
476
|
try:
|
|
473
|
-
|
|
474
|
-
os.dup2(
|
|
475
|
-
os.close(
|
|
476
|
-
# Rebuild Python-level sys.stdin on top of the new fd 0
|
|
477
|
-
# so the editor inherits a working interactive stream.
|
|
478
|
-
sys.stdin = os.fdopen(0, "r", closefd=False)
|
|
477
|
+
null_fd = os.open(os.devnull, os.O_RDONLY)
|
|
478
|
+
os.dup2(null_fd, 0)
|
|
479
|
+
os.close(null_fd)
|
|
479
480
|
except OSError:
|
|
480
|
-
pass # No
|
|
481
|
+
pass # No devnull (unlikely) — let the editor handle it
|
|
481
482
|
|
|
482
483
|
try:
|
|
483
484
|
if sys.platform == "win32":
|
|
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
|