Skip to content

v0.1.2 — Structured MCP, Safer Tunnels & Windows Polish / 结构化 MCP、更可靠的隧道与 Windows 优化

Latest

Choose a tag to compare

@XiaoDuoYa XiaoDuoYa released this 04 Sep 10:46
a9f91cd

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 自己完成的事情,就不要让用户完成。