pr 29727 real dev verification, linux boat vm, 2026-11-03 baseline: github/main 61c3794c32, /home/user/main pr: 04d650f4d2256aaa5f393e4419b48f1cb76f52d2, /home/user/t3code one dev server at a time; isolated .t3 homes; no seed, mocks, or generated response data. projects and threads created in the web app. real Codex gpt-6.1-sol turns on both revisions. wire setup: real T3 dev server /mcp -> local framing gateway -> production acp-mcp-bridge or acp-mcp-call. gateway forwards actual requests, auth, sessions, tool payloads, status codes. gateway serializes actual JSON-RPC results as multiline SSE with chosen CR/LF/CRLF endings. stdio runs keep tools/call HTTP replies open for up to 10 minutes; each result must arrive within 4 seconds. no fake MCP tools or tool results. baseline, invoked by real Codex turn: native t3_project_list: succeeded; projects server, main. acp-mcp-call t3_project_list through CR-only gateway: exit 1. AcpMcpBridgeError: T3 Code MCP initialize failed. baseline stdio bridge: lf: initialize protocol=2025-06-18 lf: tools/list tools=68 lf: tools/call t3_project_list projects=server,main responseBeforeEOF=true lf: PASS cr: FAIL no bridge response before 4s deadline PR, invoked by real Codex turn: native t3_project_list: passed; projects server, t3code. same acp-mcp-call through CR-only gateway: exit 0, same real projects. real stdio bridge: cr, crlf_lf, lf_cr, lf, crlf all PASS, tool results before EOF. additional primary-agent real stdio boundary matrix follows. lf: initialize protocol=2025-06-18 lf: tools/list tools=68 lf: tools/call t3_project_list projects=server,t3code responseBeforeEOF=true lf: PASS crlf: initialize protocol=2025-06-18 crlf: tools/list tools=68 crlf: tools/call t3_project_list projects=server,t3code responseBeforeEOF=true crlf: PASS cr: initialize protocol=2025-06-18 cr: tools/list tools=68 cr: tools/call t3_project_list projects=server,t3code responseBeforeEOF=true cr: PASS crlf_lf: initialize protocol=2025-06-18 crlf_lf: tools/list tools=68 crlf_lf: tools/call t3_project_list projects=server,t3code responseBeforeEOF=true crlf_lf: PASS lf_cr: initialize protocol=2025-06-18 lf_cr: tools/list tools=68 lf_cr: tools/call t3_project_list projects=server,t3code responseBeforeEOF=true lf_cr: PASS lf_crlf: initialize protocol=2025-06-18 lf_crlf: tools/list tools=68 lf_crlf: tools/call t3_project_list projects=server,t3code responseBeforeEOF=true lf_crlf: PASS cr_crlf: initialize protocol=2025-06-18 cr_crlf: tools/list tools=68 cr_crlf: tools/call t3_project_list projects=server,t3code responseBeforeEOF=true cr_crlf: PASS crlf_cr: initialize protocol=2025-06-18 crlf_cr: tools/list tools=68 crlf_cr: tools/call t3_project_list projects=server,t3code responseBeforeEOF=true crlf_cr: PASS checks: +blacksmith: vp run check:changed ff73c4c2e6639c718d112ffa384ee5063f830d4e +pass format, lint, both knip checks, 34 affected typechecks, selected tests (2 files). +explicit PR base used after correcting the remote worker shallow-history setup. +CI: 28 success, 0 failing, 0 pending at head 04d650f4d2. + +not exercised: a real ACP provider process negotiating mcp-over-acp, native mobile and Electron shells, +macOS/Windows, or an independent external MCP server naturally emitting CR-only SSE. +native Codex MCP bypasses this shared reader; the Codex terminal bridge calls above exercise it. +no implementation edits, commits, or pushes were needed.