Codex with ChatGPT v0.1.2
ChatGPT thinks. Codex works.
v0.1.2 is a reliability and interoperability update focused on making the bridge safer to start, quieter on Windows, and easier for MCP clients to consume correctly.
The core model remains unchanged: ChatGPT plans and reviews; Codex owns execution. No API key. No reverse proxy. No cookies or session extraction.
✨ Highlights
-
Structured MCP outputs
- Read-only MCP tools now advertise structured output schemas
- Successful calls return matching "structuredContent" while keeping the existing text JSON content for compatibility
- Workspace, file, search, Git, test status, execution summary, and execution output results are covered
- This makes C2C easier and safer for MCP clients to consume without guessing response shapes
-
Structured-output hardening
- "c2c record" now validates numeric arguments before saving them
- Execution records are validated on write
- Malformed historical records are skipped safely on read instead of breaking otherwise read-only MCP calls
- "test_status" and "execution_summary" now stay aligned with their advertised schemas
- Workspace and package metadata returned by "workspace_info" are sanitized before entering structured output
- "git_diff" documentation now uses the real pagination fields: "hasMore" and "nextOffset"
-
Safer Windows Quick Tunnel startup
- Quick Tunnel startup now fails closed instead of reporting success too early
- Startup completes only after the public "/health" endpoint identifies a healthy C2C Bridge
- Invalid or reserved "api.trycloudflare.com" URLs are rejected
- Early "cloudflared" exits, invalid health responses, timeouts, and stopped startup are handled as failures
- "C2C_CLOUDFLARED_PATH" can explicitly select a custom "cloudflared" executable
-
A quieter Windows experience
- Bridge daemon processes no longer open unnecessary console windows
- Named Tunnel processes no longer flash console windows
- Quick Tunnel processes are also hidden
- C2C can now stay in the background without repeatedly popping terminal windows during normal Windows use
🛠 Reliability & UX
- "doctor" no longer assumes an inconclusive local bridge probe means the bridge process is dead
- If the process still exists, C2C will not start a second bridge or unnecessarily ask ChatGPT to delete the connector
- Quick Tunnel URL discovery and public-health verification are stricter
- Windows tunnel process handling is more predictable
- Several setup and troubleshooting wording issues were cleaned up
Idea for the bridge-probe reliability improvement from @AtlaxTech (#43).
Windows background-process improvements include contributions from @moonjun (#164).
🔐 Safety & correctness
- Structured MCP results now have explicit schemas instead of relying only on text conventions
- Malformed persisted execution data cannot silently violate the MCP output contract
- Invalid numeric execution metadata is rejected before persistence
- Unexpected values in ".c2c.json" and "package.json" are filtered before being exposed through "workspace_info"
- Quick Tunnel startup requires confirmation from the actual public C2C "/health" endpoint
- No new MCP permissions were introduced by these changes
- No reverse proxy, cookie, session-extraction, or credential-sharing behavior was added
🧪 Tests
Regression coverage was expanded for:
- structured MCP output schemas
- malformed persisted execution records
- invalid "c2c record" CLI arguments
- workspace metadata sanitization
- bridge runtime detection
- Windows Quick Tunnel startup and failure handling
The structured-output hardening follow-up reports 164 tests passed, along with successful typecheck, build, and "git diff --check".
📚 Documentation
- Fixed "login" / "log in" wording in the Skill and README
- Updated Quick Tunnel troubleshooting guidance
- Corrected "git_diff" pagination documentation to use "hasMore" / "nextOffset"
- Documentation now better reflects the stricter bridge and tunnel behavior
🙌 Contributors
Thanks to everyone who reported issues, tested C2C across different environments, and contributed fixes or ideas.
Special thanks to:
- @AtlaxTech — bridge-process diagnosis / reliability idea
- @moonjun — Windows background-process improvements
- @peak-xiong — structured MCP output schemas and hardening
- Contributors behind the documentation fixes and Windows tunnel testing
中文
这是 v0.1.2,重点是把 C2C 的稳定性、Windows 使用体验和 MCP 输出规范继续打磨扎实。
核心理念仍然没变:
«ChatGPT 负责思考,Codex 负责干活。»
这版重点
-
MCP 正式加入 structured output schema
- 只读 MCP 工具现在明确告诉客户端自己会返回什么格式
- 同时保留原来的 JSON 文本输出,兼容已有使用方式
- workspace、文件、搜索、Git、测试状态、execution summary / output 等结果都覆盖到了
-
structured output 二次加固
- "c2c record" 的数字输入会先检查再保存
- execution record 写入前验证
- 历史脏数据不会再把只读 MCP 工具直接搞崩,而是安全跳过
- "test_status"、"execution_summary" 与 schema 保持一致
- "workspace_info" 会过滤异常的项目配置和 package metadata
- "git_diff" 分页说明修正为实际使用的 "hasMore" / "nextOffset"
-
Windows Quick Tunnel 更可靠
- 不再 tunnel 一启动就默认“成功”
- 必须真正从公网 "/health" 确认这是正常运行的 C2C Bridge 才算启动完成
- 拒绝错误的 "api.trycloudflare.com" 地址
- cloudflared 提前退出、health 异常、启动超时等都会正确失败
- 支持用 "C2C_CLOUDFLARED_PATH" 指定 cloudflared
-
Windows 后台终于更安静
- Bridge daemon 不再弹黑色控制台窗口
- Named Tunnel 不再弹
- Quick Tunnel 也不再弹
- 正常使用 C2C 时后台进程不会疯狂闪终端窗口
-
doctor 更聪明
- 本地 probe 一时没有得到明确结果,不再直接认定 bridge 死了
- 只要原进程还存在,就不会再启动第二个 bridge
- 也不会因为一次模糊检测就让 ChatGPT 去删 connector
安全与正确性
这次没有扩大 MCP 权限,也没有加入 reverse proxy、cookie、session 提取之类的新行为。
主要是在原来的架构上继续收紧:
输入更严格、输出更确定、脏数据更难把系统搞崩、Tunnel 启动成功的判断更可信。
另外补了更多 regression tests;最新 structured-output 加固相关测试达到 164 tests passed。
感谢 @AtlaxTech、@moonjun、@peak-xiong 以及所有提交 Issue、测试 Windows / Tunnel 场景、修正文档和贡献代码的人。❤️
最重要的一点仍然是:
能让 Agent 自己完成的事情,就不要让用户完成。