prodex 0.52.0

OpenAI profile pooling and safe auto-rotate for Codex CLI and Claude Code
Documentation
{
  "codex": {
    "compatibility": {
      "upstream_repository": "https://github.com/openai/codex",
      "baseline_source": "openai/codex main branch",
      "guard_command": "node scripts/compat/check-upstream-baseline.mjs",
      "critical_files": [
        {
          "path": "codex-rs/core/src/client.rs",
          "reason": "Owns Responses route constants, compact route constants, conversation headers, turn-state replay, previous-response continuations, and websocket enablement.",
          "required_contains": [
            "RESPONSES_ENDPOINT",
            "/responses",
            "RESPONSES_COMPACT_ENDPOINT",
            "/responses/compact",
            "build_conversation_headers",
            "previous_response_id",
            "X_CODEX_TURN_STATE_HEADER",
            "x-codex-turn-state",
            "X_CODEX_TURN_METADATA_HEADER",
            "x-codex-turn-metadata",
            "X_OPENAI_SUBAGENT_HEADER",
            "x-openai-subagent",
            "x-codex-beta-features",
            "OPENAI_BETA_HEADER",
            "responses_websockets=2026-02-06",
            "stream_responses_websocket"
          ]
        },
        {
          "path": "codex-rs/core/src/compact_remote.rs",
          "reason": "Owns remote compaction flow that reaches the unary Responses compact endpoint through ModelClient.",
          "required_contains": [
            "run_remote_compact_task",
            "compact_conversation_history",
            "CompactionImplementation::ResponsesCompact",
            "ContextCompactionItem"
          ]
        },
        {
          "path": "codex-rs/codex-api/src/sse/responses.rs",
          "reason": "Owns SSE Responses stream parsing, turn-state capture, completion boundary, and quota/error event interpretation.",
          "required_contains": [
            "spawn_response_stream",
            "process_sse",
            "process_responses_event",
            "x-codex-turn-state",
            "response.completed",
            "response.failed",
            "insufficient_quota",
            "rate_limit_exceeded"
          ]
        },
        {
          "path": "codex-rs/codex-api/src/endpoint/responses_websocket.rs",
          "reason": "Owns websocket Responses connection setup, request header merging, stream completion boundary, rate limit events, and wrapped websocket errors.",
          "required_contains": [
            "ResponsesWebsocketConnection",
            "websocket_url_for_path(\"responses\")",
            "merge_request_headers",
            "add_auth_headers",
            "x-codex-turn-state",
            "response.completed",
            "codex.rate_limits",
            "parse_wrapped_websocket_error_event",
            "websocket_connection_limit_reached"
          ]
        }
      ],
      "expected_headers": [
        "session_id",
        "x-openai-subagent",
        "x-codex-turn-state",
        "x-codex-turn-metadata",
        "x-codex-beta-features",
        "OpenAI-Beta",
        "User-Agent"
      ],
      "proxy_replaced_headers": [
        "Authorization",
        "ChatGPT-Account-Id"
      ],
      "expected_routes": [
        "/responses",
        "/responses/compact",
        "websocket_url_for_path(\"responses\")"
      ],
      "expected_stream_events": [
        "response.completed",
        "response.failed",
        "codex.rate_limits"
      ]
    }
  },
  "claude": {
    "latestRelease": {
      "tag_name": "v2.1.118",
      "name": "v2.1.118",
      "published_at": "2026-04-23T00:42:21Z",
      "html_url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.118"
    },
    "docs": [
      {
        "url": "https://docs.anthropic.com/en/docs/claude-code/settings",
        "title": "Claude Code settings - Claude Code Docs",
        "description": "Configure Claude Code with global and project-level settings, and environment variables.",
        "required_contains": [
          "settings.json",
          "CLAUDE.md",
          "hooks",
          "permissions",
          "MCP"
        ]
      },
      {
        "url": "https://docs.anthropic.com/en/docs/claude-code/setup",
        "title": "Advanced setup - Claude Code Docs",
        "description": "System requirements, platform-specific installation, version management, and uninstallation for Claude Code.",
        "required_contains": [
          "System requirements",
          "platform-specific installation",
          "version management",
          "uninstallation",
          "Claude Code"
        ]
      },
      {
        "url": "https://docs.anthropic.com/en/docs/claude-code/github-actions",
        "title": "Claude Code GitHub Actions - Claude Code Docs",
        "description": "Learn about integrating Claude Code into your development workflow with Claude Code GitHub Actions",
        "required_contains": [
          "GitHub Actions",
          "workflow",
          "development workflow",
          "integrate",
          "Claude Code"
        ]
      }
    ]
  }
}