Repository navigation
Releases: gesta-run/subpool
Release list
Subpool v0.5.0
Highlights
- Separate gateway routing, provider adapters, protocol codecs, and upstream transport so Codex subscriptions, GitHub Copilot subscriptions, and OpenAI-compatible APIs share explicit adaptation boundaries.
- Complete bidirectional Chat Completions and Responses conversion, including tool declarations, calls, results, conversation history, and JSON/SSE rendering.
- Improve Copilot compatibility for Codex clients and GitHub Copilot CLI, including native Responses tools, model-specific request normalization, and stable streaming output identities.
- Add native
POST /v1/responses/compactforwarding for Codex and OpenAI-compatible providers that implement standalone compaction.
Protocol compatibility and reliability
- Preserve function, custom, and namespaced tool semantics across native and translated requests, including named tool choices, text tool results, call IDs, and custom grammars.
- Normalize Copilot tool schemas while preserving validation constraints, resolving schema references and object unions, and restoring client-facing tool names and types.
- Keep Copilot native stream item identities stable across added, delta, and completed events to avoid duplicate output items.
- Apply provider-scoped compatibility rules for Grok reasoning history, Claude assistant history and forced tool choices, and Gemini reasoning-effort validation without rewriting other providers' requests.
- Preserve the original request for retries and mixed-provider fallback rather than carrying an earlier provider's normalized payload into the next attempt.
- Try the alternate wire API for OpenAI-compatible providers only after endpoint-level 404, 405, or 501 responses; do not reinterpret model, authentication, rate-limit, or validation failures as missing endpoints.
- Preserve dense Chat streaming tool-call indices and requested terminal usage chunks, and avoid duplicated subscription-credit response headers.
Console and documentation
- Align Accounts table typography with the other console tables.
- Replace the reset-credit box with a top divider and a simpler inline presentation.
- Add provider account, GitHub Copilot CLI configuration, capability-limit, and provider-adapter architecture documentation.
Upgrade notes
Pull public.ecr.aws/cloudpilotai/subpool:v0.5.0 for the stable image. Linux AMD64 and ARM64 images are published together.
No new database migrations or deployment configuration changes are included since v0.4.0. The separate API and console listeners remain required, with unchanged settings and defaults.
Protocol limitations are now reported explicitly instead of silently losing request semantics:
- Standalone compaction requires a native upstream compaction endpoint. Copilot subscriptions return
unsupported_compaction; Subpool does not fabricate encrypted compaction items. - Image and file tool results require native Responses support. Conversion to Chat returns
unsupported_tool_output; ordinary user image messages remain supported. - Stateful continuation, in-band compaction, and non-default Chat controls that the alternate protocol cannot represent are not silently downgraded.
- Subpool exposes OpenAI-style wire APIs, not Anthropic Messages. For GitHub Copilot CLI, use
COPILOT_PROVIDER_TYPE=openai, a provider base URL ending in/v1, and an appropriate Chat or Responses wire API for the selected model.
Verification includes Go, web, release-page, race-enabled adapter/gateway, and illustrative local protocol-matrix tests. This coverage is not a blanket live-compatibility guarantee for every client version or upstream model.
Full changelog: v0.4.0...v0.5.0
Subpool v0.4.0
Highlights
- Separate the employee API and administrative console into independently configurable HTTP listeners in the same process, allowing deployments to apply different reverse-proxy and network access rules.
- Improve provider account readability with clearer account identity, consolidated health information, larger controls, and better-aligned subscription details.
- Show Codex AI credit balances inline with subscription capacity and distinguish reset-credit expiration from subscription quota reset times.
Console and usage
- Organize account rows into Account, Health, Subscription & credits, and Actions, keeping health-check timestamps alongside routing status.
- Keep AI credit balances visible, including zero and unlimited balances, while retaining a standalone balance when subscription windows are unavailable.
- Group reset-credit availability, expiration, and the Reset credits action into a consistent layout, with clear loading, unavailable, retry, and result states.
Reliability and operations
- Keep
/v1/*,/healthz,/readyz, and/metricson the API listener; serve the web console and/api/v1/*control API only on the console listener. - Reject identical listener addresses and report listener startup failures.
- Shut down both HTTP listeners concurrently and wait for active requests to drain within the shared 15-second shutdown timeout.
- Refresh release pages from main when GitHub releases are published, edited, or deleted, keeping the public version history in sync.
Upgrade notes
Pull public.ecr.aws/cloudpilotai/subpool:v0.4.0 for the stable image. No new database migrations are included since v0.3.0. Existing Codex, GitHub Copilot, and OpenAI-compatible API integrations remain supported.
Breaking deployment configuration change: combined-port serving and SUBPOOL_LISTEN_ADDRESS have been removed. Update deployment configuration and reverse-proxy routing before upgrading:
- For direct binary deployments, configure
SUBPOOL_API_LISTEN_ADDRESS(default:8080) andSUBPOOL_CONSOLE_LISTEN_ADDRESS(default:8081). Use different listener addresses. - For Docker Compose,
SUBPOOL_PORTcontinues to select the API host port (default8080);SUBPOOL_CONSOLE_PORTselects the new console host port (default8081). - For pre deployments,
SUBPOOL_HOST_PORTkeeps the API on8082by default;SUBPOOL_CONSOLE_HOST_PORTselects the console port, defaulting to8083. - Set
SUBPOOL_PUBLIC_URLto the console's public origin. Route console pages and/api/v1/*to the console listener, and keep AI API traffic and operational checks on the API listener. - Update firewall or reverse-proxy access rules for the console listener as needed; port separation does not add an application-level IP allowlist.
Full changelog: v0.3.0...v0.4.0
Subpool v0.3.0
Highlights
- Route Codex built-in image generation and edit requests through bound Codex subscription accounts, using existing Responses-scoped API keys and mixed-pool failover without buffering large image payloads.
- Surface fresh GitHub Copilot and Codex subscription credit snapshots to Codex through HTTP and SSE response headers and Responses WebSocket rate-limit events.
- Display Codex AI credit balances alongside five-hour and weekly capacity in the account console.
Reliability and operations
- Preserve long-lived Responses WebSockets by clearing inherited HTTP read deadlines after connection upgrades while retaining per-message timeouts.
- Keep quota freshness metadata available across API key, pinned-account, and WebSocket routing so credit updates reach the final routed account after failover.
- Record image token usage and preserve subscription routing behavior across image generation and edit requests.
Documentation
- Document Codex subscription image endpoints and their existing API key scope.
Upgrade notes
Pull public.ecr.aws/cloudpilotai/subpool:v0.3.0 for the stable image. No new database migrations are included since v0.2.0. Existing Codex, GitHub Copilot, and OpenAI-compatible configurations remain supported.
Subpool v0.2.0
Highlights
- Add GitHub Copilot as a subscription provider with device OAuth, model discovery, account health, and AI credits visibility.
- Support Copilot through both Chat Completions and the native Responses API, with model-aware endpoint routing and mixed-pool failover.
- Bridge function, custom, namespaced, tool-search, multimodal, structured-output, refusal, and streaming error semantics across compatible endpoints.
- Publish a dedicated release page with stable version history, immutable image coordinates, source revisions, and release notes.
Reliability and operations
- Isolate Responses WebSocket sessions and improve quota-aware failover, cooldown recovery, request ordering, and process cleanup.
- Support larger buffered requests and longer upstream model responses with bounded, configurable limits.
- Refresh Codex quota against the official source, preserve quota freshness during probe failures, and surface five-hour usage.
- Generate typed store queries and scope assignment locks to strengthen concurrent routing behavior.
Console and usage
- Add employee usage summaries and paginated usage details while keeping API keys out of usage views.
- Improve account connection, quota, reset-credit, and provider-status workflows.
- Precompress web assets and update the bundled Codex CLI for GPT-6 models.
Upgrade notes
Pull public.ecr.aws/cloudpilotai/subpool:v0.2.0 for the stable image. Database migrations 016 through 018 are applied automatically during startup. Existing Codex and OpenAI-compatible configurations remain supported.
Subpool v0.1.0
Highlights
- Pool Codex subscription and OpenAI-compatible accounts behind employee API keys.
- Route Responses API, Chat Completions, and Responses WebSocket traffic with account affinity and health-aware failover.
- Keep a stable Codex device identity per account and optionally enforce Fast mode at the account level.
- Manage accounts, pools, API keys, quota, reset credits, health, and usage from the web console.
- Deploy with Docker Compose using published multi-architecture images from Amazon ECR Public.
Getting started
Follow the installation and Codex configuration instructions in the README. Database migrations are applied automatically during startup.
Compatibility
This is the first public release. Configuration and database upgrades within the 0.1 series will preserve the documented deployment path.