Releases: Foxfishc/kiro.rs
Release list
v1.1.39
kiro-rs v1.1.39
本版新增 api_key 账号类型的批量导入,参考 Kiro-Go 的 api_key 实现融入。kiro-rs 此前已支持 api_key 账号的数据面(tokentype: API_KEY 头、跳过 profileArn 解析、单个添加),本版补齐批量导入这一缺口。
This release adds bulk import for
api_key-type accounts, ported from Kiro-Go's api_key implementation. kiro-rs already supported the api_key data plane (tokentype: API_KEYheader, skipping profileArn resolution, single-account add); this release fills the remaining gap — batch import.
中文更新日志
新增
- api_key 凭据批量导入 — 复用现有
/api/admin/credentials/import-token-json端点(不新增路由),新增 api_key 识别分支:无 refreshToken 时以kiroApiKey作为凭据落库,authMethod=api_key、不解析 profileArn、永不进入刷新路径。落库前实测调用 usage-limits 端点验活,无效 key(403)直接拒绝,不留死凭据。按完整kiroApiKey字符串去重。 - 三种 api_key 导入输入格式 — 导入弹窗同时支持:①纯文本每行一个 API key(非 JSON 输入自动按换行拆分,
#开头为注释);②camelCase JSON 数组[{"kiroApiKey":"...","region":"..."}];③CLIProxyAPI 导出格式(snake_casekiro_api_key/auth_method/api_region等,通过 serde alias 兼容),并自动跳过type非kiro的条目。
修复
- 导入校验放宽以支持 api_key — 导入项有效性判定从「必须含 refreshToken」放宽为「含 refreshToken 或 kiroApiKey」,无效提示同步更新。
TokenJsonItem/NestedCredentials补齐 snake_case 别名 — 为 refreshToken/clientId/clientSecret/authMethod/apiRegion/profileArn/tokenEndpoint/issuerUrl 等字段补充#[serde(alias)],使 CLIProxyAPI 的 snake_case 导出可被直接解析。
English Changelog
Added
- Bulk import of api_key credentials — reuses the existing
/api/admin/credentials/import-token-jsonendpoint (no new route) with a new api_key branch: when there's no refreshToken, thekiroApiKeyis stored as the credential withauthMethod=api_key, profileArn resolution skipped, and it never enters the refresh path. Before persisting, the key is validated live against the usage-limits endpoint — an invalid key (403) is rejected outright, so no dead credentials are stored. Dedup is by fullkiroApiKeystring. - Three api_key import input formats — the import dialog accepts: (1) plain text, one API key per line (non-JSON input is split on newlines;
#starts a comment); (2) a camelCase JSON array[{"kiroApiKey":"...","region":"..."}]; (3) CLIProxyAPI export format (snake_casekiro_api_key/auth_method/api_region, handled via serde aliases), automatically skipping entries whosetypeis notkiro.
Fixed
- Relaxed import validation for api_key — an import item is now considered valid if it has a refreshToken or a kiroApiKey (previously refreshToken was mandatory); the invalid-item message was updated accordingly.
- Added snake_case aliases to
TokenJsonItem/NestedCredentials—#[serde(alias)]on refreshToken/clientId/clientSecret/authMethod/apiRegion/profileArn/tokenEndpoint/issuerUrl so CLIProxyAPI's snake_case export parses directly.
v1.1.38
kiro-rs v1.1.38
本版聚焦企业与外部身份提供方(IdP)账号接入:新增 Kiro SSO 浏览器登录、AWS IAM Identity Center 直连登录、外部 IdP(Azure AD)登录与刷新全链路,修复企业租户账号全线 403 的 profileArn 问题;同时新增凭据批量导出,并修复 Azure AD 凭据导入被误判重复的 bug。
This release focuses on enterprise & external Identity Provider (IdP) account onboarding: adds Kiro SSO browser login, direct AWS IAM Identity Center login, and the full external-IdP (Azure AD) login + refresh pipeline; fixes the profileArn issue that caused enterprise-tenant accounts to get blanket 403s; adds bulk credential export; and fixes Azure AD credentials being wrongly rejected as duplicates on import.
中文更新日志
新增 — 外部 IdP(Azure AD / 企业 Azure 租户)登录
- 托管门户浏览器登录流程:经
app.kiro.dev/signin门户以 PKCE 授权码流程联合登录;门户识别到外部 IdP 邮箱后重定向携带 IdP 描述符(issuer/client_id/scopes),本地再驱动第二段 OIDC 授权码 + PKCE 流程,在 IdP token 端点换取面向 CodeWhisperer 的 access token。这是企业 Azure 租户账号登录 Kiro 的唯一方式。 - OIDC 端点发现:请求
/.well-known/openid-configuration解析授权/令牌端点,发现请求禁止跟随重定向并做白名单校验。 - SSRF / 开放重定向防护:IdP issuer 与端点必须为 https、非 IP,命中已知企业 IdP 域后缀(
.microsoftonline.com/.us/.cn、.awsapps.com),前导点锚定子域边界。
新增 — 企业 IdC(AWS IAM Identity Center)登录
- IdC 直连登录(不经门户):
RegisterClient动态注册 public client → 浏览器授权 →/token以授权码 + PKCE 换取。 - 回环重定向固定
http://127.0.0.1:3128:AWS SSO OIDC 强制 public client 使用 loopback IP,三处 redirect_uri 完全一致。 - 手动回调兜底:远程服务器无 SSH 隧道时,可把浏览器地址栏完整回调 URL 粘回,服务端解析 code+state 后完成换取。
新增 — SSO 登录会话管理与前端对话框
- Start / Poll / Cancel 会话式登录 API(
/auth/kiro-sso/*、/auth/kiro-idc/*)。 - 前端登录对话框:社交/企业 Azure 与 IAM Identity Center 双模式、自动开浏览器 + 轮询、手动粘贴回调兜底、云部署 SSH 隧道命令提示。
- 登录后自动验活:无可用 profile 或被拒则回滚删除,避免留下永久 403 死凭证。
新增 — 凭据批量导出
- 新增
POST /api/admin/credentials/export,导出为可无损再导入的 KAM 嵌套 JSON({"ids":[...]},空则导出全部)。 - Admin UI 工具栏新增「导出全部」「导出所选」,文件按
kiro-accounts-YYYY-MM-DD.json命名。
修复 — Token 刷新增强
- 新增外部 IdP token 刷新(走 IdP token 端点、public client、透传 scopes、端点白名单校验、兼容不返回新 refresh token)。
- 刷新路由新增
external_idp分支;新增标准 OAuth2 响应结构体。 - 修复设备指纹漂移:缺失 machineId 时改为随机生成固定 UUID 并持久化(不再用每次刷新都变的 refreshToken 派生)。
修复 — profileArn 解析(企业/外部 IdP 账号 403)
- 修复对所有 SSO OIDC 凭据无条件剥离 profileArn 导致企业账号全线 403。
- 外部 IdP 请求必带
TokenType: EXTERNAL_IDP头(否则 profile 列表为空)。 - external_idp 账号 profileArn 惰性跨 region 解析(
ListAvailableProfiles),可用KIRO_PROFILE_REGIONS覆盖,24h 冷却抑制反复探测。 - IdC profileArn 三态判定(Resolved / NoProfile / Unavailable),不再套用会导致跨租户 403 的兜底 ARN。
修复 — 凭据导入
- 修复 Azure AD 凭据被误判「凭证已存在」:去重从「前 32 字符前缀」改为完整 refreshToken 比对(同租户 Azure AD refreshToken 有很长公共前缀)。
- 多文件导入容错:单文件失败不再丢弃全部,跨文件按 refreshToken 去重,完成后汇总成功/失败。
- 兼容 external_idp harvest bundle 导入(
token块内直接带 clientId/tokenEndpoint/issuerUrl/scopes、无 clientRegistration)。
English Changelog
Added — External IdP (Azure AD / enterprise Azure tenant) login
- Hosted-portal browser login: federated PKCE authorization-code flow via the
app.kiro.dev/signinportal; when the portal detects an external-IdP email it redirects with an IdP descriptor (issuer / client_id / scopes), then a second local OIDC auth-code + PKCE flow exchanges an access token for CodeWhisperer at the IdP token endpoint. This is the only way to log in enterprise Azure-tenant accounts. - OIDC endpoint discovery: fetches
/.well-known/openid-configurationfor the authorization/token endpoints; discovery requests never follow redirects and are allowlist-validated. - SSRF / open-redirect protection: IdP issuer and endpoints must be https, non-IP, and match known enterprise-IdP domain suffixes (
.microsoftonline.com/.us/.cn,.awsapps.com), with a leading dot anchoring the subdomain boundary.
Added — Enterprise IdC (AWS IAM Identity Center) login
- Direct IdC login (no portal):
RegisterClientdynamically registers a public client → browser authorize →/tokenexchange with authorization code + PKCE. - Loopback redirect fixed at
http://127.0.0.1:3128: AWS SSO OIDC forces public clients to use a loopback IP; the redirect_uri is identical across register / authorize / token. - Manual callback fallback: on a remote server without an SSH tunnel, paste the full callback URL from the browser address bar; the server parses code+state and completes the exchange.
Added — SSO login session management & frontend dialog
- Session-based Start / Poll / Cancel login APIs (
/auth/kiro-sso/*,/auth/kiro-idc/*). - Frontend login dialog: dual mode (Social/Enterprise Azure and IAM Identity Center), auto-open browser + polling, manual callback-paste fallback, and an SSH-tunnel command hint for cloud deployments.
- Post-login liveness check: rolls back and deletes the credential if no usable profile / rejected, so no permanently-403 dead credentials are left behind.
Added — Bulk credential export
- New
POST /api/admin/credentials/exportreturns losslessly re-importable KAM nested JSON ({"ids":[...]}, empty = export all). - Admin UI toolbar gains "Export all" / "Export selected"; downloads are named
kiro-accounts-YYYY-MM-DD.json.
Fixed — Token refresh
- Added external-IdP token refresh (via the IdP token endpoint, public client, passing through scopes, endpoint allowlist-validated, tolerant of IdPs that don't return a new refresh token).
- Refresh routing gains an
external_idpbranch; added a standard OAuth2 response struct. - Fixed device-fingerprint drift: when machineId is missing it now generates and persists a stable random UUID (instead of deriving from the refreshToken, which changes on every refresh).
Fixed — profileArn resolution (enterprise/external-IdP 403s)
- Fixed blanket 403s for enterprise accounts caused by unconditionally stripping profileArn from all SSO OIDC credentials.
- External-IdP requests now always carry the
TokenType: EXTERNAL_IDPheader (otherwise the profile list comes back empty). - Lazy cross-region profileArn resolution for external_idp accounts (
ListAvailableProfiles), overridable viaKIRO_PROFILE_REGIONS, with a 24h cooldown to suppress repeated probing. - Three-state IdC profileArn resolution (Resolved / NoProfile / Unavailable); no longer applies a fallback ARN that caused cross-tenant 403s.
Fixed — Credential import
- Fixed Azure AD credentials wrongly rejected as "already exists": dedup changed from a 32-char prefix match to a full refreshToken comparison (same-tenant Azure AD refreshTokens share a long common prefix).
- Multi-file import tolerance: one bad file no longer discards all; cross-file dedup by refreshToken; success/failure summarized on completion.
- Compatible with external_idp harvest-bundle import (clientId/tokenEndpoint/issuerUrl/scopes directly inside the
tokenblock, no clientRegistration).
v1.1.37
v1.1.37 — 2026-05-29
🇬🇧 English
Fixed
- Multi-account 429 storms gave up after only the first 3 credentials — The per-request retry budget was hard-capped at
min(credentials × 2, MAX_TOTAL_RETRIES=3), so even with 10 or 50 configured accounts a request hitting 429s would only bounce between the first 3 credentials and never traverse the rest. A newcompute_max_retries(total, available)floors the retry count at the number of available credentials (every usable account gets at least one attempt), keeps the per-credential budget of 2 rounds, and replaces the old hard cap with a runaway-guard ceilingABSOLUTE_MAX_TOTAL_RETRIES=64that only bounds inflation and never pushes the count below the available count.
Added
- Cross-request short cooldown for 429s (stop re-hitting an already-limited credential) — A new
classify_429_cooldownis wired into both the streaming and MCP 429 branches. Ordinary rate-limits and account-level "suspicious activity" throttles (which arrive withreason: nulland none of the traditional rate-limit wording, and were previously never cooled) now place a fixed-duration short cooldown on the credential, soacquire_contextcan skip known-limited accounts with zero round-trips and, when every account is limited, the token manager's all-cooling fast path bails immediately with aRetry-After.INSUFFICIENT_MODEL_CAPACITY(region capacity, unrelated to the account) switches credentials without cooling. The cooldown usesRetry-Afterwhen present, otherwise a default window, always clamped to[60, 300]s, and is always written with an explicit duration viaset_credential_cooldown_with_duration— never through thedefault_durationpath — to avoid the Round 8 exponential 60→90→135s snowball.
🇨🇳 中文
修复
- 多账户 429 风暴下单次请求只重试前 3 个凭据就放弃 — 单次请求的重试预算此前被固定为
min(凭据数 × 2, MAX_TOTAL_RETRIES=3),导致即便配置了 10 或 50 个账户,遇到 429 也只在前 3 个凭据之间打转、无法遍历其余可用号。新增compute_max_retries(total, available):以可用凭据数为遍历下限(每个可用账号至少被尝试一轮),保留每凭据 2 轮的常规预算,并把原来的硬上限改为仅防失控的绝对天花板ABSOLUTE_MAX_TOTAL_RETRIES=64(只约束膨胀,绝不会把次数压到可用数以下)。
新增
- 429 跨请求短冷却(不再反复撞同一个已被限流的凭据) — 新增
classify_429_cooldown,在流式与 MCP 两个 429 分支统一接入。普通限速以及账户级 “suspicious activity” 临时限制(其响应reason: null、不含传统 rate-limit 字样,此前完全不会被冷却)现在会给该凭据打固定时长短冷却:后续acquire_context可零往返直接跳过已知被限流的账号;当所有账号都被限流时,由token_manager的 all-cooling 快路径带Retry-After立即 bail。INSUFFICIENT_MODEL_CAPACITY(region 容量不足,与具体账号无关)只切号、不冷却。冷却时长在有Retry-After时优先采用、否则用默认窗口,统一 clamp 到[60, 300]s,并始终通过set_credential_cooldown_with_duration以显式时长写入——绝不走default_duration路径——以规避 Round 8 的 60→90→135s 指数雪球。
涉及文件 / Files touched: src/kiro/provider.rs
完整变更日志 / Full changelog: CHANGELOG.md
v1.1.36
v1.1.36 — 2026-05-29
🇬🇧 English
Fixed
- Repaired Admin UI light/dark theme — Tailwind v4 no longer reads the
darkMode: 'class'setting intailwind.config.js, sodark:utilities silently fell back to the OSprefers-color-schemeand desynced from the.darkclass driven by the toggle button. Operational cards (credentials, etc.) were forced to stay light in dark mode with cramped, low-contrast text. Nowsrc/index.cssdeclares@custom-variant dark (&:where(.dark, .dark *))sodark:variants truly follow the.darkclass. The light/dark palette was reworked (dark base sits below cards for elevation, muted text brightened for contrast), and the credential card and inner panels were migrated from hardcodedslate-*/whiteto theme tokens (bg-card/bg-muted/text-foreground/text-muted-foreground/border-border).
Added
- Theme persistence + anti-FOUC — Theme preference is saved to
localStorage(keyadminTheme, falling back to the system preference when unset), and an inline script inindex.htmlapplies the.darkclass before first paint to eliminate the light/dark flash on reload. The Dashboard toggle persists the choice.
🇨🇳 中文
修复
- 修复 Admin UI 日/夜间模式失效与配色 — Tailwind v4 不再自动读取
tailwind.config.js的darkMode: 'class',导致dark:工具类回退到系统prefers-color-scheme而与顶部切换按钮的.darkclass 脱节,凭据等操作卡片在夜间模式下被强制留白、文字挤压难读。现在在src/index.css显式声明@custom-variant dark (&:where(.dark, .dark *))让 dark 变体真正跟随.darkclass;同时重做深/浅主题调色板(深色基底低于卡片以制造层次、muted 文字提亮保证对比度),将凭据卡片及内部面板由硬编码slate-*/white迁移到主题 token (bg-card/bg-muted/text-foreground/text-muted-foreground/border-border)。
新增
- 主题持久化与防首屏闪烁 — 主题偏好保存到
localStorage(keyadminTheme,未设置时跟随系统),并在index.html首屏渲染前内联应用.darkclass,消除刷新时的亮/暗闪烁;Dashboard 切换按钮同步持久化。
涉及文件 / Files touched: admin-ui/src/index.css, admin-ui/tailwind.config.js, admin-ui/src/components/credential-card.tsx, admin-ui/src/components/credential-detail-dialog.tsx, admin-ui/src/components/dashboard.tsx, admin-ui/src/lib/storage.ts, admin-ui/index.html
完整变更日志 / Full changelog: CHANGELOG.md
v1.1.35
v1.1.35 — 2026-05-29
Added
- 新增 Opus 4.8 模型别名支持 — 在
/v1/models中暴露claude-opus-4-8及其thinking/agentic变体,并在 Anthropic→Kiro 模型映射中补齐claude-opus-4-8/claude-opus-4.8解析;claude-opus-4-8-thinking与 4.7 一致使用上游要求的adaptivethinking +output_config.effort = high,Admin UI 可用模型对话框同步展示 4.8 三个条目 (src/anthropic/handlers.rs,src/anthropic/converter.rs,admin-ui/src/components/available-models-dialog.tsx,README.md)
完整变更日志见仓库 CHANGELOG.md。
v1.1.34
v1.1.34
这版主要补齐本轮管理后台可读性修复,并修正 Opus 4.7 thinking 兼容逻辑。
Admin UI
- 夜间模式下凭据卡片恢复深色背景,不再强制浅色卡片。
- 提升凭据卡片、余额面板、Overages 信息、Endpoint 编辑区、单独测活结果区在暗色主题下的文字对比度。
- 保留余额进度条与用量数字展示,避免暗色环境下灰字难读。
余额 / Overages 展示
- 修正凭据详情页 Overages 额度展示逻辑:后端返回的
usageLimit按有效总额度处理,避免把overageCap再重复相加。 - 缓存余额与实时余额分支统一按“总额度 / 基础额度 / 超额额度”计算。
- 优先使用后端返回的
remaining,减少前端重复推导造成的显示偏差。
Thinking 模型兼容
- 修正 Claude Opus 4.7 thinking 请求改写:Opus 4.7 使用
thinking.type = "adaptive"与output_config.effort = "high",避免使用上游不支持的enabled + budget_tokens手动预算模式。 - Opus 4.6 / Sonnet 4.6 继续保持兼容的
enabled + budget行为。 - 增加相关回归测试,覆盖 Opus 4.7 thinking 后缀、客户端 thinking 参数与默认 high budget。
验证
npm run buildcargo buildcargo checkcargo test thinking -- --nocapture:30 passed
下载
- Linux x86_64:
kiro-rs-linux-x86_64.tar.gz - macOS Apple Silicon / aarch64:
kiro-rs-macos-aarch64.tar.gz - Windows x86_64:
kiro-rs-windows-x86_64.zip - Source:
kiro-rs-v1.1.34-source.tar.gz
Docker
镜像由 GitHub Actions 构建并推送到 Docker Hub:
docker pull foxfishs/kiro-rs:v1.1.34
docker pull foxfishs/kiro-rs:latestFull Changelog: v1.1.33...v1.1.34
v1.1.33
v1.1.33 / 版本 v1.1.33
This is the first full public release of this fork. It includes all functional changes made in this fork, plus Docker Hub publishing, prebuilt binaries, and updated documentation.
这是本 fork 的第一个完整公开版本。更新日志包含本 fork 已完成的全部功能改动,并包含 Docker Hub 镜像发布、预编译二进制和文档更新。
中文更新日志
下载内容
- Linux x86_64:
kiro-rs-linux-x86_64.tar.gz - macOS Apple Silicon / aarch64:
kiro-rs-macos-aarch64.tar.gz - Windows x86_64:
kiro-rs-windows-x86_64.zip - 源代码包:
kiro-rs-v1.1.33-source.tar.gz
macOS 当前提供 Apple Silicon / aarch64 版本。Intel Mac 用户可暂时从源码编译。
Docker 镜像
本版本开始发布到 Docker Hub:
docker pull foxfishs/kiro-rs:v1.1.33
docker pull foxfishs/kiro-rs:latest运行示例:
docker run -d \
--name kiro-rs \
-p 8990:8990 \
-v $(pwd)/config:/app/config \
foxfishs/kiro-rs:v1.1.33请确保
config/config.json和config/credentials.json已准备好,并且不要把真实 API key、refresh token 或 credentials 提交到仓库。
Admin UI / 管理后台
- 修复使用
admin-api-key进入后台后白屏的问题。 - 新增/完善凭据管理界面的余额、额度、状态展示。
- 优化 Overages 状态展示:已开启时按钮显示为“关闭 Overages”,避免状态与操作含义混淆。
- 凭据卡片余额展示改为使用有效额度,能够正确显示基础额度 + overage cap 后的可用情况。
- 移除每个凭据详情里重复展示的“可用模型”列表。
- 新增全局“可用模型”入口,集中展示当前后端
/v1/models支持的固定模型列表。 - 可用模型列表说明已改为全局能力说明,不再暗示每个凭据有不同模型能力。
Overages / 额度超限支持
- 修复 overage 状态同步语义:上游缺失
overageEnabled/overageConfiguration字段时,不再错误视为关闭 overage。 - 只有上游明确返回
false时,才覆盖本地已开启的 overage 状态。 - Admin 单个余额查询会优先使用上游明确 overage 状态;当上游未返回时,回退到 token manager / 凭据持久化状态。
- 启用 overage 时,余额和使用率按“基础额度 + overage cap”计算有效额度。
- 余额缓存新增并保留:
usage_limitoverage_enabledoverage_cap
/api/admin/credentials/balances/cached返回缓存中的真实额度、使用率、overage 状态和 overage cap。- 周期刷新、异步刷新和初始化余额时都会同步完整 overage 缓存。
- 自动禁用凭据时按有效剩余额度判断,避免开启 overage 后被错误禁用。
Claude / Anthropic API 兼容性
- 修复
claude-opus-4-7-thinking的 thinking 转换逻辑,使其与claude-opus-4-6-thinking一样使用:thinking.type = "adaptive"output_config.effort = "high"
- 客户端只要传入
thinking参数,即使模型名不带-thinking后缀,也会启用 Kiro 上游 adaptive thinking。 - thinking 强度优先级:
- 模型名
-thinking-*后缀 - 客户端
thinking.budget_tokens - 默认 high:
24576
- 模型名
- 修复无效或小于等于 0 的
budget_tokens:自动回退到 high 档位。 - 增加相关回归测试,覆盖 opus 4.6 / 4.7 thinking 以及客户端 thinking 参数场景。
模型列表
- 验证并统一
/v1/models返回的全局模型列表。 - Admin UI 改为展示全局可用模型,不再在每个凭据详情中重复显示固定模型列表。
- 明确当前模型列表是服务级固定能力,不按单个 credential 动态变化。
余额缓存与凭据状态
- 后台余额刷新会写入完整缓存信息,而不只保存 remaining balance。
- 缓存恢复、缓存初始化、缓存插入和缓存返回路径均补齐新增字段。
- 修复 cached balances 路径丢失 overage 语义导致的展示不一致问题。
- 修复余额刷新和自动禁用之间的有效额度判断不一致问题。
Release / CI / Docker 发布
- 恢复 GitHub Release 自动构建 workflow。
v*tag 自动构建并上传:- Linux x86_64 二进制
- macOS aarch64 二进制
- Windows x86_64 二进制
- 源代码包
- 新增/修复 Docker Hub 自动构建与推送 workflow。
- Docker 镜像命名空间改为:
foxfishs/kiro-rs。 - Docker workflow 使用标准 GitHub Actions secrets 名称:
DOCKERHUB_USERNAMEDOCKERHUB_TOKEN
- README 中的 Docker pull、buildx、docker-compose 示例已全部更新为
foxfishs/kiro-rs。 - 版本号更新为
v1.1.33,并同步更新二进制下载教程和 Docker 示例。
文档
- README 新增 fork 功能说明。
- README 新增预编译二进制使用教程:
- Linux 下载、解压、运行
- macOS Apple Silicon 下载、解压、运行和 quarantine 处理
- Windows PowerShell 下载、解压、运行
- README 新增 Docker Hub 镜像使用说明。
- README 更新 Docker 镜像名和版本示例。
验证
本版本相关改动已通过以下本地验证:
cargo fmt --check
cargo check
cargo build
cargo test remaining_balance -- --nocapture
cargo test usage_limits -- --nocapture
cargo test anthropic::handlers::tests -- --nocapture
cd admin-ui && npm run buildEnglish Changelog
Downloads
- Linux x86_64:
kiro-rs-linux-x86_64.tar.gz - macOS Apple Silicon / aarch64:
kiro-rs-macos-aarch64.tar.gz - Windows x86_64:
kiro-rs-windows-x86_64.zip - Source archive:
kiro-rs-v1.1.33-source.tar.gz
The macOS binary currently targets Apple Silicon / aarch64. Intel Mac users should build from source for now.
Docker Image
This release publishes the Docker image to Docker Hub:
docker pull foxfishs/kiro-rs:v1.1.33
docker pull foxfishs/kiro-rs:latestRun example:
docker run -d \
--name kiro-rs \
-p 8990:8990 \
-v $(pwd)/config:/app/config \
foxfishs/kiro-rs:v1.1.33Make sure
config/config.jsonandconfig/credentials.jsonare prepared. Never commit real API keys, refresh tokens, or credentials to the repository.
Admin UI
- Fixed the blank screen issue after entering
admin-api-keyin the admin frontend. - Improved credential balance, quota, and status display in the admin dashboard.
- Improved Overages state display: when enabled, the action button now shows “Disable Overages” / “关闭 Overages”.
- Credential cards now use the effective quota when showing balances, including base quota plus overage cap.
- Removed the duplicated “Available Models” section from each credential detail dialog.
- Added a global “Available Models” entry to show the service-level fixed model list returned by
/v1/models. - Clarified that available models are global service capabilities, not per-credential dynamic capabilities.
Overages Support
- Fixed overage synchronization semantics: missing
overageEnabled/overageConfigurationfields from upstream no longer mean overage is disabled. - Local enabled overage state is overwritten only when upstream explicitly returns
false. - Admin single-balance queries now prefer explicitly reported upstream overage state; if missing, they fall back to token manager / persisted credential state.
- When overage is enabled, effective quota and usage percentage are calculated with base quota plus overage cap.
- Balance cache now stores and preserves:
usage_limitoverage_enabledoverage_cap
/api/admin/credentials/balances/cachednow returns real cached quota, usage percentage, overage state, and overage cap.- Periodic refresh, asynchronous refresh, and initial balance refresh now all write complete overage-aware cache data.
- Auto-disabling credentials now uses effective remaining quota, preventing credentials with enabled overage from being disabled incorrectly.
Claude / Anthropic API Compatibility
- Fixed
claude-opus-4-7-thinkingconversion so it follows the same adaptive thinking behavior asclaude-opus-4-6-thinking:thinking.type = "adaptive"output_config.effort = "high"
- Client-provided
thinkingnow enables upstream Kiro adaptive thinking even when the model name does not include a-thinkingsuffix. - Thinking strength priority is now:
- model-name
-thinking-*suffix - client
thinking.budget_tokens - default high:
24576
- model-name
- Invalid or non-positive
budget_tokensnow falls back to high effort automatically. - Added regression tests covering opus 4.6 / 4.7 thinking behavior and client-provided thinking parameters.
Model List
- Verified and unified the global model list returned by
/v1/models. - Admin UI now shows available models once globally instead of repeating the same fixed list inside every credential detail dialog.
- Clarified that the current model list is a service-level fixed capability list and does not vary by individual credential.
Balance Cache and Credential State
- Background balance refresh now writes complete cached balance information, not only remaining balance.
- Cache restore, initialization, insertion, and response construction paths now include the newly added fields.
- Fixed inconsistent UI and API behavior caused by cached balance responses losing overage semantics.
- Fixed inconsistent effective-quota logic between balance refresh and auto-disable decisions.
Release / CI / Docker Publishing
- Restored the GitHub Release binary workflow.
v*tags now automatically build and upload:- Linux x86_64 binary
- macOS aarch64 binary
- Windows x86_64 binary
- source archive
- Added/fixed the Docker Hub build and push workflow.
- Changed the Docker image namespace to
foxfishs/kiro-rs. - Docker workflow uses standard GitHub Actions secret names:
DOCKERHUB_USERNAMEDOCKERHUB_TOKEN
- README Docker pull, buildx, and docker-compose examples now use
foxfishs/kiro-rs. - Bumped the project version to
v1.1.33and updated binary download instructions and Docker examples.
Documentation
- Added README documentation for fork-specific features.
- Added prebuilt binary usage guides for:
- Linux download, extract, and run
- macOS Apple Silicon download, extract, run, and quarantine handling
- Windows PowerShell download, extract, and run
- Added Docker Hub image usage documentation.
- Updated Docker image names and version examples throughout the README.
Verification
The changes in this release were verified locally with:
cargo fmt --check
cargo check
cargo build
cargo test remaining_balance -- --nocapture
cargo test usage_limits -- --nocapture
cargo test anthropic::handlers::tests -- --nocapture
cd admin-ui && npm run buildRelease URL: https://github.com/Foxfishc/kiro.rs/releases/tag/v1.1.33
Full Changelog: v1.1.32...v1.1.33