Skip to content

feat: 输入框思考等级旁上下文占用进度环 - #197

Merged
devcxl merged 2 commits into
masterfrom
feat/context-usage-ring
Aug 10, 2026
Merged

feat: 输入框思考等级旁上下文占用进度环#197
devcxl merged 2 commits into
masterfrom
feat/context-usage-ring

Conversation

@devcxl

@devcxl devcxl commented Aug 10, 2026

Copy link
Copy Markdown
Owner

上下文占用进度环(context-usage-ring)

变更内容

  • 新组件 ContextUsageRing.tsx:内联 SVG 20px 圆形进度环 + 导出纯函数 contextUsagePercent(0-100 clamp、limit<=0 防御)
  • 隐藏条件:used<=0 || limit<=0 不渲染;占用率 ≥80% 进度弧 text-warning 变色(data-state="warning|normal"
  • hover title/aria-label上下文占用:45,200 / 128,000formatNum 千位分隔,zh/en 双语)
  • MessageInput 新增可选 props tokenUsage / contextWindowTokens;上限解析 activeModel.limit.context ?? contextWindowTokens ?? 128000;渲染于 reasoning-select 之后、micButton 之前
  • App.tsx inputProps 透传两行;i18n 新增 chat.contextUsage.tooltip

验证

  • 新增测试 12 项(ContextUsageRing 7 + MessageInput 集成 4 + ChatContext 重置回归 1)
  • 全量 1056 passed(原 1044 + 新增 12)
  • typecheck / lint(0 error)/ build:chrome 通过

Closes #196

devcxl added 2 commits August 10, 2026 18:43
- 新组件 ContextUsageRing:内联 SVG 20px 环形(SIZE=20/STROKE=2.5/RADIUS=8.75),
  进度弧 stroke-dashoffset=CIRC·(1-percent/100)+rotate(-90);
  导出纯函数 contextUsagePercent(0-100 整数 clamp + limit<=0 防御)
- 隐藏条件 used<=0||limit<=0;占用率≥80% data-state=warning + text-warning,
  否则 normal + text-primary;title/aria-label 复用 formatNum 千位分隔
- MessageInput 新增可选 props tokenUsage/contextWindowTokens,上限解析链
  activeModel.limit.context ?? contextWindowTokens ?? 128000,
  渲染位置:hasConfigRow 之后、micButton 之前
- App inputProps 透传 tokenUsage 与 agentSettings.contextWindowTokens
- i18n:chat.contextUsage.tooltip(zh/en)
- 测试:ContextUsageRing 6 项行为 + MessageInput 4 项集成 + ChatContext
  会话切换 tokenUsage 重置回归
- RTL rerender 替换整棵渲染树导致 useI18n Provider 丢失,wrappedRender 的 rerender 重新包裹 I18nProvider
- SVG 元素 className 为 SVGAnimatedString,断言改用 getAttribute('class')
@devcxl

devcxl commented Aug 10, 2026

Copy link
Copy Markdown
Owner Author

双轴审查通过(APPROVE,由独立审查 agent 产出):

规范轴:无 MAJOR。1 MINOR(contextUsagePercent 对 NaN 的防御性改进,数据链路实际不会产生 NaN,登记不阻塞)+ 2 NIT(cn 单字符串调用、测试几何常量 double-entry 设计,均无需修改)。

规格轴:Task #196 全部 8 条 AC 满足(逐条有测试证据);技术方案 §6 Testing Decisions 的 Observable Result 全覆盖;零改动清单(ChatContext.tsx / types.ts / ConversationSidebar.tsx / useAgent.ts)无违规。

验证:全量 1056 tests passed,eslint 0 error,typecheck + build:chrome 通过,CI(test/lint)绿。

@devcxl
devcxl merged commit dbb82b8 into master Aug 10, 2026
2 checks passed
@devcxl
devcxl deleted the feat/context-usage-ring branch August 10, 2026 11:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 上下文占用进度环 (context-usage-ring)

1 participant