Commit Graph
2647 Commits
Author SHA1 Message Date
Luis Pater 5e41e079e5 fix(runtime): update formatting in codex image extraction comment 2026-06-09 02:20:57 +08:00
Luis Pater d128578efa Merge pull request #3771 from Folyd/perf/codex-image-streaming-memory
perf(codex): avoid rebuilding completed JSON when extracting generated images
2026-06-09 01:49:12 +08:00
Luis Pater 1762ee0d2e feat(pluginhost): add support for interceptors and metadata sanitization
- Implemented `RequestInterceptor`, `ResponseInterceptor`, and `StreamChunkInterceptor` capabilities.
- Added `sanitizePluginMetadata` to clean metadata for RPC compatibility.
- Enhanced interceptor chaining, error handling, and test coverage.
- Updated plugin configuration to register and dispatch interceptor methods.
2026-06-09 01:41:46 +08:00
Folyd 2e81766c92 perf(codex): preallocate results and skip empty index sort
Apply review feedback on codexExtractImageResults: preallocate the results
slice to its known maximum capacity to avoid growth reallocations, and guard
the itemsByIndex index-build/sort with a length check so no empty slice is
allocated or sorted when only the fallback items are present.
2026-06-08 15:55:42 +00:00
Folyd 4330b92612 perf(codex): avoid rebuilding completed JSON when extracting generated images
The OpenAI images path (/v1/images/*) previously called patchCodexCompletedOutput
to concatenate collected output_item.done items back into the completed event and
then re-parsed that rebuilt JSON to pull out the image results. For multi-megabyte
base64 image payloads this produced two extra full-size copies per request (the
concatenated output array plus the rebuilt completed event), inflating peak memory
under concurrent image generation.

Add codexExtractImageResults, which extracts image_generation_call results directly
from either the completed event's response.output or the collected items, without
the concatenate-and-reparse step. Semantics are preserved: completed output is
preferred and collected items are used only when it is empty, matching the original
patchCodexCompletedOutput behaviour. patchCodexCompletedOutput remains in use by the
text/responses path, which still forwards the patched event downstream.

Adds unit tests covering the completed-output path, the ordered fallback to
collected items, output preference, fallback list, and the wrong-event-type guard.
2026-06-08 15:47:14 +00:00
Luis Pater 07c607b709 chore(build): remove checksum generation from release workflows
- Eliminated redundant checksum generation steps in release workflows.
- Updated asset validation checks to exclude checksum files and focus solely on archive assets.
- Simplified workflow logic for packaging and uploading release artifacts.
2026-06-08 12:54:29 +08:00
Luis Pater 856dc81748 feat(safemode): support /management.html route in ExampleAPIKeyWarningHandler
- Added handling for `/management.html` in `ExampleAPIKeyWarningHandler`.
- Updated tests to validate correct behavior for the new route.
2026-06-08 12:41:28 +08:00
Luis Pater 6f38e8488a docs: add RunAPI sponsorship details to README files
- Updated `README.md`, `README_JA.md`, and `README_CN.md` with information about RunAPI as a sponsor.
- Included descriptions of RunAPI's features, benefits, and discounts.
- Added `runapi.png` asset to the project.
2026-06-08 12:25:53 +08:00
Luis Pater d55f215c63 chore(build): include ca-certificates in Docker image for improved HTTPS support 2026-06-08 12:15:30 +08:00
Luis Pater 69d937a8d3 chore(build): add Linux-specific release workflows and update release notes handling
- Introduced `build-linux-glibc` and `build-linux-no-plugin` workflows for creating Linux release assets with and without plugin support.
- Enhanced release workflow with dynamic update of release notes for Linux assets.
- Improved checksum generation and validation for Linux binaries.
- Updated workflow matrix for better platform coverage and asset handling.
2026-06-08 12:04:43 +08:00
Luis Pater ec672446d1 feat(translator): implement signature delta handling and enhance chunk processing in Gemini and Antigravity translators
- Added support for processing `signature-only` chunks without opening empty text blocks.
- Refactored chunk handling logic to include `signature_delta` events for improved fidelity.
- Unified logic for emitting final message states, including `message_delta` and `message_stop`, to ensure consistent behavior across different scenarios.
- Enhanced caching mechanism for thought signatures.
2026-06-08 11:30:17 +08:00
Luis Pater d9a0c9bdc7 chore(build): migrate from Alpine to Debian and update build dependencies
- Updated `Dockerfile` base images from `golang:1.26-alpine` and `alpine:3.23` to `golang:1.26-bookworm` and `debian:bookworm`.
- Replaced `apk` with `apt-get` for dependency installation.
- Added `buildvcs=false` flag to Go build command for enhanced reproducibility.
2026-06-08 11:03:46 +08:00
Luis Pater 365415c87a fix(translator): add fallback for system_instruction key in Gemini request parsing
- Added fallback to handle cases where `system_instruction.parts` is absent by checking for `systemInstruction.parts`.
2026-06-08 08:10:41 +08:00
Luis Pater c989cdd9d7 feat(plugin): add Codex Service Tier request normalizer plugin
- Introduced a Go-based plugin `codex-service-tier` for normalizing requests to Codex.
- Added functionality to set `service_tier` to `priority` for `gpt-5.5` requests when `fast` mode is enabled.
- Enhanced plugin capabilities with lifecycle configuration and request transformation support.
- Updated documentation with configuration examples and usage instructions in multiple languages.
2026-06-07 06:57:19 +08:00
Luis Pater 4f55eccae2 chore(build): refactor FreeBSD build process and optimize workflows
- Removed redundant `vm_arch` matrix configuration.
- Replaced manual FreeBSD VM setup with `go-cross/cgo-actions` for cross-compilation.
- Improved caching for Go modules and build artifacts.
- Simplified metadata generation and environment variable handling.
- Streamlined binary packaging and archive creation steps.
2026-06-07 05:51:32 +08:00
Luis Pater 37df0b8b98 chore(build): update release workflow to include repository reference and fix exit code handling
- Added `GH_REPO` environment variable for repository reference in the workflow.
- Changed exit condition when no release archives are found to avoid workflow failure.
2026-06-07 05:33:10 +08:00
Luis Pater 6d9014b61f chore(build): enhance release workflow with automated asset handling and checksum generation
- Added `prepare-release` job for creating/updating GitHub releases.
- Automated asset checksum generation for hosted and FreeBSD builds.
- Introduced release asset uploads, including archives and checksums.
- Refactored release process to include final checksum publishing.
2026-06-07 05:27:44 +08:00
Luis Pater 43c121464e chore(build): add custom runners and improve Go module handling in FreeBSD release workflow 2026-06-07 05:14:30 +08:00
Luis Pater 4567fd1b06 chore(build): add custom runners and improve Go module handling in FreeBSD release workflow 2026-06-07 05:05:10 +08:00
Luis Pater c75fb2c814 chore(build): add caching for Go dependencies and FreeBSD-specific artifacts in release workflow 2026-06-07 04:53:55 +08:00
Luis Pater 3dedf47839 chore(build): set additional environment variables for FreeBSD builds in release workflow 2026-06-07 04:41:55 +08:00
Luis Pater 9ee64935fb chore(build): remove goreleaser configuration and refactor release workflow
- Deleted `.goreleaser.yml` configuration and migrated functionality to GitHub Actions workflows.
- Replaced `goreleaser` with matrix-based build and archiving process for improved flexibility.
- Enhanced platform and architecture-specific builds, including FreeBSD support and custom runners.
- Streamlined artifact upload, checksum generation, and release publishing.
2026-06-07 04:36:19 +08:00
Luis Pater bc58c21673 chore(build): update dependencies, enhance cross-compilation, and refactor workflows
- Updated `golang.org/x/sys` to v0.38.0 in `go.mod` and replaced `syscall` with `windows` package for memory allocation in `loader_windows.go`.
- Improved cross-compilation in `.goreleaser.yml` using Zig-based toolchains for better platform support.
- Changed GitHub Actions workflow to use macOS runners and added Zig toolchain setup.
2026-06-07 04:13:15 +08:00
Luis Pater 0ed85bb88b feat(pluginhost): refactor and enhance plugin system with new execution and thinking capabilities
- Removed `examples/plugin/main.go` and `internal/pluginhost/loader_plugin.go` after migrating to a more modular system.
- Introduced `streamBridge` in `internal/pluginhost/stream_bridge.go` for efficient stream handling and communication.
- Added examples of `thinking` plugins written in both Rust and Go under `examples/plugin/thinking`.
- Enhanced test coverage for plugin host system changes, including stream chunk translation and thinking logic.
- Improved API compatibility and ensured backward-compatible upgrades for plugin execution.
2026-06-07 03:20:04 +08:00
Luis Pater 3abfc83d96 Merge branch 'dynamic' into dev
# Conflicts:
#	internal/cmd/run.go
2026-06-06 18:41:13 +08:00
Luis Pater d625caddd9 feat(pluginhost): add capabilities for command-line flag handling and plugin execution
- Implemented command-line flag registration and execution for plugins with priority-based conflict resolution.
- Enabled plugin-owned command-line flag execution and persistence of plugin-auth data.
- Added new `Host` methods to support command-line capabilities, including flag normalization, validation, and execution state management.
- Introduced unit tests to ensure coverage for command-line plugin functionality, including auth data persistence.
- Updated configs to normalize plugins during initialization.
2026-06-06 18:35:17 +08:00
Luis Pater fca12a2630 Merge pull request #3735 from router-for-me/safemode
feat(safemode): implement example API key warning server and related functionality
2026-06-06 13:31:37 +08:00
hkfires bc38b68902 feat(safemode): implement example API key warning server and related functionality 2026-06-06 11:42:21 +08:00
Luis Pater 5753d1a089 feat(logging): enable file-backed request/response sources for enhanced API logging
- Introduced support for file-backed logging of API requests and responses to handle large payloads efficiently.
- Refactored `attachWebsocketLogSources` to `attachRequestLogSources` for broader request and response handling.
- Added new methods for appending request/response data to file-backed sources and updated existing logging workflows for compatibility.
- Improved cleanup and merge logic for file-backed sources during request processing.
- Updated tests to cover newly introduced file-backed logging functionality.
2026-06-05 01:48:05 +08:00
Luis Pater 387c783b32 Merge pull request #3649 from intcua/fix/xai-empty-tools-orphan-tool-choice
fix(executor/xai): drop orphaned tool_choice when Claude tools array is empty
2026-06-04 13:11:23 +08:00
Luis Pater 90d46e7749 docs: remove outdated Amp CLI and related tool references
- Removed sections on Amp CLI integration and related management tools from all READMEs (`README.md`, `README_JA.md`, and `README_CN.md`).
- Updated project descriptions for relevance and focus.
2026-06-04 12:58:50 +08:00
Luis Pater bebdaa4d65 Merge pull request #3702 from Villoh/docs/add-tunnel-agent
docs: add Tunnel Agent to community projects
2026-06-04 12:48:11 +08:00
Luis Pater fd30944830 feat(auth): add error event publishing and Redis queue integration
- Introduced `publishErrorEvent` in `Manager` to publish error events to Redis.
- Implemented error event structure to capture authentication errors with detailed metadata.
- Added test cases for error event publishing, subscription, and Redis protocol handling.
- Enhanced error and usage queue handling with `SubscribeErrors` and `EnqueueError`.

Closes: #3701
2026-06-04 00:53:43 +08:00
Mikel Villotaandgemini-code-assist[bot] 46a152a21b docs: use 智能体 for Agent in Chinese translation
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-06-03 18:48:40 +02:00
Villoh 1074507a2f docs: add Tunnel Agent to community projects 2026-06-03 18:34:56 +02:00
Luis Pater 55440f0a39 feat(auth): add runtime auth removal and unscheduling logic
- Introduced `Manager.Remove` to delete runtime auth and unschedule associated tasks.
- Updated handler logic to directly remove auth instead of marking as disabled.
- Added tests to validate removal, unscheduling, and runtime state handling.
- Added a test to validate `skipPersist` behavior during registration.
- Enhanced `Remove` test to verify auto-refresh loop state before and after removal.

Closes: #3690
2026-06-03 11:56:56 +08:00
Luis Pater 9c02454005 Merge pull request #3657 from catoncat/fix/responses-input-id-dedupe-orphaned-output
fix(openai): keep referenced tool call when deduping websocket input IDs
2026-06-03 11:22:00 +08:00
Luis Pater 1c9601ff32 Merge pull request #3689 from sususu98/pr/cloudflare-challenge-retry
fix(auth): retry and backoff cloudflare challenge 403 errors
2026-06-03 11:07:08 +08:00
sususu98 77061aad4b refactor(auth): simplify and narrow cloudflare challenge checks 2026-06-03 10:35:39 +08:00
sususu98andClaude Opus 4.8 45f58d4f91 fix(auth): retry and backoff cloudflare challenge 403 errors
Introduce Cloudflare challenge detection for 403 errors in the Auth
Manager. Apply a progressive rate-limiting cooldown ladder using the
existing BackoffLevel field instead of a hard 30-minute credentials
suspension. This ensures challenged requests fall through to subsequent
credentials and recover exponentially.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-03 10:28:43 +08:00
sususu98 7682accd95 Merge pull request #3688 from sususu98/fix-codex-replay-dev
fix(codex): avoid replaying orphan tool calls
2026-06-03 09:59:44 +08:00
sususu98 17af089189 fix(codex): avoid replaying orphan tool calls 2026-06-03 09:52:17 +08:00
Luis Pater 35ab084fc3 refactor(runtime): enhance NewUtlsHTTPClient with context-based RoundTripper
- Updated `NewUtlsHTTPClient` to support context-aware RoundTrippers for protected hosts (e.g., Cloudflare bypass).
- Replaced `anthropicHosts` with `utlsProtectedHosts` to generalize host handling logic.
- Added unit test to validate context-based RoundTripper behavior.
- Replaced `NewProxyAwareHTTPClient` with `NewUtlsHTTPClient` in relevant executors for improved TLS fingerprinting.

Closes: #3680
2026-06-03 06:58:26 +08:00
Luis Pater 0e3c809ceb fix(codex): handle non-empty reasoning and content items, add test for trailing empty messages
Closes: #3683
2026-06-03 06:28:51 +08:00
Luis Pater 28c7f41cba docs(readme): update project descriptions and add Panopticon link
- Updated links and descriptions for `CPA-Manager-Plus`, replacing outdated `CPA-Manager` references.
- Added `Panopticon`, a multi-agent orchestration tool, to the project list.
2026-06-02 19:42:51 +08:00
Luis Pater d710248407 Merge pull request #3676 from eltmon/add-panopticon-to-users
docs: add Panopticon to "Who is with us?"
2026-06-02 19:35:57 +08:00
Luis Pater 02d0d92a8e Merge pull request #3677 from sususu98/codex/home-auth-loop-upstream-dev
Fix Home auth refresh retry handling
2026-06-02 19:30:14 +08:00
Luis Pater 8306391f91 Merge pull request #3667 from sususu98/feat/codex-reasoning-replay-cache-upstream-dev
feat(codex): cache reasoning replay items
2026-06-02 19:28:55 +08:00
sususu98 4abd59ce1b Merge pull request #3679 from sususu98/codex/system-role-to-user-upstream-dev
fix(translator): normalize message-level system roles for Gemini
2026-06-02 16:56:27 +08:00
sususu98 68282c4aa7 fix(translator): normalize message-level system roles for Gemini 2026-06-02 16:48:58 +08:00