From eec630887ce72a7dafae4c33f5e85ad7c746b038 Mon Sep 17 00:00:00 2001 From: blasty Date: Thu, 9 Jul 2026 11:14:23 +0200 Subject: persistent MCP client: warm handshake, keep-alive pool, error taxonomy, thread-safe - IDAClient: single handshake, ~7ms warm calls (vs ~60ms cold CLI) - keep-alive connection pool over http.client; concurrent-safe (40 threads OK) - grounded error taxonomy: IDAToolError on isError, soft per-item errors as data - session-expiry recovery (404 -> re-handshake -> retry), bounded transport retries - auto db-injection + resolve_db (ignores stale empty-id sessions) - live smoke test: 13/13 pass --- pyproject.toml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 pyproject.toml (limited to 'pyproject.toml') diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..e491542 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,20 @@ +[project] +name = "idatui" +version = "0.0.1" +description = "A minimal keyboard-first TUI frontend for IDA Pro over the ida-pro-mcp (idalib) server." +requires-python = ">=3.11" +# The client layer is intentionally stdlib-only (urllib/http.client), matching the +# ida-mcp skill philosophy: no install needed to talk to the server. +dependencies = [] + +[project.optional-dependencies] +# The TUI layer (added in a later phase) pulls in Textual. +tui = ["textual>=0.60"] +dev = ["pytest>=8"] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["idatui"] -- cgit v1.3.1-sl0p