@leo000001/codex-mcp 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -25,7 +25,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
25
25
  - Documentation aligned with implementation details for event eviction and e2e guidance
26
26
  - Tool input defaults are now defined in schema (`cursor`, `maxEvents`, `includeSensitive`, `advanced.approvalTimeoutMs`) and client-facing text avoids duplicated default descriptions
27
27
  - `codex_session` adds `clean_background_terminals` action to call `thread/background_terminals/clean`
28
- - Approval action payloads now expose `approvalId` and `networkApprovalContext` when provided by app-server
28
+ - Approval action payloads now expose `approvalId` when provided by app-server
29
+ - Documentation was de-duplicated by splitting responsibilities between `AGENTS.md` (execution handbook) and `docs/DESIGN.md` (single source upgrade playbook), and a one-shot schema refresh runbook/record was added (`2026-02-21`, no schema diff)
30
+ - `src/app-server/protocol.ts` is now aligned to current v2 schema coverage for thread/turn params (`dynamicTools`, `persistExtendedHistory`, `collaborationMode`, richer `SandboxPolicy`, strict `UserInput` union, `turn/steer` params)
31
+ - `codex_check` input validation is now action-aware at schema level (`poll` vs `respond_permission` vs `respond_user_input`), including conditional `execpolicy_amendment` rules and forbidden-field checks
32
+ - Auth refresh request handling now uses explicit unsupported semantics (`-32000`) instead of `-32601` for `account/chatgptAuthTokens/refresh`
33
+ - Compatibility policy is now explicitly strict: removed non-essential alias compatibility (`approval_id`, `network_approval_context`, `questionId`) and documented a single necessary-compatibility whitelist (v1/v2 thread/turn id extraction)
34
+ - Command approval context is now surfaced directly in `actions[]` / `approval_request` payloads (`commandActions`, `proposedExecpolicyAmendment`) for richer client-side approval UX
35
+ - `turn/started` and `turn/completed` notification handling now only uses canonical `turn.id` shape (plus runtime `activeTurnId` fallback), and corresponding v1 top-level `turnId` compatibility tests were removed
36
+ - `compat-report` now correctly advertises `respondApprovalAlias: false` to match strict no-alias behavior
37
+ - Upgrade-policy docs were further de-duplicated: `docs/DESIGN.md` remains the single detailed compatibility source, and `AGENTS.md` now stays as a concise execution gate
29
38
 
30
39
  ## [0.1.0] - 2026-02-15
31
40
 
package/README.md CHANGED
@@ -220,7 +220,7 @@ Query a running session for events, respond to approval requests, or answer user
220
220
  | `decision` | string | For respond_permission | For command approvals: `"accept"`, `"acceptForSession"`, `"acceptWithExecpolicyAmendment"`, `"decline"`, `"cancel"`; for file changes: `"accept"`, `"acceptForSession"`, `"decline"`, `"cancel"` |
221
221
  | `execpolicy_amendment` | string[] | For acceptWithExecpolicyAmendment | Exec policy amendment list (required when `decision="acceptWithExecpolicyAmendment"`) |
222
222
  | `denyMessage` | string | No | Internal note on deny (not sent to app-server) |
223
- | `answers` | object | For respond_user_input | For `respond_user_input`: `questionId -> { answers: string[] }` |
223
+ | `answers` | object | For respond_user_input | For `respond_user_input`: `question-id -> { answers: string[] }` |
224
224
 
225
225
  **Returns (poll and respond_*):** `{ sessionId, status, pollInterval?, cursorResetTo?, events, nextCursor, actions?, result? }`
226
226
 
@@ -267,10 +267,13 @@ When the agent requests approval or user input, `poll` includes an `actions[]` l
267
267
 
268
268
  - `respond_permission`: `decision` is one of `accept`, `acceptForSession`, `decline`, `cancel`.
269
269
  - For command approvals, `acceptWithExecpolicyAmendment` is supported and requires `execpolicy_amendment`.
270
- - `respond_user_input`: send `answers` keyed by `questionId`.
270
+ - `respond_user_input`: send `answers` keyed by the question `id`.
271
+ - For command approvals, `actions[]` may include `commandActions` and `proposedExecpolicyAmendment` for richer review UI.
271
272
 
272
273
  Pending approvals auto-decline after `advanced.approvalTimeoutMs`.
273
274
 
275
+ Auth callback note: if app-server sends `account/chatgptAuthTokens/refresh`, codex-mcp returns JSON-RPC error `-32000` because external ChatGPT token refresh is out of scope for this server.
276
+
274
277
  ## Session Lifecycle & Cleanup
275
278
 
276
279
  Sessions auto-clean up in the background: