migrate #1233: feat: add official Termux (aarch64) build to release workflow#481
migrate #1233: feat: add official Termux (aarch64) build to release workflow#481KooshaPari wants to merge 2847 commits intomainfrom
Conversation
Merge recover-all branch into main
Conflict markers remained in main.go from earlier merge resolutions. Restored from commit d67c0a9 (clean baseline with 0 conflict markers). go build ./... now passes with exit 0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…idation Consolidate config types across internal/pkg/sdk layers: - Update sdk/config to alias pkg/llmproxy/config (canonical location) - Move SDKConfig/StreamingConfig definitions to pkg/llmproxy/config - Update all internal/auth packages to use pkg/llmproxy/config - Fix sdk/cliproxy and examples to use consistent config types Import cleanup: - Replace internal/translator imports with pkg/llmproxy/translator - Replace internal/runtime imports with pkg/llmproxy/runtime - Replace internal/api imports with pkg/llmproxy/api - Replace internal/wsrelay imports with pkg/llmproxy/wsrelay - Update all auth, executor, and handler imports Add missing CloseExecutionSession methods: - MyExecutor in examples/custom-provider/main.go - EchoExecutor in examples/http-request/main.go - shouldCloak helper function in internal/runtime/executor/claude_executor.go Remove duplicate type definitions in kiro translator. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… kiro websearch dedup, geminicli import paths - sdk/config now aliases pkg/llmproxy/config.Config (was internal/config.Config) - Removed duplicate McpRequest/GetWebSearchDescription/ParseSearchResults from kiro_websearch_handler.go - Fixed geminicli import paths: pkg/llmproxy/runtime/geminicli -> internal/runtime/geminicli - Added CloseExecutionSession() no-op to EchoExecutor and MyExecutor (examples) - Added shouldCloak() to internal/runtime/executor/cloak_utils.go - Fixed bad //go:build skip lines with literal \n in 3 pkg/llmproxy/config test files - Fixed sdkconfig.SDKConfig -> config.SDKConfig in reconcile.go - Removed unused sdkconfig import from reconcile.go go build ./... now exits 0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The convertChatCompletionsStreamChunkToCompletions function was including usage information in all stream chunks, but should drop usage when a chunk has a finish_reason (terminal chunk). Only preserve usage for usage-only chunks (empty choices array). Fixes TestConvertChatCompletionsStreamChunkToCompletions_DropsUsageOnTerminalFinishChunk by tracking hasFinishReason flag and conditionally including usage based on: 1. NOT being a terminal finish chunk, OR 2. Being a usage-only chunk (no choices) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Removes ~23K LOC of duplicate executor code - Server builds successfully
- Add api/openapi.yaml with core endpoints - Add .github/workflows/generate-sdks.yaml for Python/TypeScript SDK generation - Enables SDK generation from OpenAPI spec
- Add cliproxy/client.py - Python client for API - Add cliproxy/__init__.py - SDK init - Generated from OpenAPI spec
Root cause: Multiple config type aliases (sdk/config.SDKConfig vs pkg/llmproxy/config.SDKConfig vs internal/config.SDKConfig) were treated as different types by Go despite aliasing to the same underlying type. Similarly, ErrorMessage types in different packages were duplicated. Changes: 1. Fixed sdk/config/config.go to import from internal/config instead of pkg/llmproxy/config, establishing correct import hierarchy 2. Updated all util functions (SetProxy, NewAnthropicHttpClient) to import from internal/config for canonical type identity 3. Made pkg/llmproxy/config re-export sdk/config types as aliases 4. Made pkg/llmproxy/interfaces/ErrorMessage an alias to internal version 5. Made pkg/llmproxy/access/config_access/provider.go accept sdk/config.SDKConfig 6. Added necessary type aliases and methods to pkg/llmproxy/config.go Result: All config and interface types now have unified identity throughout the codebase. Type mismatches in SetProxy, NewAnthropicHttpClient, configaccess.Register, and interfaces.ErrorMessage are resolved. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove duplicate type definitions in kiro_websearch_handler.go (McpRequest, McpParams, etc already in kiro_websearch.go) - Define SDKConfig as struct in pkg/llmproxy/config instead of alias to avoid circular import - Add Wave Batch 7 (CPB-0910..CPB-0920) to troubleshooting.md - Clean up merge conflict markers in troubleshooting.md
This commit fixes the following test failures:
1. pkg/llmproxy/registry [setup failed]
- Fixed syntax error in registry_coverage_test.go (missing comma in assertion)
- Removed unused time import
2. pkg/llmproxy/api::TestServer_StartupSmokeEndpoints_UserAgentVariants
- Fixed test expectations to accept different response formats from different handlers
- OpenAI handler returns {object: "list", data: [...]}
- Claude handler returns {data: [...], has_more: false, first_id: "...", last_id: "..."}
- Tests now check for data field presence instead of rigid format expectations
3. pkg/llmproxy/auth/copilot::TestDeviceFlowClient_PollForToken
- Test was already passing; no changes needed
4. pkg/llmproxy/config::TestSanitizeOAuthModelAlias_AllowsSameAliasForDifferentNames
- Fixed deduplication logic to dedupe by (name, alias) pair instead of alias only
- Allows same alias to map to different models within a channel
- Example: both model-a and model-b can use shared-alias
5. pkg/llmproxy/config::TestSanitizeOAuthModelAlias_InjectsDefaultKiroWhenEmpty
- Expanded defaultGitHubCopilotAliases() to include both Opus and Sonnet models
- Updated test expectations to verify both aliases are present
Root causes:
- Syntax errors in test files
- Incorrect test expectations for handler response formats
- Deduplication logic considering only alias field, not name+alias pair
- Missing default model aliases
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- API: handle different response formats from OpenAI vs Claude handlers - Config: fix OAuth model alias deduplication to key by (name,alias) pair - Config: expand default GitHub Copilot aliases to include Sonnet model - Config: update test expectations for new default aliases Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add SDK types to pkg/llmproxy/config - Remove sdk_config.go (was causing type conflicts) - Add air.toml for hot reload development - Build succeeds with unified types
fix: layer 2 — unify internal and pkg/llmproxy config types
fix: layer 1 — add code scanning suppressions for acceptable patterns
This adds a native Termux build job to the release process. - Uses `termux/termux-docker:aarch64` for native compilation. - Builds a static binary with `CGO_ENABLED=0`. - Automatically uploads `cli-proxy-api-termux-aarch64.tar.gz` to the GitHub Release. - Aligned with GoReleaser's versioning and build metadata.
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Superseded by layered CI-fix PR flow. Continuing in ci/fix branch PR #492. |
…1233-feat-termux-support ci: fix workflow required-check names for feature/koosh-migrate-1233-feat-termux-support
Migrated from router-for-me#1233 via PR migration lane.