PR #28683 real Linux dev verification main: e6e2ab05cc PR: 18e5ac6a326ad40f98b79f7c5222f527ba7c0a67 Commands: git worktree add ../main github/main; vp i; background vp run dev. Main stopped before PR dev was started. PR dev: vp run dev --home-dir /home/user/t3code/.t3 --no-seed Browser: repository Playwright with /usr/bin/google-chrome Both environments: app-created real checkout project; Codex gpt-6.1-sol turn called orchestrator_capabilities successfully. PR turn also called t3_project_list and returned the real project. Upstream 429 recovered after two retries. OAuth: dynamic registration, browser Read only approval, PKCE exchange. No credentials included below. 2026 requests: mcp-protocol-version, mcp-method, mcp-name for tool calls, and matching protocol metadata. Stateless calls, no initialize or MCP session ID. BEFORE main: OAuth registration -> browser Read only approval -> PKCE token exchange: 200 server/discover 2026-07-28: HTTP 400 {"jsonrpc":"2.0","id":1,"error":{"code":-32022,"message":"Unsupported protocol version '2026-07-28'","data":{"supported":["2025-06-18"],"requested":"2026-07-28"}}} tools/list 2026-07-28: HTTP 400 {"jsonrpc":"2.0","id":2,"error":{"code":-32022,"message":"Unsupported protocol version '2026-07-28'","data":{"supported":["2025-06-18"],"requested":"2026-07-28"}}} tools/call 2026-07-28: HTTP 400 {"jsonrpc":"2.0","id":3,"error":{"code":-32022,"message":"Unsupported protocol version '2026-07-28'","data":{"supported":["2025-06-18"],"requested":"2026-07-28"}}} tools/call 2026-07-28: HTTP 400 {"jsonrpc":"2.0","id":4,"error":{"code":-32022,"message":"Unsupported protocol version '2026-07-28'","data":{"supported":["2025-06-18"],"requested":"2026-07-28"}}} initialize 2025-06-18: HTTP 200 {"jsonrpc":"2.0","id":5,"result":{"protocolVersion":"2025-06-18","capabilities":{"logging":{},"tools":{"listChanged":true},"completions":{}},"serverInfo":{"name":"T3 Code","version":"0.1.6"}}} legacy initialized 202; tools/list 200, tools=68, error=null initialize 2099-01-01: HTTP 200 {"jsonrpc":"2.0","id":7,"result":{"protocolVersion":"2025-06-18","capabilities":{"logging":{},"tools":{"listChanged":true},"completions":{}},"serverInfo":{"name":"T3 Code","version":"0.1.6"}}} legacy initialized 202; tools/list 200, tools=68, error=null missing credential: HTTP 401 {"error":"invalid_mcp_credential","message":"A valid T3 Code MCP credential is required."} invalid credential: HTTP 401 {"error":"invalid_mcp_credential","message":"A valid T3 Code MCP credential is required."} AFTER (asserted HTTP 200, no JSON-RPC error, isError=false on successful tool calls) server/discover: HTTP 200; supportedVersions=["2025-06-18","2026-07-28"] tools/list: HTTP 200; 68 tools; orchestrator_capabilities present tools/call orchestrator_capabilities: HTTP 200; isError=false; real Codex provider catalog returned tools/call t3_project_list: HTTP 200; isError=false; app-created project t3code -> /home/user/t3code read-only OAuth grant, t3_project_update with unchanged title: isError=true; [{"type":"text","text":"{\"_tag\":\"OrchestratorMcpFailure\",\"code\":\"capability_denied\",\"message\":\"This tool changes the environment, and this MCP client was approved for read-only access.\"}"}] NEIGHBORING LEGACY/AUTH PATHS initialize 2025-06-18: HTTP 200 {"jsonrpc":"2.0","id":5,"result":{"protocolVersion":"2025-06-18","capabilities":{"logging":{},"tools":{"listChanged":true},"completions":{}},"serverInfo":{"name":"T3 Code","version":"0.1.6"}}} legacy initialized 202; tools/list 200, tools=68, error=null initialize 2099-01-01: HTTP 200 {"jsonrpc":"2.0","id":7,"result":{"protocolVersion":"2025-06-18","capabilities":{"logging":{},"tools":{"listChanged":true},"completions":{}},"serverInfo":{"name":"T3 Code","version":"0.1.6"}}} legacy initialized 202; tools/list 200, tools=68, error=null missing credential: HTTP 401 {"error":"invalid_mcp_credential","message":"A valid T3 Code MCP credential is required."} invalid credential: HTTP 401 {"error":"invalid_mcp_credential","message":"A valid T3 Code MCP credential is required."} CHECKS blacksmith-check: vp test run apps/server/src/mcp/McpHttpServer.test.ts -> 29 passed blacksmith-check: vp run check:changed 82b10d546c1041d8eff40425f076d61f608d518f -> format, lint, knip, graphql, 3 package typechecks, 30 tests passed. Initial check required fetching missing history in shallow worker. No code changes.