Kiro.rs 0.6.1
主题:缓存命中/创建 token 精确计量 + 流式对话 profileArn 占位符 403 修复 + 后台前端组件统一。上一版把流式端点改成始终发送 profileArn(含 BuilderID 占位符),但占位符指向调用者无权访问的 profile,仍会被上游以 403 "User is not authorized to make this call" 拒绝;这一版改为只发送真实 / Social 共享 ARN。同时把中转层缓存计量从粗略估算重写为按前缀链匹配 + 互斥口径分摊的精确计量,请求日志新增 token 列;后台前端把原生确认框 / 下拉框统一为风格一致的组件。
🛠 修复 — 流式对话 profileArn 占位符 403
- 占位符 ARN 不再发送:
KiroCredentials::streaming_profile_arn()对 BuilderID 占位符(及未填充 profileArn 的 BuilderID 账号)返回None。占位符指向调用者无权访问的 profile,发送会触发403 "User is not authorized to make this call";该端点本就不强制此字段。Enterprise / IdC 的真实 ARN 已由resolve_profile_arn_for回填,与 Social 共享 ARN 一并原样发送。
✨ 改进 — 缓存命中 / 创建 token 精确计量
- 前缀链匹配替代锚点:缓存命中模拟改用「最长公共前缀」链式匹配,消除
tool_result(role=user)导致的「倒数第二个 user」锚点漂移,跨轮对话命中稳定。 - 会话隔离:按
metadata的 user / session(缺失时回退 client key id)派生隔离种子,不同会话不会互相串缓存。 - 互斥口径分摊:
input/cache_creation/cache_read按比例分摊,保证三者互斥且总和等于 total,不再重复计入被缓存覆盖的前缀。 - token 估算与签名解耦:哈希用签名、计量用原文,去除签名噪声对 token 数的污染。
- 图片 token 估算:按
(宽 × 高) / 750估算(长边封顶 1568px),图片块的媒体类型 + 数据纳入缓存哈希。 - 请求日志记录 token:
traces.db新增 input / output / cache_creation / cache_read 列(幂等迁移),日志接口返回并合计 totalTokens。 - 模块
prompt_cache更名为cache_metering,持久化文件相应更名。
✨ 改进 — 后台前端组件统一
- 统一二次确认弹窗:新增
useConfirm/ConfirmProvider,全站确认操作改用风格一致的弹窗替代原生confirm()。 - 重写下拉框:以
DropdownMenu(modal={false})重写Select,替换原生select与 radixSelect。后者 Content 硬编码disableOutsidePointerEvents,经DismissableLayer给body上pointer-events锁,嵌套在 Dialog 内同时关闭时卸载顺序竞态会把 body 误留为none导致整页不可点;non-modal 分支不触碰 body 锁,从源头规避。下拉默认值改为从 children 静态推导,修复菜单未打开时默认值显示为空。
Docker image:
zyphrzero/kiro-rs:0.6.1
zyphrzero/kiro-rs:latest
Release assets include SHA256SUMS.txt for checksum verification.