github openai/tunnel-client v0.0.19

4 hours ago

MCP server request IDs

When an MCP HTTP response includes X-Request-Id, tunnel-client now forwards it in the response envelope as X-Tunnel-Mcp-Request-Id. This preserves the MCP server's identifier separately from the connector's own HTTP request ID. The field is omitted when the upstream header is absent or listed in Connection; older clients and services may omit it.

Stdio child recovery

All three client flavors now restart a supervised stdio MCP child after an unexpected exit, stdout EOF, or stdin write failure. Recovery resets the child's MCP session state and prevents stale connections from being reused.

Requests in progress can fail and are not replayed. Legacy callers must initialize the replacement child before retrying.

For deployments that rely on an external supervisor restarting the entire client, set MCP_STDIO_FAILURE_POLICY=exit. The equivalent flag is --mcp.stdio-failure-policy=exit, and the YAML field is mcp.stdio_failure_policy: exit. The exit policy produces a nonzero client exit on child failure; intentional shutdown remains successful.

Use the environment setting while older and newer binaries share configuration. Older binaries reject the new CLI flag and YAML key, so remove those before downgrading. Keep only one client active per stdio tunnel during upgrades. See the stdio configuration and rollback guidance.

DNS diagnostics

The first control-plane DNS failure now emits a bounded diagnostic warning with failure classification, build information, and resolver configuration. It excludes queried names, nameserver addresses, URLs, and credentials.

These diagnostics help investigate Android/Termux and other DNS failures. They do not change DNS resolution or establish Android support. See the DNS troubleshooting guide.

Local development proxy compatibility

Redis-backed queues have been removed from the optional Rust development proxy. Explicit Redis selection, --engine-redis-url, or a nonempty TUNNEL_ENGINE_REDIS_URL now fails before startup.

Remove retired Redis settings and use --engine-queue-backend=inmem for ephemeral local work, or retain the previous client version for Redis-backed development setups.

Don't miss a new tunnel-client release

NewReleases is sending notifications on new releases.