fix: target standard CPython 3.14 (mitmproxy incompatible with 3.14t)

mitmproxy's aioquic/mitmproxy-rs deps have no free-threaded wheels and
source builds fail. Workload is I/O-bound so free-threading gave no
benefit. Switch .python-version to 3.14, drop /tmp stub overrides,
reinstall mitmproxy with real wheels (imports cleanly). Update README
and design spec to record the decision.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-05-31 23:50:26 +08:00
parent c6173b0ceb
commit 422990bc4e
5 changed files with 132 additions and 41 deletions
@@ -264,10 +264,17 @@ LLM):
- All must be validated for Python 3.14 free-threaded wheel availability during
implementation; fallback documented if any are missing.
## Open questions for implementation
## Decisions made during implementation
- Confirm free-threaded wheel availability for mitmproxy / playwright on 3.14t;
decide fallback interpreter if needed.
- **Runtime: standard CPython 3.14 (not free-threaded).** mitmproxy cannot run on
`3.14t` — its `aioquic` and `mitmproxy-rs` deps ship only Limited-API (`abi3`)
wheels that the free-threaded build rejects, and source builds fail. The
workload is entirely I/O-bound (asyncio proxy loop, agent loop on network/LLM,
Playwright as a separate Node subprocess), so free-threading offered no
practical benefit. The threading architecture below is unchanged; threads run
under the GIL, which is fine for I/O-bound work.
## Open questions for implementation
- Exact compact-snapshot format the browser tools return to the agent
(accessibility tree vs. trimmed DOM) — tune for token cost vs. usefulness.
- Path-template heuristics tuning (avoid over-collapsing legitimately distinct