meshcode 2.10.0__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.
Files changed (32) hide show
  1. {meshcode-2.10.0 → meshcode-2.10.2}/PKG-INFO +1 -1
  2. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/__init__.py +1 -1
  3. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/run_agent.py +10 -6
  4. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode.egg-info/PKG-INFO +1 -1
  5. {meshcode-2.10.0 → meshcode-2.10.2}/pyproject.toml +1 -1
  6. {meshcode-2.10.0 → meshcode-2.10.2}/README.md +0 -0
  7. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/ascii_art.py +0 -0
  8. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/cli.py +0 -0
  9. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/comms_v4.py +0 -0
  10. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/invites.py +0 -0
  11. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/launcher.py +0 -0
  12. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/launcher_install.py +0 -0
  13. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/meshcode_mcp/__init__.py +0 -0
  14. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/meshcode_mcp/__main__.py +0 -0
  15. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/meshcode_mcp/backend.py +0 -0
  16. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/meshcode_mcp/realtime.py +0 -0
  17. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/meshcode_mcp/server.py +0 -0
  18. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/meshcode_mcp/test_backend.py +0 -0
  19. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  20. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  21. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/preferences.py +0 -0
  22. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/protocol_v2.py +0 -0
  23. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/secrets.py +0 -0
  24. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/self_update.py +0 -0
  25. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode/setup_clients.py +0 -0
  26. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode.egg-info/SOURCES.txt +0 -0
  27. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode.egg-info/dependency_links.txt +0 -0
  28. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode.egg-info/entry_points.txt +0 -0
  29. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode.egg-info/requires.txt +0 -0
  30. {meshcode-2.10.0 → meshcode-2.10.2}/meshcode.egg-info/top_level.txt +0 -0
  31. {meshcode-2.10.0 → meshcode-2.10.2}/setup.cfg +0 -0
  32. {meshcode-2.10.0 → meshcode-2.10.2}/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.10.0
3
+ Version: 2.10.2
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.10.0"
2
+ __version__ = "2.10.2"
@@ -466,15 +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
- # reopen it as /dev/tty so the editor gets a real interactive terminal
470
- # instead of the heredoc temp file (which it would re-read as input).
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
- tty_fd = os.open("/dev/tty", os.O_RDONLY)
474
- os.dup2(tty_fd, 0)
475
- os.close(tty_fd)
477
+ null_fd = os.open(os.devnull, os.O_RDONLY)
478
+ os.dup2(null_fd, 0)
479
+ os.close(null_fd)
476
480
  except OSError:
477
- pass # No tty available (CI, headless) — let the editor handle it
481
+ pass # No devnull (unlikely) — let the editor handle it
478
482
 
479
483
  try:
480
484
  if sys.platform == "win32":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.10.0
3
+ Version: 2.10.2
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.10.0"
7
+ version = "2.10.2"
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