Skip to content

v2.0.0 — subprocess kernel

Latest

Choose a tag to compare

@diyor28 diyor28 released this 06 Jun 07:01
· 2 commits to main since this release

Highlights

  • Subprocess kernel (Jupyter-style): timeout is enforced for real — runaway code gets KeyboardInterrupt with namespace state preserved; segfaults/OOM kill only the kernel child and it respawns instantly with an explicit "variables cleared" notice
  • Top-level await — no asyncio.run() wrapper needed
  • Lazy MCP bridge.mcp.json servers connect on first mcp.* use (9/10 sessions spawn zero child servers); failures visible in mcp.failed
  • ~350MB smaller install (tree-sitter removed); nest_asyncio deleted

Hardening (stress-test driven)

  • Lone surrogates in output no longer wedge the server (UTF-8 sanitization at the model boundary)
  • Exception message/traceback capped at 10KB/20KB
  • reset=True restores shadowed sh/mcp helpers
  • sh() is binary-safe (errors=replace)
  • Head+tail stdout truncation; better error display + hints

Breaking changes

Removed (zero observed usage across real agent transcripts): workspace/git/ast_utils/code utilities, %magics + obj? queries, inject param, mcp.tools.* dot-style + discover_tools(), SSE transport (stdio only).

Install

/plugin marketplace add iota-uz/repl-mcp
/plugin install python-repl@repl-mcp

or: claude mcp add python-repl -- uvx --from git+https://github.com/iota-uz/repl-mcp@v2.0.0 repl-mcp