v1.2.1 - International Login Choices and Compatibility Fixes
International login choices and compatibility fixes
Changes
- Separate international logins: choose International WorkBuddy or International CodeBuddy in the WebUI. CLI login keeps
--site intlfor WorkBuddy and adds--site intl-codebuddyfor CodeBuddy. The latter useswww.codebuddy.aiand the official CLI authentication platform. Existing domestic login and automatic backend routing are unchanged. - Optional tool descriptions: enable
--keep-tool-metadata,CODEBUDDY2API_KEEP_TOOL_METADATA=true, or the WebUI setting to retain supported tool descriptions and parameter-schemadescription/titleannotations across Chat, Responses and Messages, including both Responses projection modes. The default stays off; desensitization, compaction, retry limits and request-size budgets remain in effect. - Local OAuth compatibility: when GET/HEAD requests omit both Origin and Fetch Metadata, accept a strictly same-origin Referer while still requiring the OAuth polling CSRF token. Explicit origins and fetch-site decisions remain authoritative.
- Startup-only CSRF opt-out:
--admin-csrf false/CODEBUDDY2API_ADMIN_CSRF=falsecan disable management Origin/CSRF checks for trusted local deployments. Protection remains on by default; API-key authentication, session validity, OAuth task ownership and dangerous-operation confirmation are not disabled. Do not disable this protection for an exposed deployment. - Accurate streaming audit outcomes: a disconnect arriving after a complete response no longer marks it as cancelled. Actual interrupted requests remain cancelled, and upstream error responses remain errors.
Community contributions
- Thanks to @Good-design-999 for PR #7, fixing completed-stream cancellation accounting.
- Thanks also for the tool-description proposal and observations in issue #8, implemented with cross-protocol coverage in PR #9.
Upgrade
Back up the full auth/ directory and existing .env before upgrading. Keep credentials and both SQLite databases in the same writable data directory. Preserve your API key and saved model bindings; all existing /v1/* client URLs remain unchanged.
The new login option and compatibility controls require an updated application build. Environment changes in Docker require recreating the container, not just docker compose restart. An unset tool-metadata environment variable leaves the WebUI option editable; explicit CLI/environment values still override saved settings.
docker pull ghcr.io/maiphucgiang/codebuddy2api:1.2.1For published-image Compose deployments, update CODEBUDDY2API_IMAGE in your existing .env, then run docker compose pull and docker compose up -d --no-build. For source builds, rebuild before recreating the service.
Distribution
codebuddy2api-1.2.1.tar.gz contains the source and prebuilt web/dist assets, with SHA256SUMS for verification. Native deployment still requires the documented Python dependencies, but does not need a frontend build. Credentials, runtime databases, .env and dependency directories are excluded.
Validation
- All 33 Python regression scripts, 28 frontend tests, and five isolated browser scenarios passed locally, along with frontend formatting/lint/type checks and the production build.
- Release-commit CI and tag CI passed for commit
18d2674874852240e0ada17a26cc3cceaea20e6a. - CodeQL completed all three language analyses on the release commit; a separate main-branch alert query confirmed 0 open alerts.
- Native-deployment smoke checks verified version, bundled WebUI, management authentication, the Cookie/inference boundary, and actual OAuth state creation plus pending polling for both international products. No user authorization was completed on the official sites.
- The uploaded distribution and checksum file were downloaded back and verified; the extracted package passed version, imports, login mapping and bundled-frontend checks.
- Published image metadata confirms
linux/amd64andlinux/arm64, version1.2.1and the release revision. Tags1.2.1,1.2,1andlatestshare one manifest.
Documentation
Full changelog: v1.2.0...v1.2.1