Back to feed

0.87.0

Jan 16, 2026
OpenAI/Codex CLICLIvrust-v0.87.0

New Features

  • User message metadata (text elements and byte ranges) now round-trips through protocol/app-server/core so UI annotations can survive history rebuilds. (#9331)
  • Collaboration wait calls can block on multiple IDs in one request, simplifying multi-thread coordination. (#9294)
  • User shell commands now run under the user snapshot so aliases and shell config are honored. (#9357)
  • The TUI now surfaces approval requests from spawned/unsubscribed threads. (#9232)

Bug Fixes

  • Token estimation during compaction is now accurate, improving budgeting during long sessions. (#9337)
  • MCP CallToolResult now includes threadId in both content and structuredContent, and returns a defined output schema for compatibility. (#9338)
  • The TUI “Worked for” separator only appears after actual work has occurred. (#8958)
  • Piped non-PTY commands no longer hang waiting on stdin. (#9369)

Documentation

  • MCP interface docs updated to reflect structured output schema and threadId behavior. (#9338)

Chores

  • Windows builds enable the PowerShell UTF-8 feature by default. (#9195)

Changelog

Full Changelog: https://github.com/openai/codex/compare/rust-v0.86.0...rust-v0.87.0

  • #9331 Add text element metadata to protocol, app server, and core @charley-oai
  • #9195 chore(windows) Enable Powershell UTF8 feature @dylan-hurd-oai
  • #8958 fix(tui): only show 'Worked for' separator when actual work was performed @ThanhNguyxn
  • #9338 fix(mcp): include threadId in both content and structuredContent in CallToolResult @bolinfest
  • #9337 Fix token estimate during compaction @etraut-openai
  • #9336 rename model turn to sampling request @aibrahim-oai
  • #9232 feat: propagate approval request of unsubscribed threads @jif-oai
  • #9357 feat: run user commands under user snapshot @jif-oai
  • #9294 feat: collab wait multiple IDs @jif-oai
  • #9366 feat: CODEX_CI @jif-oai
  • #9367 prompt collab @jif-oai
  • #9369 chore: close pipe on non-pty processes @jif-oai