Skip to content

feat(web-shell): add model-specific reasoning controls - #8675

Closed
callmeYe wants to merge 45 commits into
mainfrom
codex/webshell-qwen38-max-reasoning-options
Closed

feat(web-shell): add model-specific reasoning controls#8675
callmeYe wants to merge 45 commits into
mainfrom
codex/webshell-qwen38-max-reasoning-options

Conversation

@callmeYe

@callmeYe callmeYe commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

What this PR does

This PR adds a built-in model reasoning-controls registry and uses it end to end across Core, ACP, daemon, SDK, and WebShell. Registrations independently declare optional Thinking and Effort controls, supported effort tiers, and defaults. The first exact registration is qwen3.8-max, with Thinking enabled by default and low, medium, and xhigh effort options defaulting to xhigh.

WebShell now renders capability-driven reasoning controls in the existing model popover. The current model remains in the primary Options menu, while the searchable model list opens as a compact right-side flyout. Preferences are stored per model, restored after switching away and back, and synchronized from live ACP config-option updates without clearing the target model state during model-switch completion.

The PR contains no local reasoning mock scenario, mock-daemon extension, or development-only model catalog data.

Why it's needed

Models increasingly expose different reasoning controls and effort subsets. Encoding those differences directly in clients would duplicate model-ID checks and make future additions fragile. A shared server-side registry keeps clients capability-driven, preserves older-daemon fallback behavior, and lets future models expose Thinking-only, Effort-only, or combined controls without another UI-specific model branch.

Reviewer Test Plan

How to verify

  1. Select the exact stable model qwen3.8-max. Open the model chip and confirm Thinking is enabled and Extra High is selected by default.
  2. Select Medium or Low and confirm the chip updates while the popover remains open. Turn Thinking off and confirm the chip shows Thinking Off while the selected effort stays visible but disabled; turn it back on and confirm the previous effort is restored.
  3. Open the Model row and confirm the searchable model list appears as a right-side secondary menu with compact non-overlapping spacing and aligned bottom edges.
  4. Switch from qwen3.8-max to another model and back. Confirm Thinking and Effort controls remain visible and the model-specific preference is restored.
  5. Confirm qwen3.8-max-preview, aliases, snapshots, unregistered models, and daemons without session_reasoning_control retain the existing model-only picker.

Evidence (Before & After)

After — capability-driven Thinking and Effort controls:

qwen38-reasoning-options

After — compact right-side searchable model flyout:

qwen38-reasoning-model-flyout

Tested on

OS Status
🍏 macOS
🪟 Windows N/A
🐧 Linux N/A

Environment (optional)

Node.js 22, local WebShell development runtime, dark theme.

Focused verification: Core 620 tests passed; CLI/daemon 1,039 tests passed; WebUI mapper/action 66 tests passed; ChatEditor 39 tests passed; WebShell and WebUI typecheck/build passed; focused ESLint and Prettier checks passed.

Risk & Scope

  • Main risk or tradeoff: Reasoning state crosses several protocol layers, so ordering between ACP config-option updates and model-switch completion must preserve the snapshot for the target model.
  • Not validated / out of scope: Context-window controls, dynamic runtime registration, and a model-specific TUI effort menu are not included. Windows and Linux were not manually tested.
  • Breaking changes / migration notes: None. Added settings and protocol metadata are optional; older daemons and unregistered models keep the existing behavior.

Linked Issues

N/A

中文说明

本 PR 做了什么

本 PR 新增内置的模型推理控制能力注册表,并贯通 Core、ACP、daemon、SDK 与 WebShell。注册项可以独立声明 Thinking、Effort、支持的 Effort 档位和默认值。首个精确注册模型为 qwen3.8-max:Thinking 默认开启,Effort 支持 lowmediumxhigh,默认 xhigh

WebShell 在现有模型弹层中按能力动态展示推理设置。当前模型保留在一级 Options 菜单,搜索模型列表通过右侧紧凑二级菜单打开。偏好按模型独立保存,切换到其他模型再切回时恢复,并从 ACP config-option 更新同步;模型切换完成事件不会再清空目标模型已经同步的推理状态。

本 PR 不包含本地 reasoning mock 场景、mock daemon 扩展或仅用于开发的模型目录数据。

为什么需要

不同模型会逐步提供不同的推理开关和 Effort 子集。如果由客户端直接判断模型 ID,会造成重复分支并增加后续扩展成本。统一的服务端能力注册表让客户端完全按能力渲染,保留旧 daemon 的降级行为,并支持未来模型只提供 Thinking、只提供 Effort,或同时提供两者。

Reviewer 测试计划

验证方式

  1. 选择精确稳定版 qwen3.8-max,打开模型 chip,确认 Thinking 默认开启、Effort 默认选中 Extra High。
  2. 选择 Medium 或 Low,确认弹层保持打开且 chip 文案同步更新。关闭 Thinking,确认 chip 显示 Thinking Off,当前 Effort 保持选中但禁用;重新开启后恢复此前档位。
  3. 打开 Model 行,确认搜索模型列表以右侧二级菜单展示,两层边框不重叠、间距紧凑且底边对齐。
  4. qwen3.8-max 切换到其他模型再切回,确认 Thinking、Effort 仍可见且恢复该模型的独立偏好。
  5. 确认 qwen3.8-max-preview、别名、snapshot、未注册模型,以及未声明 session_reasoning_control 的旧 daemon 仍使用原模型选择器。

效果证据

After — 按能力展示 Thinking 与 Effort:

同上,见英文 Evidence 中的 Thinking / Effort 截图。

After — 右侧紧凑可搜索模型二级菜单:

同上,见英文 Evidence 中的右侧模型二级菜单截图。

测试环境

OS 状态
🍏 macOS
🪟 Windows N/A
🐧 Linux N/A

Node.js 22,本地 WebShell 开发运行时,深色主题。

Focused 验证:Core 620 个测试通过;CLI/daemon 1,039 个测试通过;WebUI mapper/action 66 个测试通过;ChatEditor 39 个测试通过;WebShell 与 WebUI typecheck/build 通过;focused ESLint 与 Prettier 检查通过。

风险与范围

  • 主要风险或权衡:推理状态跨越多个协议层,ACP config-option 更新与模型切换完成的事件顺序必须保留目标模型的状态快照。
  • 未验证或不在范围内:不包含 Context 选项、运行时动态注册和按模型动态变化的 TUI Effort 菜单;未在 Windows 与 Linux 上手工测试。
  • Breaking changes / 迁移说明:无。新增设置与协议元数据均为可选;旧 daemon 与未注册模型保持现有行为。

关联 Issue

N/A

@qwen-code-ci-bot

qwen-code-ci-bot commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

🚫 Qwen Triage was cancelledview run. The run was cancelled before finishing. Check for a newer run before re-running.

🚫 Qwen Triage 已取消 —— 查看运行。运行未完成即被取消。重跑前请先确认是否有更新的运行。

@callmeYe

callmeYe commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

E2E Test Report

Environment: macOS, Node.js 22, local WebShell development runtime, dark theme.

Result: ✅ Passed.

  • Verified exact stable qwen3.8-max exposes Thinking and low / medium / xhigh, defaulting to Extra High.
  • Verified Medium/Low changes update the chip without closing the popover; Thinking Off disables but preserves the selected effort; re-enabling restores it.
  • Verified qwen3.8-max → another model → qwen3.8-max restores the registered controls and per-model state.
  • Verified the searchable model flyout opens to the right, has a measured 4.609 px non-overlapping gap, and aligns its bottom edge within 0.422 px.
  • Verified preview and old-daemon capability fallback paths keep the model-only picker.
  • Effect screenshots are attached in the PR description.

The dedicated local verification harness and its model catalog were removed before submission and are not part of the PR file list.

@qwen-code-ci-bot

Copy link
Copy Markdown
Collaborator

Thanks for the PR — clear description and a design doc, which helps a lot for a cross-cutting change like this.

Moving on to code review. 🔍

中文说明

感谢贡献——描述清晰且附有设计文档,对这种跨模块改动帮助很大。

进入代码审查。🔍

Qwen Code · qwen3.8-max

Reviewed at ba86188b8d7cb7976a37c10fa97c792ef79e765f · re-run with @qwen-code /triage

@qwen-code-ci-bot

qwen-code-ci-bot commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

🖼️ web-shell visual preview

Rendered against a mock daemon (no real backend): the PR base vs this PR head 8cb1088. Only screenshots that changed are shown (flows below, if any, are head-only) — refreshes on every push.

Screenshots · before / after

ℹ️ No screenshot changed against the PR base — but this PR edits 6 render-shaping files:

  • packages/web-shell/client/App.tsx
  • packages/web-shell/client/components/ChatEditor.module.css
  • packages/web-shell/client/components/ChatEditor.tsx
  • packages/web-shell/client/components/ChatPane.tsx
  • packages/web-shell/client/i18n.tsx
  • packages/webui/src/daemon/session/DaemonSessionProvider.tsx

Either the change has no visual effect (logic, plumbing, a state the scenarios never reach), or no scenario renders this UI — in which case the preview cannot see it, and an empty result is a coverage gap rather than a clean bill of health. To make it visible, add a scenario to packages/web-shell/client/e2e/visuals/screenshots.spec.ts that seeds whatever state the UI is gated on; it then appears here as a head-only (NEW) capture.

Full-resolution recordings (.webm) are attached to the workflow run.

Qwen Code · web-shell visuals

@qwen-code-ci-bot

qwen-code-ci-bot commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

🩺 serve daemon A/B

Built the PR base vs this PR head 8cb1088, drove a fixed endpoint set against each, and diffed the JSON responses. Only fields that changed are shown.

capabilities

field PR base (before) this PR (after)
features[] "session_reasoning_control"

Qwen Code · serve A/B

@qwen-code-ci-bot

Copy link
Copy Markdown
Collaborator

Code review

My independent baseline for "add thinking/effort controls for qwen3.8-max in WebShell" would have been: advertise thinking/effort as ACP session config options from the agent, render whatever the session reports, persist a per-model preference, and gate the whole thing behind a daemon capability for old-daemon fallback. The PR does exactly that — and then adds three things on top, each with a defensible reason: a Core capability registry (so the daemon catalog can describe controls before a session exists), provider-side wire clamping for DashScope, and a per-model state isolation rework in Config.handleModelChange. The first two are small; the third is where the real risk lives.

No critical blockers found. The implementation is consistent with project conventions (kebab-case modules, collocated tests, defensive unknown-parsing mappers, bilingual i18n, design doc committed) and reuses existing primitives (clampReasoningEffort, normalizeReasoningEffort, getPersistScopeForModelSelection) instead of forking them. Specifics:

  • Config.handleModelChange reasoning isolation — the subtlest change in the PR: registered source models stop carrying the global /effort preference across switches, and registered targets get their resolved config copied on hot switches. Both directions and both switch paths (hot + full refresh) are covered by four new config tests. This is the area flagged in Stage 1 (fix(core): preserve disabled reasoning effort #7541/fix(core): harden Qwen 3.8 reasoning effort wire shape #8488/fix(core): resolve DashScope thinking-knob conflicts by family (#8488 round 2) #8536 history); the tests read as if the author knew that history.
  • Event-ordering hazard, handled and testedmodel_switched can land before or after the follow-up config_option_update; the mapper preserves in-flight reasoning when the session_reasoning_control capability is present, and acpAgent.setModel always emits the update after switching. Both orderings have mapper tests, and setModel clears local state so a stale map can't stick.
  • Defensive boundariesmapReasoningConfigOptions / mapReasoningControls parse untrusted daemon payloads field-by-field and only emit state when values are internally consistent (effort must be in its own options list). The settings schema, VS Code schema, and web-shell settings allowlist all move together.
  • Questions, not blockers: (1) registering defaults means qwen3.8-max sends reasoning_effort=xhigh + thinking on by default even with no user preference — intended wire default, or should the server-side default stay in charge until the user picks? (2) the chip label fallback (normalizedModelChipLabel) papers over an empty-label edge case; fine, but it's a symptom of the label composition getting busy. (3) dashscope.ts double-checks rawWireModel === 'qwen3.8-max' before the registry lookup that already keys on the exact id — redundant but harmless.
sequenceDiagram
    participant P1 as User (WebShell)
    participant P2 as WebUI session actions
    participant P3 as Daemon POST config-option
    participant P4 as ACP bridge
    participant P5 as QwenAgent
    participant P6 as Session
    participant P7 as Config + settings
    P1->>P2: select effort tier or toggle thinking
    P2->>P3: setConfigOption(configId, value)
    P3->>P4: setSessionConfigOption
    P4->>P5: setSessionConfigOption
    P5->>P6: setEffort or setThinking (validated against registry)
    P6->>P7: apply to live Config, persist model.reasoningPreferences
    P5-->>P2: response configOptions
    P6-->>P2: config_option_update event
    P2->>P1: chip updates (Model · Extra High / Thinking Off)
Loading

The model-switch path is the second key flow: setModel#syncReasoningSettingsForCurrentModel applies the target's persisted preference → sendConfigOptionsUpdate echoes the new model's options, and the web client either keeps that update (if it arrived before model_switched) or waits for it (if after).

Files changed (30 of 51 shown)
File What changed
docs/design/webshell-qwen38-max-reasoning-options.md Design doc — registry shape, ACP configOptions as source of truth, per-model persistence rules
packages/core/src/core/model-reasoning-controls.ts New registry — exact-id match, thinking/effort capabilities, defaults and normalization
packages/core/src/config/config.ts Remembers effort while thinking is off, adds setThinkingEnabled, isolates registered-model reasoning across model switches
packages/core/src/core/openaiContentGenerator/provider/dashscope.ts Clamps qwen3.8-max wire effort to the registered tiers
packages/core/src/index.ts Exports the new module
packages/cli/src/acp-integration/acpAgent.ts Advertises thinking/effort config options, handles the mutation, emits config_option_update after setModel, attaches reasoningControls to model _meta
packages/cli/src/acp-integration/session/Session.ts setThinking/setEffort with validation and persistence, syncs persisted preference on construct and after model switch
packages/cli/src/config/model-reasoning-preferences.ts New get/merge helpers for the per-model preference map
packages/cli/src/config/settingsSchema.ts Adds model.reasoningPreferences setting with JSON schema override
packages/cli/src/serve/capabilities.ts Registers session_reasoning_control capability
packages/cli/src/serve/routes/session.ts New POST /session/:id/config-option route
packages/cli/src/serve/acp-http/dispatch.ts Routes thinking/effort config ids through the bridge
packages/cli/src/serve/workspace-providers-status.ts Publishes per-model reasoningControls and modelConfigScope in the catalog
packages/cli/src/ui/commands/effort-command.ts /effort normalizes to the registered subset and persists per model
packages/cli/src/ui/hooks/use-effort-command.ts Same normalization on the effort-dialog path
packages/cli/src/utils/modelConfigUtils.ts Resolves registered-model reasoning from preferences, maps Thinking Off to reasoning false
packages/acp-bridge/src/bridge.ts Adds setSessionConfigOption with timeout and transport-close race
packages/acp-bridge/src/status.ts Serve types for reasoningControls and modelConfigScope
packages/sdk-typescript/src/daemon/DaemonClient.ts setSessionConfigOption client method
packages/sdk-typescript/src/daemon/types.ts DaemonModelReasoningControls and config-option result types
packages/web-shell/client/App.tsx Composer reasoning state merged from catalog and persisted prefs, pre-session settings write path, busy flags
packages/web-shell/client/components/ChatEditor.tsx Popover rework — Thinking switch, Effort rows, nested searchable model submenu, chip label with state suffix
packages/web-shell/client/components/ChatEditor.module.css Submenu and reasoning row styling
packages/web-shell/client/components/ChatPane.tsx Session-path wiring for setConfigOption
packages/web-shell/client/i18n.tsx EN and ZH strings for the new controls
packages/webui/src/daemon/session/actions.ts setConfigOption action, setModel clears or keeps reasoning state
packages/webui/src/daemon/session/mappers.ts Maps config_option_update and reasoningControls, preserves in-flight state across model_switched
packages/webui/src/daemon/session/types.ts DaemonReasoningState types
packages/vscode-ide-companion/schemas/settings.schema.json Schema for model.reasoningPreferences
…and 21 more files Mostly tests — registry, config switch paths, Session, acpAgent, effort command, mapper ordering, ChatEditor render

Testing — the PR's own CI at the reviewed commit

The ubuntu Test job is red, but the failure is not in the test suite — the job died at a pre-test gate: Run npm run check:voice-guard-syncnpm error Missing script: "check:voice-guard-sync". That script landed on main on 2026-08-06 (#8350), after this branch was cut; the PR does not touch package.json, so this is a stale-branch failure, not a code failure — the suite never started and no coverage artifacts were produced. The remedy is merging main into the branch. Because ubuntu gates the matrix, macOS/Windows tests are skippedthere is currently no green suite on this commit on any platform, and the in-progress web-shell jobs (visuals, Serve A/B, E2E smoke) had not completed at review time.

Run npm run check:voice-guard-sync
npm error Missing script: "check:voice-guard-sync"
##[error]Process completed with exit code 1.
Check Conclusion
Test (ubuntu-latest, Node 22.x) ❌ failure (stale-branch gate, suite never ran)
Post Coverage Comment (ubuntu-latest, 22.x) ❌ failure (downstream of the above)
Test (macos-latest, Node 22.x) ⏭️ skipped (gated on ubuntu)
Test (windows-latest, Node 22.x) ⏭️ skipped (gated on ubuntu)
Integration Tests (CLI, No Sandbox) ⏭️ skipped
Desktop Shell (ubuntu-22.04) ✅ success
Capture web-shell visuals (ubuntu-latest, Node 22.x) 🔄 in progress
Serve A/B (ubuntu-latest, Node 22.x) 🔄 in progress
web-shell E2E Smoke (ubuntu-latest, Node 22.x) 🔄 in progress

Not verified, explicitly: the unit suite on this commit (red gate above); the WebShell popover behavior in a real browser (unattended CI run — no live UI exercise here); the author's reported local test counts (Core 620, CLI/daemon 1,039, WebUI 66, ChatEditor 39) are the author's claim on macOS only, not independently re-run, and the PR body's Before/After screenshots are still unfilled placeholders.

Sandboxed verification would settle the parts static review cannot: @qwen-code /verify — that the config-option mutation and the config_option_update / model_switched ordering actually preserve per-model reasoning state end-to-end is a wire-level claim this PR's tests only mock, and this commit's CI never ran the suite; the WebShell popover surface itself (chip labels, submenu layout, disabled rows while thinking is off) needs a maintainer's eye since the screenshots were never pasted in.

中文说明

代码审查

我的独立基线方案(只读标题和动机时)大致是:agent 侧把 thinking/effort 作为 ACP session config option 暴露,UI 渲染会话上报的内容,按模型持久化偏好,并用 daemon 能力位兼容旧 daemon。PR 正是这么做的——另外加了三个各有理由的层:Core 能力注册表(让目录在会话建立前就能描述控件)、DashScope 线上档位钳制、以及 Config.handleModelChange 的按模型状态隔离。前两者很小;第三个是真正的风险所在。

未发现关键阻塞项。实现符合项目约定(kebab-case、同目录测试、对 unknown 负载的防御性 mapper、中英 i18n、设计文档入库),并复用了既有原语(clampReasoningEffort、normalizeReasoningEffort、getPersistScopeForModelSelection)。要点:

  • 模型切换的 reasoning 隔离是 PR 中最微妙的改动:已注册的源模型不再把全局 /effort 偏好带过切换,已注册的目标模型在热切换时直接复制解析后的配置。热切换与全量刷新两条路径、两个方向都有新增 config 测试覆盖。这正是 Stage 1 标记的历史多修补区域(fix(core): preserve disabled reasoning effort #7541/fix(core): harden Qwen 3.8 reasoning effort wire shape #8488/fix(core): resolve DashScope thinking-knob conflicts by family (#8488 round 2) #8536),测试写法显示作者了解这段历史。
  • 事件顺序风险已处理并有测试:model_switched 与 config_option_update 到达顺序不定;mapper 在具备 session_reasoning_control 能力时保留在途状态,acpAgent.setModel 切换后必然补发更新,两种顺序均有 mapper 测试。
  • 边界防御到位:mapper 逐字段解析不可信的 daemon 负载,只有取值自洽(effort 必须在自己的选项列表内)才产出状态;settings schema、VS Code schema、web-shell 白名单同步改动。
  • 问题(非阻塞):(1) 注册默认值意味着 qwen3.8-max 即使用户从未选择,也会默认带上 reasoning_effort=xhigh 且开启 thinking——这是预期的线上默认,还是应保留服务端默认?(2) chip 文案的空值兜底(normalizedModelChipLabel)说明标签拼装开始变复杂;(3) dashscope.ts 在注册表精确查找之外又做了一次 qwen3.8-max 字面判断,冗余但无害。

时序图见上文英文版:用户选择档位或开关 → WebUI action → daemon 路由 → ACP bridge → QwenAgent → Session(按注册表校验)→ Config 与持久化 → 响应与 config_option_update 事件回流更新 chip。模型切换是第二条关键链路:setModel → 同步目标模型的持久化偏好 → 补发 configOptions 更新,web 端按事件顺序保留或等待目标状态。

测试(以 PR 自身 CI 为证据)

ubuntu Test 任务红了,但失败不在测试套件——任务在测试前的门禁步骤挂掉:check:voice-guard-sync 脚本缺失。该脚本是 2026-08-06 由 #8350 进入 main 的,晚于本分支切出;PR 未触碰 package.json,属于分支过旧导致的失败而非代码问题——套件根本没有开始运行,也没有产出覆盖率产物。补救方式是把 main 合并进分支。由于 ubuntu 是矩阵门禁,macOS/Windows 测试为 skipped——当前 commit 在任何平台都没有绿色套件;web-shell 相关任务(visuals、Serve A/B、E2E smoke)在审查时仍在进行中。

明确未验证:本 commit 的单元测试(上述红色门禁);真实浏览器中的 WebShell 弹层行为(无人值守 CI,不做实机 UI 操作);作者自述的本地测试数字(Core 620、CLI/daemon 1,039、WebUI 66、ChatEditor 39)是作者在 macOS 上的单方陈述,未独立复核,且 PR 正文的 Before/After 截图仍是未填写的占位符。

沙箱验证可以补足静态审查看不到的部分:上文提到的 /verify 通道——config-option 变更与 config_option_update / model_switched 的顺序是否真的端到端保留了按模型的 reasoning 状态,是线上协议层面的断言,本 PR 的测试只是 mock,且本 commit 的 CI 根本没跑套件;WebShell 弹层界面本身(chip 文案、二级菜单布局、thinking 关闭时的禁用行)由于截图未贴出,需要维护者实际查看。

Qwen Code · qwen3.8-max

Reviewed at ba86188b8d7cb7976a37c10fa97c792ef79e765f · re-run with @qwen-code /triage

@qwen-code-ci-bot

Copy link
Copy Markdown
Collaborator

Confidence: 3/5 — clean static review and genuinely strong test coverage, but this is a 1,600-production-line cross-package core change, which policy holds at maintainer-awareness level, and the commit's CI is red — so a human takes it the rest of the way.

Stepping back: the direction is right and the problem is real — Qwen 3.8 effort support already exists at the wire, and users have no model-specific way to touch it; both this repo's changelog and the reference agent's point the same way. The implementation is better than my independent baseline: the capability registry is small and honestly scoped, the old-daemon fallback is preserved by a capability flag, and the event-ordering hazard that this design creates (config_option_update racing model_switched) is not just handled but tested in both orders. The 1,131 lines of tests target exactly the places that would burn later — config-switch reasoning carry-over, mapper ordering, tier normalization, popover keyboard navigation. If I were maintaining this in six months, I'd thank the author for the design doc and the ordering tests.

My reservations are about weight and evidence, not correctness. The PR spans seven packages for one registered model; the popover-into-flyout UX restructure was the natural seam to split, and the config.ts model-switch logic it reworks sits in the exact area this repo has repeatedly patched (#7541, #8488, #8536). The unanswered product question stands: registering defaults means every qwen3.8-max request carries reasoning_effort=xhigh with thinking on even when the user never chose anything. And the behavioural claims rest on the author's word — CI never ran the suite on this commit (stale-branch gate), and the Before/After screenshots in the PR body are still placeholders.

⏸️ Deferring to @wenshao (CODEOWNER for packages/core/) — needs a maintainer's call on:

  1. Scale policy: ~1,602 production lines across core/config/acp/sdk/webui/web-shell crosses the maintainer-awareness threshold for core-touching feat PRs, so no auto-approval regardless of review outcome.
  2. Red CI: Test (ubuntu-latest, Node 22.x) failed at the check:voice-guard-sync gate (script landed on main 2026-08-06 via feat(voice): support trusted private ASR base URLs #8350, after this branch was cut). Merging main into the branch should clear it and let the actual suite run.
  3. The defaults question above — wire-default xhigh + thinking-on for qwen3.8-max without user choice: intended, or should the server default hold?
  4. UI evidence: screenshots were never pasted in; @qwen-code /verify is available to settle the wire-level ordering claim if useful.

None of this reflects a defect found in the code — it's the gate doing its job on a large, core-touching PR with an unsettled CI state.

中文说明

置信度:3/5 —— 静态审查干净、测试覆盖扎实,但这是一次约 1,600 行生产代码的跨包核心改动,按策略属于需要维护者知情的级别,且当前 commit 的 CI 是红的——后续需要人来拍板。

退一步看:方向正确、问题真实——Qwen 3.8 的 effort 支持在线上链路已经存在,用户却没有按模型触达它的入口;本仓库与参考产品的 changelog 都指向同一方向。实现优于我的独立基线方案:能力注册表小而克制,旧 daemon 降级由能力位保留,该设计引入的事件顺序风险(config_option_update 与 model_switched 竞态)不仅处理了,还按两种顺序都有测试。1,131 行测试恰好打在将来会痛的位置——模型切换的 reasoning 保留、mapper 顺序、档位归一、弹层键盘导航。如果六个月后由我维护,我会感谢作者的设计文档和顺序测试。

我的保留意见在体量与证据,而非正确性。PR 为一个注册模型横跨七个包;弹层改二级菜单的 UX 重构本是天然的拆分点,而它重做的 config.ts 模型切换逻辑正是本仓库反复修补过的区域(#7541#8488#8536)。产品问题仍未回答:注册默认值意味着用户从未选择时,每个 qwen3.8-max 请求都会带上 reasoning_effort=xhigh 且默认开启 thinking。行为层面的断言目前只有作者单方陈述——CI 在本 commit 上根本没跑套件(分支过旧的门禁失败),PR 正文的 Before/After 截图也仍是占位符。

⏸️ 转交 @wenshao(packages/core/ 的 CODEOWNER)——需要维护者决定:

  1. 规模策略:约 1,602 行生产代码横跨 core/config/acp/sdk/webui/web-shell,超过触及 core 的 feat PR 的维护者知情阈值,因此无论审查结果如何都不自动批准。
  2. 红色 CI:Test (ubuntu-latest, Node 22.x) 在 check:voice-guard-sync 门禁失败(该脚本 2026-08-06 经 feat(voice): support trusted private ASR base URLs #8350 进入 main,晚于本分支切出)。把 main 合并进分支应能解除门禁,让真正的套件运行。
  3. 上面的默认值问题——用户未选择时 qwen3.8-max 线上默认 xhigh 且开启 thinking:是预期行为,还是应保留服务端默认?
  4. UI 证据:截图未贴出;如需要,可用 @qwen-code /verify 通道验证线上协议顺序断言。

以上均非代码缺陷——这是门禁在大型、触及核心且 CI 未定的 PR 上正常履职。

Qwen Code · qwen3.8-max

Reviewed at ba86188b8d7cb7976a37c10fa97c792ef79e765f · re-run with @qwen-code /triage

@callmeYe

callmeYe commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

CI failure root cause and fix:

  • The failed Test (ubuntu-latest, Node 22.x) job stopped at npm run check:voice-guard-sync because the PR head predated the script that the current base workflow invokes.
  • Synced the branch with latest main via a normal merge commit 6792c843e8e3e96e9524fb28c4baef3116fa27be (no force push, no feature-code workaround, no mock data added).
  • Verified locally: voice guard mirror check passed; Core 620 tests passed; CLI 1042 tests passed; WebUI 66 tests passed; WebShell 39 tests passed; production builds completed during npm ci.
  • The previous coverage-comment failure was secondary to the main Test job exiting before producing its coverage artifact.

A fresh CI run is now queued against the updated head.

@callmeYe

callmeYe commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

CI failure root cause and fix:\n\n- The failed job stopped at

@qwen-code/qwen-code@0.21.7 check:voice-guard-sync
node scripts/check-voice-guard-sync.js

Voice guard mirror check passed. because the PR head predated the script that the current base workflow invokes.\n- Synced the branch with latest via a normal merge commit (no force push, no feature-code workaround, no mock data added).\n- Verified locally: voice guard mirror check passed; Core 620 tests passed; CLI 1042 tests passed; WebUI 66 tests passed; WebShell 39 tests passed; production builds completed during

@qwen-code/qwen-code@0.21.7 postinstall
patch-package

patch-package 8.0.1
Applying patches...
ink@7.0.3 ✔

@qwen-code/qwen-code@0.21.7 prepare
node scripts/prepare.js

@qwen-code/qwen-code@0.21.7 build
cross-env NODE_OPTIONS="--max-old-space-size=3072" node scripts/build.js

@qwen-code/qwen-code@0.21.7 generate
node scripts/generate-git-commit-info.js

@qwen-code/qwen-code-core@0.21.7 build
node ../../scripts/build_package.js

Successfully copied files.

@qwen-code/web-templates@0.21.7 build
node build.mjs && tsc --build --clean && tsc

Building web-templates...
Building insight assets with Vite...
vite v5.4.21 building for production...
transforming...
✓ 8 modules transformed.
rendering chunks...
computing gzip size...
dist/main.css 17.77 kB │ gzip: 4.28 kB
dist/main.js 32.80 kB │ gzip: 9.07 kB
✓ built in 104ms
Reading generated files...
Successfully generated /Users/ethan/Projects/qwen-code/.qwen/worktrees/pr-8675/packages/web-templates/src/generated/insightTemplate.ts
Successfully built all web-templates.

@qwen-code/channel-base@0.21.7 build
tsc --build

@qwen-code/channel-telegram@0.21.7 build
tsc --build

@qwen-code/channel-weixin@0.21.7 build
tsc --build

@qwen-code/channel-dingtalk@0.21.7 build
tsc --build

@qwen-code/channel-wecom@0.21.7 build
tsc --build

@qwen-code/channel-feishu@0.21.7 build
tsc --build

@qwen-code/channel-qqbot@0.21.7 build
tsc --build

@qwen-code/channel-github@0.21.7 build
tsc --build

@qwen-code/channel-plugin-example@0.21.7 build
tsc --build

@qwen-code/audio-capture@0.21.7 build:ts
tsc --build

@qwen-code/acp-bridge@0.21.7 build
node ../../scripts/build_package.js

Successfully copied files.

@qwen-code/sdk@0.1.8 build
node scripts/build.js

Compiling input files...
Processing src/index.ts
Writing src/index.ts -> dist/index.d.ts
Checking generated files...
Done in 12.82s
Compiling input files...
Processing src/daemon/transcript.ts
Writing src/daemon/transcript.ts -> dist/daemon/transcript.d.ts
Checking generated files...
Done in 1.57s

@qwen-code/qwen-code@0.21.7 build
node ../../scripts/build_package.js

Successfully copied files.
Generated settings JSON Schema at: /Users/ethan/Projects/qwen-code/.qwen/worktrees/pr-8675/packages/vscode-ide-companion/schemas/settings.schema.json

@qwen-code/webui@0.21.7 build
vite build

vite v5.4.21 building for production...
transforming...
✓ 200 modules transformed.
rendering chunks...

[vite:dts] Start generate declaration files...
computing gzip size...
dist/styles.css 83.64 kB │ gzip: 15.56 kB
dist/toolNames-kewwpc1v.js 0.30 kB │ gzip: 0.23 kB │ map: 1.00 kB
dist/daemon-react-sdk.js 250.22 kB │ gzip: 44.40 kB │ map: 471.67 kB
dist/index.js 394.06 kB │ gzip: 98.74 kB │ map: 844.74 kB
[vite:dts] Start rollup declaration files...
Analysis will use the bundled TypeScript version 5.8.2
Analysis will use the bundled TypeScript version 5.8.2
[vite:dts] Declaration files built in 8512ms.

dist/styles.css 83.64 kB │ gzip: 15.56 kB
dist/toolNames-C9pS8yq9.cjs 0.33 kB │ gzip: 0.24 kB │ map: 1.00 kB
dist/daemon-react-sdk.cjs 251.71 kB │ gzip: 44.45 kB │ map: 473.46 kB
dist/index.cjs 403.51 kB │ gzip: 99.44 kB │ map: 849.86 kB
✓ built in 9.49s

@qwen-code/web-shell@0.21.7 build
vite build && vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json

vite v5.4.21 building for production...
transforming...
✓ 5482 modules transformed.
rendering chunks...
computing gzip size...
../dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff 4.42 kB
../dist/index.html 4.87 kB │ gzip: 2.33 kB
../dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 4.93 kB
../dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 5.21 kB
../dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 5.47 kB
../dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff 5.98 kB
../dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff 6.19 kB
../dist/assets/KaTeX_Size1-Regular-C195tn64.woff 6.50 kB
../dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 6.91 kB
../dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 6.91 kB
../dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf 7.59 kB
../dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff 7.66 kB
../dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff 7.72 kB
../dist/assets/default-aEtf0G7-.svg 8.90 kB │ gzip: 2.54 kB
../dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 9.64 kB
../dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 10.34 kB
../dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf 10.36 kB
../dist/assets/KaTeX_Script-Regular-D5yQViql.woff 10.59 kB
../dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 11.32 kB
../dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 11.35 kB
../dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf 11.51 kB
../dist/assets/queue-DWpnpFgW.svg 11.56 kB │ gzip: 2.39 kB
../dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 12.03 kB
../dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 12.22 kB
../dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf 12.23 kB
../dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff 12.32 kB
../dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf 12.34 kB
../dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf 12.37 kB
../dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff 13.21 kB
../dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff 13.30 kB
../dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 13.57 kB
../dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff 14.11 kB
../dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff 14.41 kB
../dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff 16.03 kB
../dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 16.40 kB
../dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 16.44 kB
../dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf 16.65 kB
../dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 16.78 kB
../dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 16.99 kB
../dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff 18.67 kB
../dist/assets/KaTeX_Math-Italic-DA0__PXp.woff 18.75 kB
../dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff 19.41 kB
../dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf 19.44 kB
../dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf 19.57 kB
../dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf 19.58 kB
../dist/assets/KaTeX_Main-Italic-BMLOBm91.woff 19.68 kB
../dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf 22.36 kB
../dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf 24.50 kB
../dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 25.32 kB
../dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 26.27 kB
../dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf 27.56 kB
../dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 28.08 kB
../dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff 29.91 kB
../dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff 30.77 kB
../dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf 31.20 kB
../dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf 31.31 kB
../dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf 32.97 kB
../dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff 33.52 kB
../dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf 33.58 kB
../dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf 51.34 kB
../dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf 53.58 kB
../dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf 63.63 kB
../dist/assets/index-wnwYDpup.css 456.15 kB │ gzip: 79.01 kB
../dist/assets/channel-CwIz8jnR.js 0.11 kB │ gzip: 0.13 kB
../dist/assets/init-Gi6I4Gst.js 0.15 kB │ gzip: 0.13 kB
../dist/assets/chunk-QZHKN3VN-C0Ml09MS.js 0.19 kB │ gzip: 0.16 kB
../dist/assets/chunk-55IACEB6-DUOTdUci.js 0.24 kB │ gzip: 0.21 kB
../dist/assets/chunk-4BX2VUAB-cF_zVNpE.js 0.30 kB │ gzip: 0.21 kB
../dist/assets/chunk-FMBD7UC4-D7uSWKVI.js 0.37 kB │ gzip: 0.27 kB
../dist/assets/stateDiagram-v2-BHNVJYJU-C0i8bMry.js 0.39 kB │ gzip: 0.29 kB
../dist/assets/classDiagram-4FO5ZUOK-Cm-TCkv1.js 0.47 kB │ gzip: 0.32 kB
../dist/assets/classDiagram-v2-Q7XG4LA2-Cm-TCkv1.js 0.47 kB │ gzip: 0.32 kB
../dist/assets/chunk-2J33WTMH-B7dZ4si0.js 0.53 kB │ gzip: 0.38 kB
../dist/assets/codeowners-Bp6g37R7.js 0.55 kB │ gzip: 0.32 kB
../dist/assets/infoDiagram-5YYISTIA-DgSTo-Rm.js 0.59 kB │ gzip: 0.41 kB
../dist/assets/shellsession-C_rIy8kc.js 0.72 kB │ gzip: 0.43 kB
../dist/assets/tsv-B_m7g4N7.js 0.74 kB │ gzip: 0.34 kB
../dist/assets/html-derivative-CSfWNPLT.js 0.97 kB │ gzip: 0.53 kB
../dist/assets/git-rebase-B-v9cOL2.js 0.98 kB │ gzip: 0.44 kB
../dist/assets/qmldir-C8lEn-DE.js 1.00 kB │ gzip: 0.45 kB
../dist/assets/fortran-fixed-form-TqA4NnZg.js 1.11 kB │ gzip: 0.55 kB
../dist/assets/ordinal-Cboi1Yqb.js 1.19 kB │ gzip: 0.57 kB
../dist/assets/csv-B0qRVHPH.js 1.22 kB │ gzip: 0.37 kB
../dist/assets/xsl-Dd0NUgwM.js 1.39 kB │ gzip: 0.52 kB
../dist/assets/sparql-bYkjHRlG.js 1.51 kB │ gzip: 0.83 kB
../dist/assets/ini-BjABl1g7.js 1.53 kB │ gzip: 0.50 kB
../dist/assets/git-commit-i4q6IMui.js 1.55 kB │ gzip: 0.67 kB
../dist/assets/dotenv-BjQB5zDj.js 1.70 kB │ gzip: 0.64 kB
../dist/assets/wenyan-7A4Fjokl.js 1.71 kB │ gzip: 1.11 kB
../dist/assets/docker-COcR7UxN.js 1.77 kB │ gzip: 0.61 kB
../dist/assets/hxml-TIA70rKU.js 1.83 kB │ gzip: 0.90 kB
../dist/assets/chunk-ND2GUHAM-Dx7J8BA7.js 1.86 kB │ gzip: 0.82 kB
../dist/assets/desktop-DEIpsLCJ.js 2.03 kB │ gzip: 0.79 kB
../dist/assets/edge-D5gP-w-T.js 2.36 kB │ gzip: 0.70 kB
../dist/assets/reg-5LuOXUq_.js 2.37 kB │ gzip: 0.71 kB
../dist/assets/berry-3xVqZejG.js 2.45 kB │ gzip: 0.80 kB
../dist/assets/erb-BYTLMnw6.js 2.61 kB │ gzip: 0.85 kB
../dist/assets/diff-BgYniUM_.js 2.64 kB │ gzip: 0.74 kB
../dist/assets/gleam-B430Bg39.js 2.69 kB │ gzip: 0.86 kB
../dist/assets/diagram-5GNKFQAL-XxJzG5dh.js 2.75 kB │ gzip: 1.37 kB
../dist/assets/hy-BMj5Y0dO.js 2.82 kB │ gzip: 1.19 kB
../dist/assets/json-BQoSv7ci.js 2.92 kB │ gzip: 0.81 kB
../dist/assets/cairo--RitsXJZ.js 2.95 kB │ gzip: 0.81 kB
../dist/assets/log-Cc5clBb7.js 2.97 kB │ gzip: 0.89 kB
../dist/assets/jssm-P4WzXJd0.js 2.97 kB │ gzip: 0.70 kB
../dist/assets/jsonl-DREVFZK8.js 3.10 kB │ gzip: 0.83 kB
../dist/assets/jsonc-TU54ms6u.js 3.20 kB │ gzip: 0.83 kB
../dist/assets/logo-IuBKFhSY.js 3.21 kB │ gzip: 1.48 kB
../dist/assets/genie-ajMbGru0.js 3.38 kB │ gzip: 1.22 kB
../dist/assets/po-BFLt1xDp.js 3.38 kB │ gzip: 0.99 kB
../dist/assets/tasl-CQjiPCtT.js 3.39 kB │ gzip: 0.89 kB
../dist/assets/vala-BFOHcciG.js 3.40 kB │ gzip: 1.19 kB
../dist/assets/mipsasm-BC5c_5Pe.js 3.41 kB │ gzip: 1.27 kB
../dist/assets/arc-C0m6Qzmm.js 3.42 kB │ gzip: 1.47 kB
../dist/assets/rel-DJlmqQ1C.js 3.43 kB │ gzip: 1.11 kB
../dist/assets/json5-w8dY5SsB.js 3.54 kB │ gzip: 0.94 kB
../dist/assets/ssh-config-BknIz3MU.js 3.61 kB │ gzip: 1.59 kB
../dist/assets/fluent-Dayu4EKP.js 3.62 kB │ gzip: 0.89 kB
../dist/assets/jsonnet-BfivnA6A.js 3.63 kB │ gzip: 1.06 kB
../dist/assets/narrat-DLbgOhZU.js 3.69 kB │ gzip: 1.11 kB
../dist/assets/turtle-BMR_PYu6.js 3.71 kB │ gzip: 0.98 kB
../dist/assets/splunk-Cf8iN4DR.js 3.92 kB │ gzip: 1.65 kB
../dist/assets/glsl-DBO2IWDn.js 3.94 kB │ gzip: 1.43 kB
../dist/assets/nextflow-B0XVJmRM.js 3.96 kB │ gzip: 1.10 kB
../dist/assets/sdbl-BLhTXw86.js 4.14 kB │ gzip: 2.12 kB
../dist/assets/pascal-JqZropPD.js 4.18 kB │ gzip: 1.68 kB
../dist/assets/smalltalk-DkLiglaE.js 4.20 kB │ gzip: 1.26 kB
../dist/assets/diagram-LMA3HP47-B1pRw3IM.js 4.24 kB │ gzip: 1.86 kB
../dist/assets/lean-XBlWyCtg.js 4.29 kB │ gzip: 1.33 kB
../dist/assets/zenscript-HnGAYVZD.js 4.40 kB │ gzip: 1.42 kB
../dist/assets/bicep-DHo0CJ0O.js 4.45 kB │ gzip: 1.08 kB
../dist/assets/http-FRrOvY1W.js 4.65 kB │ gzip: 1.14 kB
../dist/assets/polar-DKykz6zU.js 4.68 kB │ gzip: 1.17 kB
../dist/assets/defaultLocale-DX6XiGOO.js 4.69 kB │ gzip: 2.18 kB
../dist/assets/fennel-bCA53EVm.js 4.82 kB │ gzip: 1.55 kB
../dist/assets/tcl-DQ1-QYvQ.js 5.02 kB │ gzip: 1.69 kB
../dist/assets/bibtex-xW4inM5L.js 5.08 kB │ gzip: 0.81 kB
../dist/assets/pieDiagram-4H26LBE5-Col7OBtl.js 5.32 kB │ gzip: 2.36 kB
../dist/assets/fish-w-ucz2PV.js 5.39 kB │ gzip: 1.69 kB
../dist/assets/xml-e3z08dGr.js 5.41 kB │ gzip: 1.23 kB
../dist/assets/qml-D8XfuvdV.js 5.42 kB │ gzip: 1.39 kB
../dist/assets/zig-BVz_zdnA.js 5.46 kB │ gzip: 1.60 kB
../dist/assets/gdresource-BHYsBjWJ.js 5.48 kB │ gzip: 1.37 kB
../dist/assets/awk-eg146-Ew.js 5.49 kB │ gzip: 1.39 kB
../dist/assets/dax-ClGRhx96.js 5.53 kB │ gzip: 2.28 kB
../dist/assets/linear-BkZOFzgn.js 5.66 kB │ gzip: 2.31 kB
../dist/assets/jinja-DGy0s7-h.js 5.72 kB │ gzip: 1.42 kB
../dist/assets/powerquery-CSHBycmS.js 5.93 kB │ gzip: 1.52 kB
../dist/assets/verilog-CJaU5se_.js 5.94 kB │ gzip: 1.89 kB
../dist/assets/diagram-2AECGRRQ-DRsgOnGx.js 5.97 kB │ gzip: 2.52 kB
../dist/assets/coq-Dsg_Bt_b.js 5.99 kB │ gzip: 2.02 kB
../dist/assets/vb-CdO5JTpU.js 6.26 kB │ gzip: 2.36 kB
../dist/assets/red-bN70gL4F.js 6.26 kB │ gzip: 1.60 kB
../dist/assets/shaderlab-B7qAK45m.js 6.27 kB │ gzip: 2.10 kB
../dist/assets/min-dark-CafNBF8u.js 6.29 kB │ gzip: 1.71 kB
../dist/assets/gdshader-SKMF96pI.js 6.37 kB │ gzip: 1.75 kB
../dist/assets/prisma-B48N-Iqd.js 6.39 kB │ gzip: 1.40 kB
../dist/assets/solarized-light-L9t79GZl.js 6.48 kB │ gzip: 1.73 kB
../dist/assets/wgsl-CB0Krxn9.js 6.49 kB │ gzip: 1.71 kB
../dist/assets/postcss-B3ZDOciz.js 6.52 kB │ gzip: 1.93 kB
../dist/assets/toml-CB2ApiWb.js 6.53 kB │ gzip: 1.31 kB
../dist/assets/proto-zocC4JxJ.js 6.57 kB │ gzip: 1.42 kB
../dist/assets/talonscript-C1XDQQGZ.js 6.71 kB │ gzip: 1.47 kB
../dist/assets/cypher-m2LEI-9-.js 6.81 kB │ gzip: 1.84 kB
../dist/assets/solarized-dark-DXbdFlpD.js 6.85 kB │ gzip: 1.80 kB
../dist/assets/soy-C-lX7w71.js 6.95 kB │ gzip: 1.68 kB
../dist/assets/min-light-CTRr51gU.js 6.97 kB │ gzip: 1.89 kB
../dist/assets/clojure-DxSadP1t.js 7.08 kB │ gzip: 1.49 kB
../dist/assets/ara-7O62HKoU.js 7.25 kB │ gzip: 2.13 kB
../dist/assets/hlsl-ifBTmRxC.js 7.61 kB │ gzip: 2.24 kB
../dist/assets/riscv-QhoSD0DR.js 7.70 kB │ gzip: 2.21 kB
../dist/assets/qss-DhMKtDLN.js 7.82 kB │ gzip: 2.59 kB
../dist/assets/monokai-D4h5O-jR.js 7.88 kB │ gzip: 1.91 kB
../dist/assets/dart-B9wLZaAG.js 7.89 kB │ gzip: 1.93 kB
../dist/assets/systemd-CUnW07Te.js 8.00 kB │ gzip: 2.57 kB
../dist/assets/regexp-DWJ3fJO_.js 8.07 kB │ gzip: 1.46 kB
../dist/assets/haml-B2EZWmdv.js 8.49 kB │ gzip: 1.87 kB
../dist/assets/typst-BVUVsWT6.js 8.55 kB │ gzip: 1.70 kB
../dist/assets/plsql-LKU2TuZ1.js 8.57 kB │ gzip: 3.00 kB
../dist/assets/vue-html-xdeiXROB.js 8.70 kB │ gzip: 1.77 kB
../dist/assets/scheme-BJGe-b2p.js 8.72 kB │ gzip: 2.60 kB
../dist/assets/kotlin-B5lbUyaz.js 8.82 kB │ gzip: 2.14 kB
../dist/assets/andromeeda-C3khCPGq.js 8.86 kB │ gzip: 2.31 kB
../dist/assets/make-Bvotw-X0.js 9.01 kB │ gzip: 1.77 kB
../dist/assets/dark-plus-C3mMm8J8.js 9.10 kB │ gzip: 2.10 kB
../dist/assets/slack-dark-BthQWCQV.js 9.12 kB │ gzip: 1.97 kB
../dist/assets/ts-tags-CipyTH0X.js 9.18 kB │ gzip: 1.25 kB
../dist/assets/plastic-3e1v2bzS.js 9.30 kB │ gzip: 1.98 kB
../dist/assets/tex-rYs2v40G.js 9.37 kB │ gzip: 2.94 kB
../dist/assets/sass-BJ4Li9vH.js 9.41 kB │ gzip: 2.50 kB
../dist/assets/slack-ochin-DqwNpetd.js 9.43 kB │ gzip: 2.10 kB
../dist/assets/jison-BqZprYcd.js 9.72 kB │ gzip: 1.87 kB
../dist/assets/sas-BmTFh92c.js 9.79 kB │ gzip: 4.07 kB
../dist/assets/light-plus-B7mTdjB0.js 9.94 kB │ gzip: 2.27 kB
../dist/assets/gherkin--30QC5Em.js 10.12 kB │ gzip: 5.14 kB
../dist/assets/stateDiagram-AJRCARHV-BlCenFRb.js 10.36 kB │ gzip: 3.62 kB
../dist/assets/cmake-DbXoA79R.js 10.50 kB │ gzip: 3.59 kB
../dist/assets/dream-maker-C-nORZOA.js 10.61 kB │ gzip: 2.30 kB
../dist/assets/raku-B1bQXN8T.js 10.61 kB │ gzip: 2.96 kB
../dist/assets/rst-4NLicBqY.js 10.65 kB │ gzip: 2.42 kB
../dist/assets/beancount-BwXTMy5W.js 10.76 kB │ gzip: 1.52 kB
../dist/assets/yaml-CVw76BM1.js 10.79 kB │ gzip: 2.30 kB
../dist/assets/diagram-KO2AKTUF-B_EDGuIM.js 10.82 kB │ gzip: 4.17 kB
../dist/assets/cadence-DNquZEk8.js 11.03 kB │ gzip: 2.32 kB
../dist/assets/github-light-DAi9KRSo.js 11.18 kB │ gzip: 2.51 kB
../dist/assets/elm-CmHSxxaM.js 11.29 kB │ gzip: 2.23 kB
../dist/assets/dagre-BM42HDAG-DM6n_pO9.js 11.40 kB │ gzip: 4.21 kB
../dist/assets/github-dark-DHJKELXO.js 11.41 kB │ gzip: 2.55 kB
../dist/assets/prolog-BY-TUvya.js 11.44 kB │ gzip: 3.84 kB
../dist/assets/laserwave-DUszq2jm.js 11.50 kB │ gzip: 2.58 kB
../dist/assets/puppet-Cza_XSSt.js 11.75 kB │ gzip: 2.23 kB
../dist/assets/hcl-HzYwdGDm.js 11.97 kB │ gzip: 2.51 kB
../dist/assets/handlebars-BQGss363.js 12.27 kB │ gzip: 2.39 kB
../dist/assets/hjson-T-Tgc4AT.js 12.33 kB │ gzip: 1.68 kB
../dist/assets/vesper-BEBZ7ncR.js 12.66 kB │ gzip: 1.97 kB
../dist/assets/luau-Du5NY7AG.js 12.92 kB │ gzip: 3.11 kB
../dist/assets/bat-fje9CFhw.js 12.99 kB │ gzip: 3.26 kB
../dist/assets/apache-Dn00JSTd.js 13.21 kB │ gzip: 3.79 kB
../dist/assets/terraform-BbSNqyBO.js 13.38 kB │ gzip: 3.11 kB
../dist/assets/vitesse-light-CVO1_9PV.js 13.62 kB │ gzip: 3.04 kB
../dist/assets/aurora-x-D-2ljcwZ.js 13.66 kB │ gzip: 2.28 kB
../dist/assets/vitesse-black-Bkuqu6BP.js 13.68 kB │ gzip: 3.06 kB
../dist/assets/v-CAQ2eGtk.js 13.74 kB │ gzip: 2.85 kB
../dist/assets/vitesse-dark-D0r3Knsf.js 13.76 kB │ gzip: 3.06 kB
../dist/assets/synthwave-84-CbfX1IO0.js 14.04 kB │ gzip: 2.87 kB
../dist/assets/github-light-default-D7oLnXFd.js 14.16 kB │ gzip: 3.04 kB
../dist/assets/github-light-high-contrast-BfjtVDDH.js 14.28 kB │ gzip: 3.02 kB
../dist/assets/github-dark-dimmed-DH5Ifo-i.js 14.43 kB │ gzip: 3.13 kB
../dist/assets/github-dark-default-Cuk6v7N8.js 14.44 kB │ gzip: 3.13 kB
../dist/assets/clarity-BHOwM8T6.js 14.55 kB │ gzip: 2.48 kB
../dist/assets/actionscript-3-D_z4Izcz.js 14.56 kB │ gzip: 2.80 kB
../dist/assets/github-dark-high-contrast-E3gJ1_iC.js 14.60 kB │ gzip: 3.09 kB
../dist/assets/pug-CM9l7STV.js 14.89 kB │ gzip: 2.91 kB
../dist/assets/gnuplot-CM8KxXT1.js 14.91 kB │ gzip: 3.30 kB
../dist/assets/ayu-dark-Cv9koXgw.js 14.95 kB │ gzip: 3.08 kB
../dist/assets/nix-shcSOmrb.js 15.55 kB │ gzip: 2.35 kB
../dist/assets/lua-CvWAzNxB.js 15.62 kB │ gzip: 3.16 kB
../dist/assets/diagram-OG6HWLK6-DfoOXa9C.js 15.92 kB │ gzip: 5.70 kB
../dist/assets/wasm-C6j12Q_x.js 15.93 kB │ gzip: 2.90 kB
../dist/assets/solidity-C1w2a3ep.js 16.23 kB │ gzip: 3.13 kB
../dist/assets/svelte-MSaWC3Je.js 16.89 kB │ gzip: 2.96 kB
../dist/assets/purescript-Bg-kzb6g.js 17.07 kB │ gzip: 2.65 kB
../dist/assets/kanagawa-wave-DWedfzmr.js 17.12 kB │ gzip: 2.93 kB
../dist/assets/kanagawa-lotus-CfQXZHmo.js 17.13 kB │ gzip: 2.93 kB
../dist/assets/kanagawa-dragon-CkXjmgJE.js 17.13 kB │ gzip: 2.95 kB
../dist/assets/liquid-D3W5UaiH.js 17.17 kB │ gzip: 3.08 kB
../dist/assets/cue-DtFQj3wx.js 17.35 kB │ gzip: 2.09 kB
../dist/assets/ishikawaDiagram-YF4QCWOH-INdO1nrS.js 17.56 kB │ gzip: 6.68 kB
../dist/assets/rust-Be6lgOlo.js 17.60 kB │ gzip: 3.37 kB
../dist/assets/angular-html-LfdN0zeE.js 17.66 kB │ gzip: 3.51 kB
../dist/assets/graphql-cDcHW_If.js 18.20 kB │ gzip: 2.66 kB
../dist/assets/elixir-CLiX3zqd.js 18.30 kB │ gzip: 3.22 kB
../dist/assets/material-theme-D5KoaKCx.js 18.62 kB │ gzip: 3.11 kB
../dist/assets/material-theme-darker-BfHTSMKl.js 18.63 kB │ gzip: 3.11 kB
../dist/assets/material-theme-ocean-CyktbL80.js 18.63 kB │ gzip: 3.14 kB
../dist/assets/material-theme-lighter-B0m2ddpp.js 18.63 kB │ gzip: 3.11 kB
../dist/assets/material-theme-palenight-Csfq5Kiy.js 18.64 kB │ gzip: 3.13 kB
../dist/assets/gdscript-DfxzS6Rs.js 18.65 kB │ gzip: 3.72 kB
../dist/assets/abap-DsBKuouk.js 18.82 kB │ gzip: 6.20 kB
../dist/assets/marko-z0MBrx5-.js 19.33 kB │ gzip: 3.20 kB
../dist/assets/groovy-DkBy-JyN.js 19.65 kB │ gzip: 3.78 kB
../dist/assets/mdc-DB_EDNY_.js 19.70 kB │ gzip: 6.61 kB
../dist/assets/nushell-D4Tzg5kh.js 19.75 kB │ gzip: 4.94 kB
../dist/assets/matlab-D9-PGadD.js 20.14 kB │ gzip: 3.87 kB
../dist/assets/move-DB_GagMm.js 20.24 kB │ gzip: 4.05 kB
../dist/assets/glimmer-js-D-cwc0-E.js 20.56 kB │ gzip: 3.00 kB
../dist/assets/glimmer-ts-pgjy16dm.js 20.56 kB │ gzip: 3.00 kB
../dist/assets/kusto-mebxcVVE.js 20.63 kB │ gzip: 4.55 kB
../dist/assets/kanban-definition-UN3LZRKU-DwZl5Vc1.js 20.70 kB │ gzip: 7.29 kB
../dist/assets/snazzy-light-Bw305WKR.js 20.77 kB │ gzip: 3.83 kB
../dist/assets/viml-m4uW47V2.js 21.02 kB │ gzip: 7.24 kB
../dist/assets/dracula-BzJJZx-M.js 21.07 kB │ gzip: 4.00 kB
../dist/assets/dracula-soft-BXkSAIEj.js 21.08 kB │ gzip: 4.04 kB
../dist/assets/vue-BuYVFjOK.js 21.48 kB │ gzip: 2.89 kB
../dist/assets/rose-pine-CmCqftbK.js 21.76 kB │ gzip: 3.87 kB
../dist/assets/rose-pine-moon-CjDtw9vr.js 21.77 kB │ gzip: 3.89 kB
../dist/assets/rose-pine-dawn-Ds-gbosJ.js 21.77 kB │ gzip: 3.89 kB
../dist/assets/powershell-BIEUsx6d.js 22.26 kB │ gzip: 4.70 kB
../dist/assets/apl-BBq3IX1j.js 22.84 kB │ gzip: 4.22 kB
../dist/assets/twig-NC5TFiHP.js 23.01 kB │ gzip: 4.15 kB
../dist/assets/mindmap-definition-RKZ34NQL-BGIhPKVf.js 23.36 kB │ gzip: 7.89 kB
../dist/assets/sankeyDiagram-5OEKKPKP-sfcIcahb.js 23.39 kB │ gzip: 8.58 kB
../dist/assets/journeyDiagram-JHISSGLW-CPwq_PxJ.js 23.58 kB │ gzip: 8.36 kB
../dist/assets/nim-ZlGxZxc3.js 23.63 kB │ gzip: 3.50 kB
../dist/assets/vhdl-DYoNaHQp.js 23.78 kB │ gzip: 3.86 kB
../dist/assets/graph-qsFoMdT2.js 23.94 kB │ gzip: 8.32 kB
../dist/assets/templ-dwX3ZSMB.js 23.97 kB │ gzip: 5.39 kB
../dist/assets/astro-CqkE3fuf.js 24.07 kB │ gzip: 7.45 kB
../dist/assets/sql-COK4E0Yg.js 24.32 kB │ gzip: 7.68 kB
../dist/assets/one-light-PoHY5YXO.js 25.30 kB │ gzip: 3.68 kB
../dist/assets/razor-CNLDkMZG.js 25.81 kB │ gzip: 3.47 kB
../dist/assets/fsharp-XplgxFYe.js 25.83 kB │ gzip: 4.22 kB
../dist/assets/wardleyDiagram-YWT4CUSO-CFwHXDL1.js 26.10 kB │ gzip: 6.94 kB
../dist/assets/nord-Ddv68eIx.js 26.72 kB │ gzip: 4.40 kB
../dist/assets/system-verilog-C7L56vO4.js 26.77 kB │ gzip: 4.88 kB
../dist/assets/erDiagram-TEJ5UH35-B0adSoyq.js 26.97 kB │ gzip: 9.38 kB
../dist/assets/bsl-Dgyn0ogV.js 27.44 kB │ gzip: 8.92 kB
../dist/assets/java-xI-RfyKK.js 27.49 kB │ gzip: 4.33 kB
../dist/assets/coffee-dyiR41kL.js 27.75 kB │ gzip: 6.42 kB
../dist/assets/scss-C31hgJw-.js 28.13 kB │ gzip: 4.43 kB
../dist/assets/typespec-BpWG_bgh.js 28.19 kB │ gzip: 2.83 kB
../dist/assets/index-C3SjBLVe.js 28.32 kB │ gzip: 9.88 kB
../dist/assets/common-lisp-C7gG9l05.js 28.50 kB │ gzip: 6.72 kB
../dist/assets/night-owl-C39BiMTA.js 28.91 kB │ gzip: 5.16 kB
../dist/assets/julia-BBuGR-5E.js 29.45 kB │ gzip: 6.13 kB
../dist/assets/gitGraphDiagram-PVQCEYII-Cb_pcpdR.js 29.94 kB │ gzip: 8.88 kB
../dist/assets/scala-DQVVAn-B.js 30.49 kB │ gzip: 4.32 kB
../dist/assets/applescript-Bu5BbsvL.js 30.78 kB │ gzip: 6.35 kB
../dist/assets/requirementDiagram-4Y6WPE33-B9OW_kQg.js 31.20 kB │ gzip: 9.82 kB
../dist/assets/timeline-definition-PNZ67QCA-B50xwH00.js 31.36 kB │ gzip: 10.43 kB
../dist/assets/stylus-BeQkCIfX.js 31.56 kB │ gzip: 8.11 kB
../dist/assets/mermaid-Ci6OQyBP.js 33.06 kB │ gzip: 4.65 kB
../dist/assets/poimandres-CS3Unz2-.js 33.49 kB │ gzip: 5.50 kB
../dist/assets/codeql-sacFqUAJ.js 33.59 kB │ gzip: 4.00 kB
../dist/assets/one-dark-pro-GBQ2dnAY.js 33.74 kB │ gzip: 5.51 kB
../dist/assets/crystal-DtDmRg-F.js 33.75 kB │ gzip: 5.59 kB
../dist/assets/tokyo-night-DBQeEorK.js 34.36 kB │ gzip: 5.97 kB
../dist/assets/quadrantDiagram-W4KKPZXB-Q64viC6x.js 34.50 kB │ gzip: 10.14 kB
../dist/assets/haxe-C5wWYbrZ.js 35.30 kB │ gzip: 5.93 kB
../dist/assets/houston-DnULxvSX.js 35.42 kB │ gzip: 5.78 kB
../dist/assets/nginx-D_VnBJ67.js 35.73 kB │ gzip: 4.49 kB
../dist/assets/layout-CNYaLpI5.js 35.84 kB │ gzip: 12.87 kB
../dist/assets/erlang-B-DoSBHF.js 36.31 kB │ gzip: 4.44 kB
../dist/assets/r-CwjWoCRV.js 36.87 kB │ gzip: 11.22 kB
../dist/assets/chunk-AQP2D5EJ-c2jrXaP3.js 37.55 kB │ gzip: 12.24 kB
../dist/assets/xychartDiagram-2RQKCTM6-CX-r9rEX.js 40.39 kB │ gzip: 11.56 kB
../dist/assets/cobol-PTqiYgYu.js 40.58 kB │ gzip: 11.08 kB
../dist/assets/asm-Dhn9LcZ4.js 40.85 kB │ gzip: 8.18 kB
../dist/assets/vennDiagram-CIIHVFJN-B7HhCNiq.js 41.83 kB │ gzip: 15.58 kB
../dist/assets/shellscript-atvbtKCR.js 42.71 kB │ gzip: 6.33 kB
../dist/assets/d-BoXegm-a.js 43.01 kB │ gzip: 8.40 kB
../dist/assets/haskell-BILxekzW.js 43.21 kB │ gzip: 7.02 kB
../dist/assets/perl-CHQXSrWU.js 44.54 kB │ gzip: 4.87 kB
../dist/assets/catppuccin-mocha-LGGdnPYs.js 45.61 kB │ gzip: 7.73 kB
../dist/assets/catppuccin-latte-DRW-0cLl.js 45.61 kB │ gzip: 7.74 kB
../dist/assets/catppuccin-frappe-CD_QflpE.js 45.62 kB │ gzip: 7.75 kB
../dist/assets/catppuccin-macchiato-C-shW-Y.js 45.62 kB │ gzip: 7.74 kB
../dist/assets/apex-COJ4H7py.js 46.81 kB │ gzip: 6.78 kB
../dist/assets/ada-727ZlQH0.js 48.53 kB │ gzip: 6.05 kB
../dist/assets/chunk-727SXJPM-BWSC-AB7.js 49.06 kB │ gzip: 15.73 kB
../dist/assets/ruby-DeZ3UC14.js 51.47 kB │ gzip: 7.13 kB
../dist/assets/go-B1SYOhNW.js 52.41 kB │ gzip: 6.40 kB
../dist/assets/imba-bv_oIlVt.js 53.46 kB │ gzip: 10.21 kB
../dist/assets/everforest-dark-BgDCqdQA.js 53.75 kB │ gzip: 8.42 kB
../dist/assets/everforest-light-C8M2exoo.js 53.75 kB │ gzip: 8.42 kB
../dist/assets/css-BPhBrDlE.js 53.80 kB │ gzip: 13.50 kB
../dist/assets/wikitext-DCE3LsBG.js 56.62 kB │ gzip: 4.82 kB
../dist/assets/markdown-UIAJJxZW.js 56.99 kB │ gzip: 5.63 kB
../dist/assets/latex-C-cWTeAZ.js 59.42 kB │ gzip: 6.01 kB
../dist/assets/stata-DorPZHa4.js 61.01 kB │ gzip: 13.71 kB
../dist/assets/flowDiagram-I6XJVG4X-CLMwhhY
.js 61.17 kB │ gzip: 19.51 kB
../dist/assets/html-C2L_23MC.js 61.33 kB │ gzip: 11.99 kB
../dist/assets/ballerina-Du268qiB.js 61.63 kB │ gzip: 8.31 kB
../dist/assets/ocaml-BNioltXt.js 65.87 kB │ gzip: 5.17 kB
../dist/assets/ganttDiagram-6RSMTGT7-CBEdi8Hh.js 69.29 kB │ gzip: 23.35 kB
../dist/assets/c4Diagram-AAUBKEIU-OCChsgoT.js 69.95 kB │ gzip: 19.64 kB
../dist/assets/mojo-Tz6hzZYG.js 72.57 kB │ gzip: 10.36 kB
../dist/assets/python-DhUJRlN_.js 73.53 kB │ gzip: 10.43 kB
../dist/assets/c-C3t2pwGQ.js 73.97 kB │ gzip: 10.64 kB
../dist/assets/blockDiagram-GPEHLZMM-Db0fV9Un.js 74.92 kB │ gzip: 21.57 kB
../dist/assets/vyper-nyqBNV6O.js 78.23 kB │ gzip: 12.05 kB
../dist/assets/cose-bilkent-S5V4N54A-DjKKdUH3.js 81.55 kB │ gzip: 22.44 kB
../dist/assets/hack-D1yCygmZ.js 84.64 kB │ gzip: 27.60 kB
../dist/assets/csharp-D9R-vmeu.js 87.17 kB │ gzip: 10.39 kB
../dist/assets/swift-BSxZ-RaX.js 90.99 kB │ gzip: 14.55 kB
../dist/assets/asciidoc-BPT9niGB.js 93.51 kB │ gzip: 7.43 kB
../dist/assets/racket-CzouJOBO.js 97.61 kB │ gzip: 15.62 kB
../dist/assets/fortran-free-form-DKXYxT9g.js 98.19 kB │ gzip: 12.37 kB
../dist/assets/less-BfCpw3nA.js 102.46 kB │ gzip: 15.13 kB
../dist/assets/objective-c-Deuh7S70.js 107.79 kB │ gzip: 23.25 kB
../dist/assets/blade-a8OxSdnT.js 108.00 kB │ gzip: 28.67 kB
../dist/assets/php-B5ebYQev.js 113.76 kB │ gzip: 28.82 kB
../dist/assets/sequenceDiagram-3UESZ5HK-tBGyG4Ul.js 117.29 kB │ gzip: 31.17 kB
../dist/assets/mdx-sdHcTMYB.js 140.36 kB │ gzip: 23.62 kB
../dist/assets/architectureDiagram-3BPJPVTR-CzRuvEEf.js 149.54 kB │ gzip: 42.28 kB
../dist/assets/objective-cpp-BUEGK8hf.js 175.60 kB │ gzip: 30.67 kB
../dist/assets/javascript-ySlJ1b_l.js 198.03 kB │ gzip: 17.45 kB
../dist/assets/tsx-B6W0miNI.js 198.75 kB │ gzip: 17.45 kB
../dist/assets/jsx-BAng5TT0.js 201.01 kB │ gzip: 17.55 kB
../dist/assets/typescript-Dj6nwHGl.js 209.02 kB │ gzip: 17.02 kB
../dist/assets/angular-ts-CKsD7JZE.js 211.78 kB │ gzip: 17.62 kB
../dist/assets/wolfram-C3FkfJm5.js 268.60 kB │ gzip: 77.05 kB
../dist/assets/cytoscape.esm-CUqq0XTU.js 443.69 kB │ gzip: 142.35 kB
../dist/assets/wardley-L42UT6IY-DwRzGVnm.js 615.19 kB │ gzip: 148.56 kB
../dist/assets/mermaid.core-CsaQOJgK.js 620.55 kB │ gzip: 148.97 kB
../dist/assets/wasm-CG6Dc4jp.js 622.34 kB │ gzip: 230.29 kB
../dist/assets/cpp-BksuvNSY.js 697.52 kB │ gzip: 50.25 kB
../dist/assets/emacs-lisp-BX77sIaO.js 804.67 kB │ gzip: 196.96 kB
../dist/assets/index-C2GE3DAF.js 1,128.18 kB │ gzip: 375.20 kB
../dist/assets/index-CuKFyhdY.js 3,236.90 kB │ gzip: 967.77 kB
✓ built in 10.19s
vite v5.4.21 building for production...
transforming...
✓ 331 modules transformed.
rendering chunks...
computing gzip size...
dist/index.js 3,606.60 kB │ gzip: 634.84 kB
✓ built in 2.35s

qwen-code-vscode-ide-companion@0.21.7 build
npm run build:dev

qwen-code-vscode-ide-companion@0.21.7 build:dev
npm run check-types && npm run lint && node esbuild.js

qwen-code-vscode-ide-companion@0.21.7 check-types
tsc --noEmit

qwen-code-vscode-ide-companion@0.21.7 lint
eslint src

@qwen-code/chrome-bridge@0.21.7 build
node scripts/sync-extension.js && node config/esbuild.background.config.js --production

Static assets synced -> dist/extension
Background/content build complete!

@qwen-code/external-context@0.20.1 build
npm run clean && tsc --build

@qwen-code/external-context@0.20.1 clean
node -e "const fs=require('node:fs'); fs.rmSync('dist',{recursive:true,force:true}); fs.rmSync('tsconfig.tsbuildinfo',{force:true})"

@qwen-code/qwen-code@0.21.7 bundle
npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js

@qwen-code/qwen-code@0.21.7 generate
node scripts/generate-git-commit-info.js

Copied sandbox profiles to dist/
Copying vendor directory...
Copied vendor directory to dist/
Copied bundled skills to dist/bundled/
Copied docs/users/ to dist/bundled/qc-helper/docs/
Copied builtin locales to dist/locales/
Copied extension examples to dist/examples/
Copied Web Shell UI to dist/web-shell/
Stamped the review source digest over 65 files.

✅ All bundle assets copied to dist/

added 160 packages, changed 4 packages, and audited 2069 packages in 2m

574 packages are looking for funding
run npm fund for details

67 vulnerabilities (3 low, 37 moderate, 24 high, 3 critical)

To address issues that do not require attention, run:
npm audit fix

To address all issues (including breaking changes), run:
npm audit fix --force

Run npm audit for details..\n- The previous coverage-comment failure was secondary to the main Test job exiting before producing its coverage artifact.\n\nA fresh CI run is now queued against the updated head.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 84.02% 84.02% 89.9% 83.28%
Core 87.91% 87.91% 89.48% 86.4%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   84.02 |    83.28 |    89.9 |   84.02 |                   
 src               |   85.12 |     81.7 |   88.49 |   85.12 |                   
  cli.ts           |   95.68 |    84.11 |     100 |   95.68 | ...60-561,565-566 
  gemini.tsx       |   73.75 |    79.33 |   80.76 |   73.75 | ...1319-1323,1450 
  ...ractiveCli.ts |   86.74 |    81.15 |   88.13 |   86.74 | ...2955,2961,3026 
  ...liCommands.ts |   89.33 |     85.6 |      90 |   89.33 | ...01,518,552,674 
  ...ActiveAuth.ts |     100 |     87.5 |     100 |     100 | 66-80             
 ...cp-integration |   71.75 |    74.49 |   91.19 |   71.75 |                   
  acpAgent.ts      |   71.17 |    74.31 |   90.74 |   71.17 | ...76,12303-12305 
  ...k-reporter.ts |     100 |    80.95 |     100 |     100 | 77,80,115,135     
  authMethods.ts   |      92 |       60 |     100 |      92 | 33-34             
  errorCodes.ts    |     100 |      100 |     100 |     100 |                   
  ...ion-skills.ts |     100 |    88.23 |     100 |     100 | 17,32             
  generation.ts    |    97.1 |    81.25 |     100 |    97.1 | 109,112           
  ...DirContext.ts |     100 |      100 |     100 |     100 |                   
 ...ration/service |    97.1 |    95.83 |   93.33 |    97.1 |                   
  filesystem.ts    |    97.1 |    95.83 |   93.33 |    97.1 | ...22-123,246-247 
 ...ration/session |   91.57 |    86.96 |   96.77 |   91.57 |                   
  Session.ts       |   90.62 |     85.2 |   96.05 |   90.62 | ...01,10928-10932 
  ...entTracker.ts |    96.8 |    89.36 |      90 |    96.8 | 137-143,221       
  ...projection.ts |   98.57 |    93.29 |     100 |   98.57 | ...76,333,344,356 
  ...stop-guard.ts |     100 |    98.07 |     100 |     100 | 37,127            
  ...eplay-page.ts |   93.44 |    91.74 |     100 |   93.44 | 74,85-88,115-125  
  ...y-replayer.ts |   98.54 |    95.65 |     100 |   98.54 | 241-243           
  index.ts         |       0 |        0 |       0 |       0 | 1-40              
  ...ssionUtils.ts |   89.76 |    87.32 |     100 |   89.76 | ...54-270,326-328 
  ...lure-guard.ts |   98.32 |    97.75 |     100 |   98.32 | 294-295,340-341   
  tasksSnapshot.ts |    94.3 |     87.5 |     100 |    94.3 | 65-71             
  ...on-tracker.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...ssion/emitters |   96.01 |    94.15 |   96.66 |   96.01 |                   
  ...ageEmitter.ts |   95.95 |       96 |     100 |   95.95 | 52-59             
  PlanEmitter.ts   |     100 |       90 |     100 |     100 | 66                
  base-emitter.ts  |   78.26 |       75 |     100 |   78.26 | 23-24,26-28       
  index.ts         |       0 |        0 |       0 |       0 | 1-10              
  ...ll-emitter.ts |   99.18 |    96.47 |     100 |   99.18 | 355-356           
 ...ession/rewrite |    91.8 |    89.13 |   94.44 |    91.8 |                   
  LlmRewriter.ts   |    82.4 |     86.2 |     100 |    82.4 | ...,88-89,166-170 
  ...Middleware.ts |   96.96 |    88.09 |     100 |   96.96 | 144,152-154       
  TurnBuffer.ts    |     100 |      100 |     100 |     100 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/agent-view    |   89.03 |    81.37 |   89.09 |   89.03 |                   
  ...t-cli-argv.ts |     100 |      100 |     100 |     100 |                   
  protocol.ts      |     100 |      100 |     100 |     100 |                   
  ...sor-client.ts |   80.38 |    72.54 |   76.66 |   80.38 | ...22-626,652-656 
  ...or-process.ts |   96.61 |    89.47 |   84.61 |   96.61 | 129-130,150-151   
  ...sor-runner.ts |    84.9 |     75.6 |      85 |    84.9 | ...44,468,471-481 
  ...sor-server.ts |   85.71 |    83.06 |   95.45 |   85.71 | ...67-468,471-488 
  ...isor-store.ts |   97.73 |    81.16 |     100 |   97.73 | ...92,594,607,643 
  ...nal-bridge.ts |   93.98 |     91.3 |   83.33 |   93.98 | 228-238           
 src/commands      |   90.81 |    79.61 |   66.66 |   90.81 |                   
  auth.ts          |     100 |    83.33 |     100 |     100 | 11,14             
  channel.ts       |   55.55 |      100 |       0 |   55.55 | 18-22,30-40       
  extensions.tsx   |   96.77 |      100 |      50 |   96.77 | 39                
  hooks.tsx        |   66.66 |      100 |       0 |   66.66 | 20-24             
  mcp.ts           |   95.45 |      100 |      50 |   95.45 | 31                
  review.ts        |   98.66 |      100 |      50 |   98.66 | 86                
  serve.ts         |   89.84 |    77.32 |     100 |   89.84 | ...52,855-858,870 
  sessions.ts      |     100 |      100 |      50 |     100 |                   
  update.ts        |   98.13 |    94.44 |   66.66 |   98.13 | 82-83             
 ...mmands/channel |   88.91 |     88.5 |   90.54 |   88.91 |                   
  channel-cwd.ts   |     100 |      100 |     100 |     100 |                   
  ...l-registry.ts |   95.21 |    96.73 |   88.88 |   95.21 | ...18-221,266-269 
  ...entry-path.ts |      75 |       50 |     100 |      75 | 8-9               
  config-utils.ts  |   95.87 |    96.35 |     100 |   95.87 | ...08-213,271-274 
  configure.ts     |    14.7 |      100 |       0 |    14.7 | 18-21,23-84       
  daemon-worker.ts |   93.96 |    85.44 |   94.23 |   93.96 | ...1229,1236-1237 
  loop-runtime.ts  |   91.66 |      100 |      50 |   91.66 | 15,22             
  ...classifier.ts |   98.49 |    96.51 |     100 |   98.49 | 115-116,161       
  ...tact-store.ts |   93.51 |    87.65 |     100 |   93.51 | ...71,288-289,337 
  pairing.ts       |      75 |      100 |      50 |      75 | 22-28,59-70       
  pidfile.ts       |   95.55 |       90 |     100 |   95.55 | ...50-251,315-316 
  proxy.ts         |     100 |      100 |     100 |     100 |                   
  reload.ts        |    77.5 |    86.95 |      75 |    77.5 | 72-84,93-97       
  runtime.ts       |   82.43 |    86.44 |     100 |   82.43 | ...87-191,251-253 
  set.ts           |   75.72 |    85.71 |      50 |   75.72 | 65-83,111-116     
  start.ts         |    85.8 |    82.17 |      88 |    85.8 | ...85,591-594,606 
  ...ure-format.ts |   93.65 |    82.45 |     100 |   93.65 | ...42,48-49,74-75 
  status.ts        |   78.57 |    59.25 |   66.66 |   78.57 | ...36-137,150-161 
  stop.ts          |   57.83 |    82.35 |      50 |   57.83 | ...3,74-76,85-111 
 ...nds/extensions |   88.85 |    87.73 |   87.09 |   88.85 |                   
  consent.ts       |   72.53 |    90.32 |   42.85 |   72.53 | ...86-142,157-163 
  disable.ts       |     100 |       90 |     100 |     100 | 30                
  enable.ts        |     100 |    91.66 |     100 |     100 | 38                
  install.ts       |   82.95 |    81.57 |      75 |   82.95 | ...96-199,202-211 
  link.ts          |     100 |      100 |     100 |     100 |                   
  list.ts          |     100 |     87.5 |     100 |     100 | 18                
  new.ts           |     100 |      100 |     100 |     100 |                   
  settings.ts      |   99.15 |      100 |   83.33 |   99.15 | 151               
  sources.ts       |   93.42 |    87.09 |   92.85 |   93.42 | ...4-66,96-98,167 
  uninstall.ts     |   74.57 |       40 |   66.66 |   74.57 | 45-47,60-67,70-73 
  update.ts        |   96.71 |    97.05 |     100 |   96.71 | 114-118           
  utils.ts         |   75.63 |    55.55 |     100 |   75.63 | ...30-134,136-140 
 ...les/mcp-server |       0 |        0 |       0 |       0 |                   
  example.ts       |       0 |        0 |       0 |       0 | 1-60              
 ...amples/starter |       0 |        0 |       0 |       0 |                   
  example.ts       |       0 |        0 |       0 |       0 | 1-64              
 src/commands/mcp  |   90.31 |    84.61 |   83.33 |   90.31 |                   
  add.ts           |    99.3 |    96.07 |     100 |    99.3 | 154-155           
  approve.ts       |   76.19 |     87.5 |   66.66 |   76.19 | ...,89-99,114-124 
  list.ts          |   93.15 |    84.84 |      80 |   93.15 | ...78-180,198-199 
  reconnect.ts     |   78.85 |    66.66 |   85.71 |   78.85 | 42-55,169-191     
  remove.ts        |     100 |       80 |     100 |     100 | 21-25             
 ...ommands/review |   87.57 |    88.09 |   88.42 |   87.57 |                   
  agent-prompt.ts  |   93.67 |    91.71 |   97.22 |   93.67 | ...2498,2623-2703 
  base-tree.ts     |   76.16 |    80.76 |   77.77 |   76.16 | ...50-371,373-386 
  capture-local.ts |   68.57 |     90.9 |      75 |   68.57 | 107-111,158-189   
  ...k-coverage.ts |   50.71 |       35 |   66.66 |   50.71 | ...40-245,279-289 
  cleanup.ts       |   89.12 |    82.22 |   83.33 |   89.12 | ...99-504,506-507 
  ...ent-status.ts |   93.03 |    83.87 |   83.33 |   93.03 | 291,531-551       
  ...ose-review.ts |   96.87 |    92.53 |   96.55 |   96.87 | ...2126,2154-2176 
  cost-ledger.ts   |   94.67 |    95.86 |   78.57 |   94.67 | ...04-505,545-555 
  drive.ts         |   76.07 |    85.71 |   81.81 |   76.07 | ...90-492,497-499 
  extract-step.ts  |   91.36 |    90.62 |   88.88 |   91.36 | ...90-707,714-729 
  fetch-pr.ts      |    76.7 |    68.75 |   63.63 |    76.7 | ...95,417,450-455 
  findings.ts      |   89.35 |    89.13 |   95.45 |   89.35 | ...15-918,927-928 
  load-rules.ts    |   26.41 |      100 |   16.66 |   26.41 | ...41-153,155-156 
  match-remote.ts  |   85.54 |     92.3 |   66.66 |   85.54 | 67-72,131-136     
  mock-provider.ts |   95.44 |    90.25 |   89.47 |   95.44 | 145,690-709       
  parse-args.ts    |   99.66 |    96.55 |     100 |   99.66 | 404               
  plan-diff.ts     |   64.04 |      100 |   66.66 |   64.04 | 127-163           
  pr-context.ts    |   81.77 |    80.86 |   92.85 |   81.77 | ...1043,1072-1074 
  presubmit.ts     |   83.75 |    92.72 |   88.88 |   83.75 | ...77-578,655-685 
  ...ish-assets.ts |   77.18 |    82.14 |   71.42 |   77.18 | ...85-531,533-544 
  repo-context.ts  |   94.92 |    90.82 |     100 |   94.92 | ...67-368,376-377 
  ...ve-anchors.ts |   77.77 |    88.88 |      75 |   77.77 | ...77-182,194-211 
  run.ts           |   82.16 |    87.12 |   91.66 |   82.16 | ...52,468-516,529 
  save-artifact.ts |    89.9 |    81.81 |   94.11 |    89.9 | ...08-311,404-407 
  script-lint.ts   |   81.14 |    79.23 |   88.88 |   81.14 | ...59-773,775-797 
  submit.ts        |   83.77 |    83.95 |      90 |   83.77 | ...55,544,571-607 
  test-delta.ts    |   87.13 |    91.46 |      75 |   87.13 | 206-237,477-485   
  test-efficacy.ts |   88.04 |    84.12 |   95.45 |   88.04 | ...2602,2610-2630 
  test-plan.ts     |   91.44 |    91.39 |   89.47 |   91.44 | ...38-839,903-920 
 ...w/__fixtures__ |     100 |      100 |     100 |     100 |                   
  ...r-default.mjs |     100 |      100 |     100 |     100 |                   
  ...der-empty.mjs |     100 |      100 |     100 |     100 |                   
  ...der-named.mjs |     100 |      100 |     100 |     100 |                   
 ...nds/review/lib |   97.07 |       95 |   97.91 |   97.07 |                   
  agent-briefs.ts  |   98.96 |      100 |      50 |   98.96 | 719-720           
  anchors.ts       |     100 |    94.79 |     100 |     100 | ...33,169,178,225 
  assets.ts        |     100 |      100 |     100 |     100 |                   
  authorization.ts |    92.4 |    92.59 |     100 |    92.4 | 127-133           
  budget.ts        |     100 |    97.14 |     100 |     100 | 513,553           
  coverage.ts      |   94.49 |    94.61 |      96 |   94.49 | ...72-489,526-537 
  deadline.ts      |   98.33 |    93.61 |     100 |   98.33 | ...88,237,629,661 
  diff-flags.ts    |     100 |        0 |     100 |     100 | 63                
  diff-plan.ts     |   98.73 |    93.01 |     100 |   98.73 | ...41,264,290-291 
  disk.ts          |     100 |      100 |     100 |     100 |                   
  effort.ts        |     100 |      100 |     100 |     100 |                   
  gh.ts            |   87.07 |    92.45 |   76.47 |   87.07 | ...72,309-310,337 
  git.ts           |   97.64 |    95.65 |     100 |   97.64 | 180-181           
  heavy.ts         |     100 |      100 |     100 |     100 |                   
  inline-counts.ts |     100 |      100 |     100 |     100 |                   
  ledger.ts        |     100 |      100 |     100 |     100 |                   
  local-diff.ts    |    84.4 |    88.46 |     100 |    84.4 | ...63-473,475-483 
  ...ry-context.ts |   96.19 |    94.93 |     100 |   96.19 | ...90-491,496-499 
  merge-base.ts    |     100 |      100 |     100 |     100 |                   
  npm-toolchain.ts |   97.36 |    95.37 |     100 |   97.36 | ...86,409,770,787 
  path-rules.ts    |     100 |      100 |     100 |     100 |                   
  paths.ts         |     100 |     87.5 |     100 |     100 | 92                
  prompt-record.ts |   97.88 |    93.87 |     100 |   97.88 | 260-261,267       
  receipt.ts       |     100 |      100 |     100 |     100 |                   
  remote-match.ts  |   97.26 |    91.42 |     100 |   97.26 | 49-50             
  report.ts        |   94.68 |    93.75 |     100 |   94.68 | 189-193           
  ...ry-context.ts |     100 |    98.66 |     100 |     100 | 184               
  retirement.ts    |     100 |    92.39 |     100 |     100 | ...28,308-309,449 
  review-footer.ts |     100 |      100 |     100 |     100 |                   
  roster.ts        |     100 |    95.71 |     100 |     100 | 145,163,208       
  shell-quote.ts   |     100 |      100 |     100 |     100 |                   
  stale-bundle.ts  |   98.11 |    94.04 |     100 |   98.11 | 416,457,497-498   
  test-utils.ts    |     100 |      100 |     100 |     100 |                   
  toolchain.ts     |     100 |      100 |     100 |     100 |                   
  transcripts.ts   |   96.59 |     94.5 |     100 |   96.59 | ...08,297-298,323 
  ...pace-scope.ts |     100 |    96.96 |     100 |     100 | 172               
  workspaces.ts    |     100 |    96.77 |     100 |     100 | 222,452,499,512   
  worktree.ts      |     100 |      100 |     100 |     100 |                   
 ...mands/sessions |   91.56 |    86.95 |   83.33 |   91.56 |                   
  common.ts        |     100 |      100 |     100 |     100 |                   
  list.ts          |   90.96 |    86.66 |   81.81 |   90.96 | 208-219,221-222   
 src/config        |   94.92 |     89.9 |    96.3 |   94.92 |                   
  ...l-fallback.ts |     100 |      100 |     100 |     100 |                   
  auth.ts          |   89.35 |    83.56 |     100 |   89.35 | ...97-298,314-315 
  ...eMcpImport.ts |   87.91 |    81.52 |     100 |   87.91 | ...63-371,453-454 
  compile-cache.ts |     100 |      100 |     100 |     100 |                   
  config.ts        |   88.94 |    88.59 |   83.33 |   88.94 | ...2453,2455-2463 
  ...cy-monitor.ts |   88.75 |    76.19 |     100 |   88.75 | ...3,90-92,98,101 
  ...ust-policy.ts |   83.02 |    88.88 |     100 |   83.02 | ...02-209,232-240 
  ...heme-names.ts |     100 |      100 |     100 |     100 |                   
  environment.ts   |    96.5 |    93.51 |      95 |    96.5 | ...85-586,640-641 
  ...le-watcher.ts |   90.86 |    83.65 |   95.83 |   90.86 | ...23-325,370,418 
  ...resh-state.ts |   90.57 |    97.29 |   93.75 |   90.57 | 137-142,146-152   
  ...ime-reload.ts |     100 |    69.69 |     100 |     100 | ...12-113,122-123 
  hot-reload.ts    |     100 |    89.13 |     100 |     100 | 47,172-178,238    
  keyBindings.ts   |    97.4 |       50 |     100 |    97.4 | 240-243           
  ...ngsAdapter.ts |     100 |    94.11 |     100 |     100 | 64                
  ...ig-watcher.ts |   95.17 |    83.05 |     100 |   95.17 | ...78,200,292-293 
  ...er-secrets.ts |   98.97 |    96.87 |     100 |   98.97 | 85                
  mcpApprovals.ts  |   96.55 |    95.55 |     100 |   96.55 | 223-224,229-231   
  mcpJson.ts       |     100 |      100 |     100 |     100 |                   
  mcpServers.ts    |   92.85 |     87.5 |     100 |   92.85 | 46-47             
  ...references.ts |     100 |      100 |     100 |     100 |                   
  ...idersScope.ts |      95 |    94.73 |     100 |      95 | 11-12             
  ...abledTools.ts |     100 |      100 |     100 |     100 |                   
  ...comparison.ts |     100 |      100 |     100 |     100 |                   
  ...n-settings.ts |   99.15 |    93.75 |     100 |   99.15 | 63                
  sandboxConfig.ts |   93.33 |    93.33 |     100 |   93.33 | ...42-147,216-217 
  session-id.ts    |     100 |      100 |     100 |     100 |                   
  ...ings-cache.ts |   96.52 |    93.93 |     100 |   96.52 | 90-91,201-202     
  settings.ts      |   91.27 |    92.64 |      90 |   91.27 | ...1030,1032-1033 
  ...ingsSchema.ts |     100 |      100 |     100 |     100 |                   
  ...ngsWatcher.ts |   95.54 |    88.34 |     100 |   95.54 | ...28,277-278,293 
  ...d-env-keys.ts |     100 |      100 |     100 |     100 |                   
  ...l-settings.ts |     100 |      100 |     100 |     100 |                   
  ...paths-lite.ts |   89.47 |       88 |     100 |   89.47 | 43-44,53-54,56-57 
  ...precedence.ts |   98.79 |     92.3 |     100 |   98.79 | 62                
  ...tedFolders.ts |   92.53 |     93.4 |     100 |   92.53 | ...36-337,373-384 
 ...nfig/migration |   95.23 |    77.77 |   83.33 |   95.23 |                   
  index.ts         |   95.65 |     87.5 |     100 |   95.65 | 117-118           
  scheduler.ts     |   96.55 |    77.77 |     100 |   96.55 | 19-20             
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...ation/versions |   94.91 |      100 |     100 |   94.91 |                   
  ...-v2-shared.ts |     100 |      100 |     100 |     100 |                   
  v1-to-v2.ts      |   81.75 |      100 |     100 |   81.75 | ...28-229,231-247 
  v2-to-v3.ts      |     100 |      100 |     100 |     100 |                   
  v3-to-v4.ts      |     100 |      100 |     100 |     100 |                   
  v5-to-v4.ts      |      96 |      100 |     100 |      96 | 94-95,99          
 src/core          |     100 |      100 |     100 |     100 |                   
  auth.ts          |     100 |      100 |     100 |     100 |                   
  initializer.ts   |     100 |      100 |     100 |     100 |                   
  theme.ts         |     100 |      100 |     100 |     100 |                   
 src/dualOutput    |    71.8 |    70.31 |   66.66 |    71.8 |                   
  ...tputBridge.ts |   71.95 |    70.96 |   68.42 |   71.95 | ...08-409,417-420 
  ...utContext.tsx |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-8               
 src/export        |       0 |        0 |       0 |       0 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-7               
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 src/hooks         |     100 |      100 |     100 |     100 |                   
  ...elete-hook.ts |     100 |      100 |     100 |     100 |                   
 src/i18n          |   85.98 |    81.92 |   89.65 |   85.98 |                   
  index.ts         |   73.45 |    77.77 |      90 |   73.45 | ...70-271,294-299 
  languages.ts     |   93.07 |     92.3 |   85.71 |   93.07 | ...35,164-169,184 
  ...nslateKeys.ts |     100 |      100 |     100 |     100 |                   
  ...lationDict.ts |   93.33 |    66.66 |     100 |   93.33 | 15                
 src/i18n/locales  |     100 |      100 |     100 |     100 |                   
  ca.js            |     100 |      100 |     100 |     100 |                   
  de.js            |     100 |      100 |     100 |     100 |                   
  en.js            |     100 |      100 |     100 |     100 |                   
  fr.js            |     100 |      100 |     100 |     100 |                   
  ja.js            |     100 |      100 |     100 |     100 |                   
  pt.js            |     100 |      100 |     100 |     100 |                   
  ru.js            |     100 |      100 |     100 |     100 |                   
  zh-TW.js         |     100 |      100 |     100 |     100 |                   
  zh.js            |     100 |      100 |     100 |     100 |                   
 ...nonInteractive |   80.98 |    77.27 |   84.12 |   80.98 |                   
  session.ts       |   84.97 |    76.31 |   96.07 |   84.97 | ...1048,1057-1067 
  types.ts         |    42.5 |      100 |   33.33 |    42.5 | ...31-632,635-636 
 ...active/control |   75.54 |    89.83 |      80 |   75.54 |                   
  ...rolContext.ts |    6.06 |        0 |       0 |    6.06 | 57-99             
  ...Dispatcher.ts |   91.95 |    92.98 |   88.88 |   91.95 | ...54-372,392,395 
  ...rolService.ts |    6.89 |        0 |       0 |    6.89 | 46-188            
 ...ol/controllers |   45.95 |    69.03 |   55.26 |   45.95 |                   
  ...Controller.ts |    42.4 |      100 |   83.33 |    42.4 | 101-105,140-223   
  ...Controller.ts |       0 |        0 |       0 |       0 | 1-56              
  ...Controller.ts |   55.01 |    67.14 |   58.33 |   55.01 | ...15-624,639-644 
  ...Controller.ts |   49.23 |       60 |      50 |   49.23 | ...07-108,111-121 
  ...Controller.ts |   40.64 |    68.11 |   46.66 |   40.64 | ...72-684,693-722 
 .../control/types |       0 |        0 |       0 |       0 |                   
  serviceAPIs.ts   |       0 |        0 |       0 |       0 | 1                 
 ...Interactive/io |    98.1 |    94.13 |   95.23 |    98.1 |                   
  ...putAdapter.ts |   97.98 |     93.2 |   98.07 |   97.98 | ...1415,1431-1432 
  ...putAdapter.ts |      96 |    91.66 |   85.71 |      96 | 51-52             
  ...nputReader.ts |     100 |    94.73 |     100 |     100 | 67                
  ...putAdapter.ts |   98.49 |      100 |   90.47 |   98.49 | 85-86,126-127     
  index.ts         |     100 |      100 |     100 |     100 |                   
 src/patches       |       0 |        0 |       0 |       0 |                   
  is-in-ci.ts      |       0 |        0 |       0 |       0 | 1-17              
 src/remoteInput   |   87.31 |    75.32 |   88.23 |   87.31 |                   
  ...utContext.tsx |     100 |      100 |     100 |     100 |                   
  ...putWatcher.ts |   88.01 |       76 |   93.33 |   88.01 | ...49-350,361-364 
  index.ts         |       0 |        0 |       0 |       0 | 1-8               
 src/runtime       |   99.61 |    95.04 |     100 |   99.61 |                   
  ...livery-ipc.ts |     100 |     90.9 |     100 |     100 | 94,106,134        
  ...l-delivery.ts |     100 |      100 |     100 |     100 |                   
  cpu-percent.ts   |     100 |      100 |     100 |     100 |                   
  ...erver-name.ts |     100 |      100 |     100 |     100 |                   
  ...-constants.ts |     100 |      100 |     100 |     100 |                   
  ...-summaries.ts |   86.66 |       50 |     100 |   86.66 | 11,19             
  ...ber-errors.ts |     100 |    95.32 |     100 |     100 | 53,93-94,172,192  
  ...ls-mapping.ts |     100 |      100 |     100 |     100 |                   
 src/serve         |   87.53 |    83.78 |   90.47 |   87.53 |                   
  ...tp-enabled.ts |     100 |      100 |     100 |     100 |                   
  ...ion-bridge.ts |     100 |      100 |     100 |     100 |                   
  auth.ts          |   93.43 |    93.05 |     100 |   93.43 | ...20-321,324-326 
  ...em-adapter.ts |     100 |      100 |     100 |     100 |                   
  capabilities.ts  |     100 |    98.07 |     100 |     100 | 682               
  ...cp-command.ts |     100 |      100 |     100 |     100 |                   
  ...horization.ts |   92.79 |    93.33 |    87.5 |   92.79 | 75-80,135-136     
  ...op-mcp-ipc.ts |   81.06 |    73.68 |   94.11 |   81.06 | ...37-242,267,289 
  ...nt-service.ts |    94.1 |    86.89 |     100 |    94.1 | ...75-477,484,486 
  ...-selection.ts |     100 |      100 |     100 |     100 |                   
  ...ings-store.ts |   88.59 |    93.68 |   96.29 |   88.59 | ...95-207,451-454 
  ...ebhook-ipc.ts |    98.5 |    86.66 |     100 |    98.5 | 47                
  ...iagnostics.ts |     100 |      100 |     100 |     100 |                   
  ...worker-env.ts |     100 |      100 |     100 |     100 |                   
  ...rker-group.ts |   87.27 |     85.2 |     100 |   87.27 | ...10,816-820,838 
  ...er-manager.ts |   89.39 |    83.88 |   93.33 |   89.39 | ...98,711,722-724 
  ...tartup-ipc.ts |   97.72 |    96.66 |     100 |   97.72 | 88-89             
  ...supervisor.ts |   92.42 |    84.44 |    97.1 |   92.42 | ...1466,1520-1524 
  ...e-grouping.ts |     100 |    94.28 |     100 |     100 | 71,137            
  core-runtime.ts  |     100 |      100 |     100 |     100 |                   
  ...ub-session.ts |    90.1 |    77.83 |   94.73 |    90.1 | ...1014,1021-1026 
  daemon-logger.ts |    82.2 |    77.42 |   91.76 |    82.2 | ...1720,1747-1753 
  ...y-pressure.ts |     100 |    96.96 |     100 |     100 | 135               
  ...trics-ring.ts |     100 |      100 |     100 |     100 |                   
  ...s-provider.ts |   68.04 |    52.77 |     100 |   68.04 | ...44-249,282-290 
  daemon-status.ts |   98.57 |     90.8 |     100 |   98.57 | ...1411,1413-1414 
  debug-mode.ts    |     100 |      100 |     100 |     100 |                   
  env-snapshot.ts  |   93.37 |    85.18 |     100 |   93.37 | 114-117,195-202   
  ...-scheduler.ts |   87.34 |    83.87 |     100 |   87.34 | 33-36,48-50,79-81 
  ...d-provider.ts |   92.06 |    86.95 |     100 |   92.06 | ...72,287-293,316 
  ...-path-argv.ts |     100 |      100 |     100 |     100 |                   
  ...h-settings.ts |   94.94 |    90.41 |     100 |   94.94 | ...30,708,724,734 
  fast-path.ts     |   90.99 |    81.38 |   95.45 |   90.99 | ...33-542,608-609 
  ...ration-sse.ts |   42.55 |    33.33 |     100 |   42.55 | 23-24,30,33-56    
  health-query.ts  |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-144             
  ...e-observer.ts |   89.89 |    83.24 |      96 |   89.89 | ...11-512,541-543 
  ...back-binds.ts |     100 |    88.88 |     100 |     100 | 32                
  ...-workspace.ts |    90.9 |    85.71 |     100 |    90.9 | ...30-131,142-143 
  ...iders-edit.ts |     100 |    82.14 |     100 |     100 | 58-60,65,81       
  ...ory-picker.ts |     100 |    86.95 |     100 |     100 | 36,66,92          
  ...sion-audit.ts |     100 |      100 |   93.33 |     100 |                   
  rate-limit.ts    |   92.68 |    88.29 |     100 |   92.68 | ...89-291,303-305 
  ...qwen-serve.ts |   84.02 |    80.02 |   75.43 |   84.02 | ...7465,7471-7472 
  ...tup-errors.ts |     100 |      100 |     100 |     100 |                   
  ...-keepalive.ts |   94.22 |    87.96 |     100 |   94.22 | ...27,531-532,572 
  ...-lifecycle.ts |     100 |      100 |     100 |     100 |                   
  server.ts        |   90.59 |    91.18 |   71.81 |   90.59 | ...2720,2734-2738 
  ...-admission.ts |   98.24 |    94.73 |     100 |   98.24 | 79-80,303-304     
  ...on-helpers.ts |     100 |      100 |     100 |     100 |                   
  ...t-event-id.ts |     100 |    95.23 |     100 |     100 | 12                
  ...-admission.ts |   98.71 |    89.65 |     100 |   98.71 | 68                
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...ion-limits.ts |     100 |      100 |     100 |     100 |                   
  ...t-sessions.ts |    93.3 |    76.83 |     100 |    93.3 | ...20,823,836-838 
  ...l-resolver.ts |   90.32 |    66.66 |     100 |   90.32 | 16,45-46          
  ...ell-static.ts |   92.18 |    88.37 |     100 |   92.18 | ...21-224,267-270 
  ...ace-agents.ts |   66.13 |    70.57 |   92.68 |   66.13 | ...2246,2256-2266 
  ...generation.ts |    95.4 |    82.35 |   66.66 |    95.4 | 55-56,78,92       
  ...-git-state.ts |     100 |    91.93 |    90.9 |     100 | 161,172,202,265   
  ...ace-inputs.ts |     100 |      100 |     100 |     100 |                   
  ...ace-memory.ts |      83 |    74.54 |     100 |      83 | ...30-537,597-604 
  ...ers-status.ts |   98.04 |    78.89 |     100 |   98.04 | ...81,184,191,199 
  ...tion-store.ts |   89.67 |    88.27 |   92.59 |   89.67 | ...91-400,411-414 
  ...e-registry.ts |   93.89 |     87.5 |     100 |   93.89 | ...18-519,525-526 
  ...e-remember.ts |   98.23 |    92.51 |     100 |   98.23 | ...36,340-345,386 
  ...te-runtime.ts |   83.98 |    90.29 |     100 |   83.98 | ...48-156,216-237 
  ...me-storage.ts |     100 |      100 |     100 |     100 |                   
  ...management.ts |   72.63 |    72.72 |      96 |   72.63 | ...88-889,896-900 
  ...lls-status.ts |     100 |    95.45 |     100 |     100 | 152               
  ...reconciler.ts |   91.63 |    84.09 |     100 |   91.63 | ...71-273,306-307 
 ...serve/acp-http |   78.29 |    80.16 |    93.1 |   78.29 |                   
  ...r-registry.ts |   96.92 |    94.87 |     100 |   96.92 | 184-187           
  client-mcp-ws.ts |   54.85 |    58.62 |   72.72 |   54.85 | ...99-300,304-305 
  ...n-registry.ts |    98.2 |    88.55 |     100 |    98.2 | 1015,1041-1052    
  dispatch.ts      |   73.94 |    78.01 |   94.23 |   73.94 | ...5256,5304-5310 
  index.ts         |   82.23 |    80.11 |   91.07 |   82.23 | ...2341,2425-2426 
  json-rpc.ts      |     100 |    96.96 |     100 |     100 | 92                
  safe-ws-send.ts  |   52.94 |    71.42 |     100 |   52.94 | 33-42,47-55       
  sse-stream.ts    |   93.96 |    88.57 |   84.61 |   93.96 | ...57-159,161-163 
  ...ort-stream.ts |       0 |        0 |       0 |       0 | 1                 
  ws-stream.ts     |   91.86 |       80 |     100 |   91.86 | 45,50,96,100-103  
 src/serve/auth    |   86.86 |     79.7 |   93.87 |   86.86 |                   
  device-flow.ts   |   96.35 |    80.57 |   97.61 |   96.35 | ...1358,1453,1519 
  ...w-provider.ts |   44.24 |    74.07 |   71.42 |   44.24 | ...23-284,297,301 
 ...rve/cdp-tunnel |   87.73 |    76.21 |    97.5 |   87.73 |                   
  ...r-emulator.ts |   93.27 |    77.77 |     100 |   93.27 | ...53-256,282-283 
  ...verse-link.ts |      88 |    76.19 |     100 |      88 | ...28-329,420-423 
  ...l-registry.ts |     100 |      100 |     100 |     100 |                   
  cdp-ws.ts        |   76.28 |    61.29 |    87.5 |   76.28 | ...13-217,223-228 
 ...nel/acceptance |    6.12 |    57.89 |   46.15 |    6.12 |                   
  ...helpers.d.mts |       0 |        0 |       0 |       0 | 1                 
  ...e-helpers.mjs |   97.64 |    70.96 |     100 |   97.64 | 22-23             
  ...mcp-smoke.mjs |       0 |        0 |       0 |       0 | 1-124             
  ...cceptance.mjs |       0 |        0 |       0 |       0 | 1-473             
  ...re-server.mjs |       0 |        0 |       0 |       0 | 1-59              
  ...ols-smoke.mjs |       0 |        0 |       0 |       0 | 1-268             
  real-tab.mjs     |       0 |        0 |       0 |       0 | 1-218             
  ...al-chrome.mjs |       0 |        0 |       0 |       0 | 1-223             
 src/serve/fs      |   86.46 |    81.42 |     100 |   86.46 |                   
  audit.ts         |     100 |    96.15 |     100 |     100 | 204               
  errors.ts        |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...x-registry.ts |     100 |      100 |     100 |     100 |                   
  paths.ts         |   77.64 |    74.21 |     100 |   77.64 | ...65,594-598,611 
  policy.ts        |   90.42 |    89.18 |     100 |   90.42 | 161-169           
  text-cursor.ts   |   88.23 |       90 |     100 |   88.23 | 74-77,92-95       
  ...ile-system.ts |   86.27 |    80.56 |     100 |   86.27 | ...2699,2709-2710 
 src/serve/live    |   78.01 |    69.52 |   90.61 |   78.01 |                   
  ...en-context.ts |   95.74 |    81.25 |     100 |   95.74 | ...0,66-67,99-100 
  ...-workspace.ts |   88.63 |    82.53 |     100 |   88.63 | ...40-241,253-254 
  discovery.ts     |   85.77 |    76.92 |      90 |   85.77 | ...49-250,255-256 
  ...structions.ts |     100 |      100 |     100 |     100 |                   
  ...oordinator.ts |   82.67 |    76.75 |   97.01 |   82.67 | ...1319,1351-1353 
  ...-installer.ts |    64.3 |    82.35 |   80.76 |    64.3 | ...45-446,460-472 
  ...oordinator.ts |   75.99 |    65.18 |   85.71 |   75.99 | ...1883,1974-1975 
  ...controller.ts |   67.82 |    79.31 |   72.72 |   67.82 | ...66-278,287-295 
  ...ak-to-user.ts |   96.66 |      100 |   83.33 |   96.66 | 37-38             
  ...sk-service.ts |    86.3 |    59.78 |   93.33 |    86.3 | ...1160,1184-1191 
  ...task-tools.ts |      99 |      100 |   85.71 |      99 | 205-206           
  ...redentials.ts |   96.26 |    93.47 |     100 |   96.26 | 91-94             
  ...me-session.ts |   65.63 |    57.24 |   88.88 |   65.63 | ...2270,2275-2282 
  ...up-context.ts |   94.83 |    77.58 |     100 |   94.83 | ...18,327-330,350 
  ...ion-source.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/serve/routes  |   85.63 |    80.11 |   94.74 |   85.63 |                   
  a2ui-action.ts   |   96.84 |     88.5 |    87.5 |   96.84 | ...70-272,309-311 
  capabilities.ts  |     100 |      100 |     100 |     100 |                   
  ...nel-notify.ts |   86.45 |       88 |     100 |   86.45 | ...,83-87,103-104 
  ...l-webhooks.ts |   93.56 |    84.09 |     100 |   93.56 | ...42,292,332,334 
  daemon-status.ts |   85.71 |    83.33 |     100 |   85.71 | 101-108           
  goals.ts         |   98.92 |     90.9 |     100 |   98.92 | 146               
  health.ts        |   99.09 |    91.17 |     100 |   99.09 | 147               
  live-setup.ts    |   33.33 |     37.5 |      50 |   33.33 | ...18-123,130-135 
  live.ts          |    82.4 |    71.42 |     100 |    82.4 | ...-94,96-101,121 
  permission.ts    |     100 |     92.3 |     100 |     100 | 50,98             
  ...uled-tasks.ts |   87.29 |    82.94 |   92.59 |   87.29 | ...1275,1318-1319 
  ...on-runtime.ts |     100 |    90.47 |     100 |     100 | 58,94             
  session.ts       |   85.86 |    82.21 |   91.42 |   85.86 | ...4967,4969-4970 
  sse-events.ts    |   86.82 |    85.71 |   94.11 |   86.82 | ...16-927,930,937 
  usage-stats.ts   |     100 |    95.45 |     100 |     100 | 118               
  ...space-auth.ts |   85.55 |    75.64 |     100 |   85.55 | ...21-326,331,345 
  ...el-control.ts |   86.26 |    78.94 |     100 |   86.26 | ...17-318,339-347 
  ...management.ts |   90.92 |    79.69 |     100 |   90.92 | ...81-482,501-502 
  ...d-contacts.ts |     100 |      100 |     100 |     100 |                   
  ...controller.ts |   83.11 |    79.31 |      90 |   83.11 | ...1033,1039,1042 
  ...extensions.ts |   88.15 |    74.95 |   92.98 |   88.15 | ...2027,2072-2073 
  ...-file-read.ts |      91 |    80.91 |     100 |      91 | ...20-621,624-625 
  ...file-write.ts |   84.44 |    64.51 |     100 |   84.44 | ...73-275,355-357 
  ...t-branches.ts |   75.43 |    66.66 |     100 |   75.43 | ...13-618,627-634 
  ...e-git-diff.ts |   97.32 |    90.56 |     100 |   97.32 | 161-162,189-191   
  ...ce-git-log.ts |     100 |    93.18 |     100 |     100 | 52,77,188         
  workspace-git.ts |   77.08 |    89.65 |     100 |   77.08 | 97-118            
  ...github-prs.ts |   88.26 |    63.46 |     100 |   88.26 | ...38-239,264-265 
  ...-lifecycle.ts |   95.23 |    75.75 |     100 |   95.23 | ...50-151,186-187 
  ...management.ts |   87.41 |    84.13 |     100 |   87.41 | ...1660,1680-1685 
  ...cp-control.ts |    73.2 |    67.54 |   85.71 |    73.2 | ...27-633,644-645 
  ...ace-models.ts |   95.53 |    89.74 |     100 |   95.53 | ...52-157,296-297 
  ...ermissions.ts |    77.9 |    72.41 |     100 |    77.9 | ...69-277,298-316 
  ...e-settings.ts |   75.08 |    72.99 |     100 |   75.08 | ...80-691,697-698 
  ...tup-github.ts |   77.97 |    70.58 |   84.21 |   77.97 | ...46-352,397-398 
  ...ace-skills.ts |    76.9 |    87.15 |     100 |    76.9 | ...29-354,360-394 
  ...ace-status.ts |   82.94 |     74.5 |     100 |   82.94 | ...84-486,490-491 
  ...pace-tools.ts |   75.94 |    69.69 |   66.66 |   75.94 | ...59-164,193-194 
  ...pace-trust.ts |   78.92 |    66.21 |      80 |   78.92 | ...38-343,351-352 
  ...pace-voice.ts |   91.33 |    80.92 |     100 |   91.33 | ...70-673,676-678 
 src/serve/server  |   91.81 |    88.97 |   96.85 |   91.81 |                   
  access-log.ts    |   98.68 |     97.1 |     100 |   98.68 | 115,186           
  ...er-helpers.ts |   63.82 |    77.96 |   81.81 |   63.82 | ...16,330,332-347 
  ...w-registry.ts |    98.8 |    81.81 |     100 |    98.8 | 107               
  ...r-handlers.ts |   97.29 |       75 |     100 |   97.29 | 17                
  ...r-response.ts |   86.54 |    72.63 |     100 |   86.54 | ...49,766,829-838 
  fs-factory.ts    |     100 |    94.54 |     100 |     100 | 42,103,159        
  ...branch-ops.ts |     100 |      100 |     100 |     100 |                   
  ...list-cache.ts |   98.58 |    94.87 |     100 |   98.58 | 156-157           
  ...t-deadline.ts |     100 |      100 |     100 |     100 |                   
  ...iter-setup.ts |      65 |    73.33 |   33.33 |      65 | 30-35,38-43,47-48 
  ...st-helpers.ts |   95.13 |    95.09 |     100 |   95.13 | ...66-168,423-428 
  self-origin.ts   |   76.19 |       80 |     100 |   76.19 | 45-54             
  ...e-features.ts |      95 |     87.5 |     100 |      95 | 182-188           
  ...on-archive.ts |   89.55 |    87.72 |   97.14 |   89.55 | ...32-836,888-889 
  ...ion-export.ts |     100 |    94.44 |     100 |     100 | 64                
  session-list.ts  |    97.1 |     92.5 |     100 |    97.1 | ...95,798-804,964 
  telemetry.ts     |   99.04 |    97.43 |     100 |   99.04 | ...37,651,793-795 
 src/serve/voice   |    92.7 |    91.48 |   97.67 |    92.7 |                   
  ...ice-config.ts |   84.81 |       30 |     100 |   84.81 | 91-100,104-105    
  voice-ws.ts      |   91.58 |    93.44 |      96 |   91.58 | ...68,483,521-523 
  ...oordinator.ts |     100 |    98.21 |     100 |     100 | 176               
 ...kspace-service |   90.65 |    87.73 |   91.11 |   90.65 |                   
  index.ts         |   90.13 |    87.04 |   89.74 |   90.13 | ...1464-1468,1471 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/services      |   92.49 |    89.25 |      98 |   92.49 |                   
  ...mandLoader.ts |     100 |    88.88 |     100 |     100 | 105-118           
  ...killLoader.ts |   97.19 |    85.29 |     100 |   97.19 | 142,153-154       
  ...andService.ts |   98.73 |      100 |     100 |   98.73 | 107               
  ...mandLoader.ts |   87.09 |    83.07 |     100 |   87.09 | ...35-340,345-350 
  ...omptLoader.ts |   79.55 |    88.29 |   83.33 |   79.55 | ...48,178,245-246 
  ...mandLoader.ts |   97.77 |    92.15 |     100 |   97.77 | 176,183-184       
  ...nd-factory.ts |   91.42 |    91.66 |     100 |   91.42 | 128,137-144       
  ...ation-tool.ts |     100 |    95.45 |     100 |     100 | 125               
  ...ndMetadata.ts |   98.23 |    96.72 |     100 |   98.23 | 83,87             
  commandUtils.ts  |      96 |     90.9 |     100 |      96 | 48                
  ...and-parser.ts |   90.69 |    85.71 |     100 |   90.69 | 63-66             
  ...ionService.ts |     100 |      100 |     100 |     100 |                   
  prompt-stash.ts  |   96.66 |    92.85 |     100 |   96.66 | 34-35             
  ...tree-lease.ts |   88.23 |    86.48 |     100 |   88.23 | ...94-199,232-233 
  ...low-loader.ts |     100 |    96.15 |     100 |     100 | 88                
  setup-github.ts  |    90.8 |    80.95 |     100 |    90.8 | ...49-450,457-458 
  ...-args-file.ts |   93.93 |    91.66 |    87.5 |   93.93 | 208-210,224-230   
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...e-keyterms.ts |   98.64 |    95.77 |     100 |   98.64 | 116,142-143       
  voice-model.ts   |     100 |      100 |     100 |     100 |                   
  voice-service.ts |    90.4 |    87.87 |     100 |    90.4 | ...81,288,353-358 
  ...e-settings.ts |     100 |    95.23 |     100 |     100 | 19                
  ...ranscriber.ts |   91.77 |    87.11 |   97.22 |   91.77 | ...99-901,904-906 
 ...rvices/insight |     100 |      100 |     100 |     100 |                   
  dates.ts         |     100 |      100 |     100 |     100 |                   
 ...ght/generators |   88.91 |     86.8 |   96.15 |   88.91 |                   
  DataProcessor.ts |   88.28 |    86.77 |   94.73 |   88.28 | ...1362,1366-1373 
  ...tGenerator.ts |   98.24 |    85.71 |     100 |   98.24 | 47                
  ...teRenderer.ts |     100 |      100 |     100 |     100 |                   
 .../insight/types |       0 |       50 |      50 |       0 |                   
  ...sightTypes.ts |       0 |        0 |       0 |       0 |                   
  ...sightTypes.ts |       0 |        0 |       0 |       0 | 1                 
 ...mpt-processors |   97.27 |    94.04 |     100 |   97.27 |                   
  ...tProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...eProcessor.ts |   94.52 |    84.21 |     100 |   94.52 | 46-47,93-94       
  ...tionParser.ts |     100 |      100 |     100 |     100 |                   
  ...lProcessor.ts |   97.41 |    95.65 |     100 |   97.41 | 96-99             
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/services/tips |   97.27 |    84.61 |     100 |   97.27 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  tipHistory.ts    |   92.59 |       70 |     100 |   92.59 | ...24,146,153,162 
  tipRegistry.ts   |     100 |      100 |     100 |     100 |                   
  tipScheduler.ts  |     100 |    91.66 |     100 |     100 | 55                
 src/startup       |   88.99 |    83.47 |    90.9 |   88.99 |                   
  ...p-prefetch.ts |   98.09 |    94.23 |    87.5 |   98.09 | 50,209,225-226    
  ...reeStartup.ts |   80.53 |     74.6 |     100 |   80.53 | ...94,403,409-412 
 src/test-utils    |   94.09 |    79.16 |   77.77 |   94.09 |                   
  ci-env.ts        |      88 |     62.5 |     100 |      88 | 22-23,28          
  ...omMatchers.ts |   69.69 |       50 |      50 |   69.69 | 32-35,37-39,45-47 
  ...mised-lock.ts |     100 |      100 |   66.66 |     100 |                   
  ...andContext.ts |     100 |      100 |     100 |     100 |                   
  render.tsx       |     100 |      100 |     100 |     100 |                   
 src/ui            |   73.15 |    75.52 |   67.03 |   73.15 |                   
  App.tsx          |   33.33 |       75 |   33.33 |   33.33 | 32-86             
  AppContainer.tsx |   74.35 |    72.04 |   68.57 |   74.35 | ...4181,4297-4303 
  ...tionNudge.tsx |    9.58 |      100 |       0 |    9.58 | 24-94             
  ...ackDialog.tsx |    30.3 |      100 |       0 |    30.3 | 26-76             
  ...tionNudge.tsx |    7.69 |      100 |       0 |    7.69 | 25-103            
  colors.ts        |      60 |      100 |   35.29 |      60 | ...52,54-55,60-61 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  keyMatchers.ts   |   95.91 |    97.14 |     100 |   95.91 | 25-26             
  ...tic-colors.ts |     100 |      100 |     100 |     100 |                   
  ...ractiveUI.tsx |   70.51 |       74 |    62.5 |   70.51 | ...12,339,392-397 
  ...inePresets.ts |   96.27 |    83.87 |     100 |   96.27 | ...97,402,410-412 
  textConstants.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/auth       |   58.53 |    66.18 |   51.06 |   58.53 |                   
  AuthDialog.tsx   |   59.01 |     42.1 |   16.66 |   59.01 | ...25,332-354,358 
  ...nProgress.tsx |       0 |        0 |       0 |       0 | 1-64              
  ...etupSteps.tsx |   60.21 |    70.73 |   57.69 |   60.21 | ...90,794,803,806 
  useAuth.ts       |    94.6 |    73.52 |     100 |    94.6 | ...21-222,241-247 
  ...rSetupFlow.ts |   43.18 |    33.33 |      50 |   43.18 | ...78-399,416-459 
 src/ui/commands   |   82.73 |    83.24 |   89.17 |   82.73 |                   
  aboutCommand.ts  |     100 |      100 |     100 |     100 |                   
  agentsCommand.ts |   83.78 |      100 |      60 |   83.78 | 30-32,42-44       
  ...odeCommand.ts |    93.1 |    95.23 |     100 |    93.1 | 77-82             
  arenaCommand.ts  |   63.89 |    65.71 |   65.21 |   63.89 | ...01-606,691-699 
  authCommand.ts   |     100 |      100 |     100 |     100 |                   
  branchCommand.ts |     100 |      100 |     100 |     100 |                   
  btwCommand.ts    |   94.32 |    77.41 |     100 |   94.32 | 35-36,114-119     
  bugCommand.ts    |     100 |    77.77 |     100 |     100 | 27,61             
  cdCommand.ts     |    92.3 |    82.75 |     100 |    92.3 | ...,94-99,178,187 
  clearCommand.ts  |    80.9 |    70.83 |     100 |    80.9 | ...28-129,137-146 
  ...essCommand.ts |   68.06 |    54.05 |      75 |   68.06 | ...96-197,211-214 
  ...astCommand.ts |   84.17 |       75 |     100 |   84.17 | ...,91-97,125-130 
  ...ig-command.ts |   93.12 |    88.42 |     100 |   93.12 | ...07-315,321-323 
  ...extCommand.ts |   69.07 |     72.6 |   84.61 |   69.07 | ...78-611,622-623 
  copyCommand.ts   |    98.7 |    96.29 |     100 |    98.7 | 66-67,172,272,323 
  ...or-command.ts |   85.95 |    80.55 |   88.88 |   85.95 | ...68-274,298-309 
  deleteCommand.ts |     100 |      100 |     100 |     100 |                   
  diffCommand.ts   |     100 |    87.87 |     100 |     100 | ...63,231-232,245 
  ...ryCommand.tsx |   81.64 |    87.67 |    90.9 |   81.64 | ...73-278,325-332 
  docsCommand.ts   |     100 |     90.9 |     100 |     100 | 25                
  doctorCommand.ts |   65.37 |    81.88 |   94.11 |   65.37 | ...85-535,538-672 
  dreamCommand.ts  |   85.45 |    88.88 |     100 |   85.45 | 58-65             
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...rt-command.ts |   84.31 |    86.95 |     100 |   84.31 | ...0,75-78,99-104 
  effort-utils.ts  |     100 |      100 |     100 |     100 |                   
  exportCommand.ts |   98.25 |    91.02 |     100 |   98.25 | ...81,198-199,364 
  ...onsCommand.ts |   52.31 |    56.25 |   69.23 |   52.31 | ...09,277-329,390 
  forgetCommand.ts |     100 |       90 |     100 |     100 | 59                
  forkCommand.ts   |     100 |    94.11 |     100 |     100 | 96,147            
  goalCommand.ts   |   72.81 |    86.84 |   66.66 |   72.81 | ...63-168,277-280 
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  ...oryCommand.ts |     100 |      100 |     100 |     100 |                   
  hooksCommand.ts  |   81.13 |    65.71 |   85.71 |   81.13 | ...,86-93,131-132 
  ideCommand.ts    |   60.75 |    64.28 |   41.17 |   60.75 | ...05-306,310-324 
  ...figCommand.ts |   52.83 |    81.25 |      70 |   52.83 | ...74-319,321-330 
  initCommand.ts   |   91.86 |       80 |     100 |   91.86 | 48,83-88          
  ...ghtCommand.ts |   77.87 |    71.42 |     100 |   77.87 | ...44-245,250-272 
  ...ageCommand.ts |   94.44 |    90.14 |     100 |   94.44 | ...13-214,241-251 
  learn-command.ts |     100 |      100 |     100 |     100 |                   
  lspCommand.ts    |     100 |    86.95 |     100 |     100 | 31,101-102        
  mcpCommand.ts    |     100 |      100 |     100 |     100 |                   
  memoryCommand.ts |     100 |      100 |     100 |     100 |                   
  modelCommand.ts  |   84.78 |    82.47 |     100 |   84.78 | ...1071,1105-1110 
  ...onsCommand.ts |     100 |      100 |     100 |     100 |                   
  planCommand.ts   |   78.82 |    76.92 |     100 |   78.82 | 30-35,51-56,68-73 
  quitCommand.ts   |     100 |      100 |     100 |     100 |                   
  recapCommand.ts  |   21.81 |      100 |      50 |   21.81 | 24-73             
  ...ns-command.ts |   98.83 |    81.81 |     100 |   98.83 | 100               
  ...berCommand.ts |     100 |     87.5 |     100 |     100 | 46                
  renameCommand.ts |   89.06 |    88.37 |     100 |   89.06 | ...72-176,202-209 
  ...oreCommand.ts |   90.96 |    86.04 |     100 |   90.96 | ...41-146,177-178 
  resumeCommand.ts |     100 |      100 |     100 |     100 |                   
  rewindCommand.ts |   81.25 |      100 |      50 |   81.25 | 20-22             
  ...ngsCommand.ts |     100 |      100 |     100 |     100 |                   
  ...hubCommand.ts |   89.47 |       75 |      80 |   89.47 | 54-59             
  skillsCommand.ts |   78.82 |    81.81 |     100 |   78.82 | 37-52,78,97       
  statsCommand.ts  |   90.65 |    76.73 |     100 |   90.65 | ...30-733,825-832 
  ...ineCommand.ts |     100 |      100 |     100 |     100 |                   
  ...aryCommand.ts |   73.04 |     82.3 |      90 |   73.04 | ...20-547,561-565 
  tasksCommand.ts  |   77.22 |    72.13 |     100 |   77.22 | ...46-150,172-177 
  ...tupCommand.ts |     100 |      100 |     100 |     100 |                   
  themeCommand.ts  |     100 |      100 |     100 |     100 |                   
  toolsCommand.ts  |     100 |      100 |     100 |     100 |                   
  trustCommand.ts  |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...te-command.ts |     100 |    94.11 |     100 |     100 | 74,148            
  vimCommand.ts    |   54.54 |      100 |      50 |   54.54 | 19-29             
  voice-command.ts |   93.57 |       88 |     100 |   93.57 | 35,97-102         
  ...owsCommand.ts |   92.92 |       85 |   66.66 |   92.92 | ...72-177,276-281 
 src/ui/components |   71.73 |    79.32 |   79.85 |   71.73 |                   
  AboutBox.tsx     |     100 |      100 |     100 |     100 |                   
  AnsiOutput.tsx   |   65.57 |      100 |      50 |   65.57 | 69-90             
  ApiKeyInput.tsx  |       0 |        0 |       0 |       0 | 1-97              
  AppHeader.tsx    |    88.7 |       75 |     100 |    88.7 | 36,38-43,45       
  ...odeDialog.tsx |   87.24 |    72.22 |   33.33 |   87.24 | ...85,233-238,245 
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  ...Indicator.tsx |   95.65 |    66.66 |     100 |   95.65 | 27,52             
  ...TextInput.tsx |   88.65 |    90.41 |     100 |   88.65 | ...84-286,300-302 
  Composer.tsx     |   94.49 |    66.66 |     100 |   94.49 | ...-72,84,139,153 
  ...entPrompt.tsx |     100 |      100 |     100 |     100 |                   
  ...ryDisplay.tsx |   75.89 |    62.06 |     100 |   75.89 | ...,88,93-108,113 
  ...geDisplay.tsx |   68.42 |    57.14 |     100 |   68.42 | 16-17,31-32,42-50 
  CronPill.tsx     |     100 |    93.75 |     100 |     100 | 19                
  ...ification.tsx |      84 |       60 |     100 |      84 | 23-24,40-42       
  ...gProfiler.tsx |       0 |        0 |       0 |       0 | 1-36              
  ...ogManager.tsx |       0 |        0 |       0 |       0 | 1-598             
  DiffDialog.tsx   |    53.5 |     37.5 |   69.23 |    53.5 | ...32-737,747-760 
  ...ngsDialog.tsx |       0 |        0 |       0 |       0 | 1-195             
  EffortDialog.tsx |   97.36 |      100 |     100 |   97.36 | 55-56             
  ExitWarning.tsx  |     100 |      100 |     100 |     100 |                   
  ...hProgress.tsx |    87.8 |    33.33 |     100 |    87.8 | 28-31,56          
  ...ustDialog.tsx |     100 |      100 |     100 |     100 |                   
  Footer.tsx       |   81.19 |    69.23 |      50 |   81.19 | ...02,240,262-267 
  ...ngSpinner.tsx |   68.42 |    85.71 |      50 |   68.42 | 35-52,73,80-81    
  GoalPill.tsx     |   93.51 |    81.81 |     100 |   93.51 | 37-38,106-109,123 
  Header.tsx       |   98.65 |    94.73 |     100 |   98.65 | 173,175           
  Help.tsx         |   98.33 |       90 |     100 |   98.33 | ...25,382,448-449 
  ...emDisplay.tsx |   79.28 |    66.99 |     100 |   79.28 | ...08,511,514-520 
  ...ngeDialog.tsx |     100 |      100 |     100 |     100 |                   
  InputPrompt.tsx  |   84.26 |    82.94 |      80 |   84.26 | ...2215,2236,2332 
  ...Shortcuts.tsx |     100 |       88 |     100 |     100 | 98,119            
  ...Indicator.tsx |   98.18 |    97.82 |     100 |   98.18 | 161-162           
  ...firmation.tsx |   91.42 |      100 |      50 |   91.42 | 26-31             
  MainContent.tsx  |   96.31 |    95.06 |      50 |   96.31 | ...01,464-468,471 
  MemoryDialog.tsx |   86.59 |    80.15 |     100 |   86.59 | ...34-435,485,553 
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-41              
  ModelDialog.tsx  |   81.95 |    71.27 |     100 |   81.95 | ...1045,1050-1066 
  ...tsDisplay.tsx |     100 |    97.22 |     100 |     100 | 270               
  ...fications.tsx |       0 |        0 |       0 |       0 | 1-56              
  ...onsDialog.tsx |       0 |        0 |       0 |       0 | 1-1004            
  ...ryDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...icePrompt.tsx |   92.64 |    85.71 |     100 |   92.64 | 102-106,134-139   
  PrepareLabel.tsx |   91.66 |    77.27 |     100 |   91.66 | 73-75,77-79,110   
  ...atePrompt.tsx |       0 |        0 |       0 |       0 | 1-134             
  ...geDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...ngDisplay.tsx |       0 |        0 |       0 |       0 | 1-39              
  ...hProgress.tsx |   85.25 |    88.46 |     100 |   85.25 | 121-147           
  ...dSelector.tsx |   92.79 |    82.65 |     100 |   92.79 | ...19-323,354-370 
  ...ionPicker.tsx |   83.66 |    72.13 |     100 |   83.66 | ...96,402,444-466 
  ...onPreview.tsx |   93.58 |    83.78 |     100 |   93.58 | ...,70-71,195-197 
  ...ryDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...putPrompt.tsx |   92.06 |    86.36 |   83.33 |   92.06 | ...,70-72,120-123 
  ...tedDialog.tsx |     100 |      100 |     100 |     100 |                   
  ...ngsDialog.tsx |   71.49 |    73.89 |   69.23 |   71.49 | ...1244,1250-1251 
  ...ionDialog.tsx |    92.3 |    96.15 |   33.33 |    92.3 | 60-63,68-75,164   
  ...putPrompt.tsx |    15.9 |      100 |       0 |    15.9 | 20-63             
  ...Indicator.tsx |   57.14 |      100 |       0 |   57.14 | 12-15             
  ...MoreLines.tsx |       0 |        0 |       0 |       0 | 1-40              
  ...iewDialog.tsx |   97.77 |    87.67 |     100 |   97.77 | ...97,305-307,324 
  ...tsDisplay.tsx |   95.86 |       75 |     100 |   95.86 | 67-71             
  ...ionPicker.tsx |       0 |        0 |       0 |       0 | 1-172             
  ...tivityTab.tsx |    3.94 |      100 |       0 |    3.94 | 27-275            
  StatsDialog.tsx  |    8.64 |      100 |       0 |    8.64 | ...76-111,130-322 
  StatsDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...ciencyTab.tsx |    78.9 |    56.52 |     100 |    78.9 | ...26,213,262-288 
  ...atmapView.tsx |    8.98 |      100 |       0 |    8.98 | 20-107            
  ...essionTab.tsx |      80 |    66.66 |     100 |      80 | ...70-277,283-300 
  ...ineDialog.tsx |   93.82 |    86.66 |     100 |   93.82 | ...17,279,299-301 
  ...yTodoList.tsx |   96.36 |    88.23 |     100 |   96.36 | 138-141           
  ...nsDisplay.tsx |   95.62 |    87.09 |     100 |   95.62 | ...24-125,273-275 
  ...inalImage.tsx |     100 |    93.93 |     100 |     100 | 75,129            
  ThemeDialog.tsx  |   89.95 |    46.15 |      75 |   89.95 | ...71-173,243-245 
  Tips.tsx         |   93.54 |       75 |     100 |   93.54 | 39-40             
  TodoDisplay.tsx  |     100 |      100 |     100 |     100 |                   
  ...tsDisplay.tsx |     100 |     87.5 |     100 |     100 | 31-32             
  TrustDialog.tsx  |     100 |    83.33 |     100 |     100 | 72-87             
  ...ification.tsx |   36.36 |      100 |       0 |   36.36 | 15-22             
  ...Indicator.tsx |    92.5 |     87.5 |     100 |    92.5 | 50-53             
  ...ackDialog.tsx |       0 |        0 |       0 |       0 | 1-134             
  ...xitDialog.tsx |   80.36 |    43.47 |      60 |   80.36 | ...24-238,248-251 
  ...odeVisuals.ts |   97.22 |    85.71 |     100 |   97.22 | 25                
  ...s-helpers.tsx |   66.25 |    81.25 |      50 |   66.25 | 25-32,46-53,62-72 
 ...nts/agent-view |   55.05 |    69.09 |      50 |   55.05 |                   
  ...atContent.tsx |    9.09 |      100 |       0 |    9.09 | 54-275,281-283    
  ...tChatView.tsx |   21.05 |      100 |       0 |   21.05 | 21-39             
  ...tComposer.tsx |   69.48 |    33.33 |   66.66 |   69.48 | ...51,269,277-279 
  AgentFooter.tsx  |   15.38 |      100 |       0 |   15.38 | 28-65             
  AgentHeader.tsx  |   15.38 |      100 |       0 |   15.38 | 27-64             
  AgentTabBar.tsx  |    87.9 |    63.88 |     100 |    87.9 | ...88,110-118,136 
  ...oryAdapter.ts |     100 |    91.83 |     100 |     100 | 103,109-110,138   
  index.ts         |       0 |        0 |       0 |       0 | 1-12              
 ...mponents/arena |    42.3 |    68.69 |   73.68 |    42.3 |                   
  ArenaCards.tsx   |   73.06 |    71.79 |   85.71 |   73.06 | ...83-185,321-326 
  ...ectDialog.tsx |   83.48 |    69.86 |   88.88 |   83.48 | ...88-392,409-410 
  ...artDialog.tsx |       0 |        0 |       0 |       0 | 1-166             
  ...tusDialog.tsx |       0 |        0 |       0 |       0 | 1-288             
  ...topDialog.tsx |       0 |        0 |       0 |       0 | 1-213             
 ...ackground-view |   85.34 |    84.91 |   92.98 |   85.34 |                   
  ...sksDialog.tsx |   81.87 |    82.77 |   85.71 |   81.87 | ...1853,1965-1971 
  ...TasksPill.tsx |   78.84 |    94.28 |     100 |   78.84 | 64,109-129        
  ...gentPanel.tsx |   97.08 |    86.31 |     100 |   97.08 | 132,442-446,520   
  agent-forest.ts  |    99.2 |    93.93 |     100 |    99.2 | 258               
  ...Visibility.ts |     100 |      100 |     100 |     100 |                   
  ...e-overlay.tsx |    88.2 |    76.47 |     100 |    88.2 | ...36-138,140-142 
 ...nts/extensions |   84.32 |    76.78 |   83.33 |   84.32 |                   
  ...gerDialog.tsx |   82.15 |    76.08 |     100 |   82.15 | ...91-198,258,260 
  TabBar.tsx       |   97.29 |    88.88 |     100 |   97.29 | 33                
  index.ts         |       0 |        0 |       0 |       0 | 1-12              
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...tensions/steps |   46.26 |       85 |   58.82 |   46.26 |                   
  ...ctionStep.tsx |   95.12 |    92.85 |   85.71 |   95.12 | 84-86,89          
  ...etailStep.tsx |       0 |        0 |       0 |       0 | 1-145             
  ...nListStep.tsx |   75.26 |    88.37 |   66.66 |   75.26 | ...53,174,203-209 
  ...electStep.tsx |       0 |        0 |       0 |       0 | 1-83              
  ...nfirmStep.tsx |   16.32 |      100 |       0 |   16.32 | 28-74             
  index.ts         |       0 |        0 |       0 |       0 | 1-11              
 ...xtensions/tabs |   71.92 |    68.21 |   70.83 |   71.92 |                   
  DiscoverTab.tsx  |   68.22 |    67.66 |   55.55 |   68.22 | ...93,656-660,664 
  InstalledTab.tsx |   75.49 |    67.44 |   83.33 |   75.49 | ...77,782-783,820 
  SourcesTab.tsx   |   71.67 |    70.47 |   77.77 |   71.67 | ...28,547,621-633 
 ...tensions/views |    50.7 |    52.38 |   20.83 |    50.7 |                   
  ...tionsView.tsx |   73.75 |    56.36 |   66.66 |   73.75 | ...30,353,369-374 
  ...tionsView.tsx |   43.45 |    44.82 |    6.66 |   43.45 | ...98-405,408-420 
  ...etailView.tsx |    9.24 |      100 |       0 |    9.24 | 40-67,70-163      
 ...mponents/hooks |   87.11 |    81.37 |   91.89 |   87.11 |                   
  ...rListBody.tsx |   95.29 |    85.18 |     100 |   95.29 | 95-98             
  ...etailStep.tsx |   75.32 |    71.42 |      60 |   75.32 | ...56-169,173-186 
  ...etailStep.tsx |     100 |      100 |     100 |     100 |                   
  ...rListStep.tsx |     100 |      100 |     100 |     100 |                   
  ...entHeader.tsx |     100 |    85.71 |     100 |     100 | 47                
  ...rListStep.tsx |     100 |      100 |     100 |     100 |                   
  ...etailStep.tsx |     100 |      100 |     100 |     100 |                   
  ...abledStep.tsx |     100 |      100 |     100 |     100 |                   
  ...sListStep.tsx |     100 |      100 |     100 |     100 |                   
  ...entDialog.tsx |   72.29 |    70.49 |     100 |   72.29 | ...51,563-568,572 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-13              
  ...erGrouping.ts |     100 |      100 |     100 |     100 |                   
  sourceLabels.ts  |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...components/mcp |   40.91 |    63.44 |   70.58 |   40.91 |                   
  ...ealthPill.tsx |     100 |      100 |     100 |     100 |                   
  ...entDialog.tsx |   32.09 |    26.19 |      40 |   32.09 | ...12,914,927-933 
  ...valDialog.tsx |   15.06 |      100 |       0 |   15.06 | 40-109            
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-35              
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |      97 |       95 |     100 |      97 | 24,113-114        
 ...ents/mcp/steps |   53.94 |    73.51 |   57.14 |   53.94 |                   
  ...icateStep.tsx |    5.65 |      100 |       0 |    5.65 | 40-66,69-308      
  ...electStep.tsx |   10.95 |      100 |       0 |   10.95 | 16-88             
  ...etailStep.tsx |     100 |      100 |     100 |     100 |                   
  ...eListStep.tsx |   99.09 |    97.36 |     100 |   99.09 | 71                
  ...etailStep.tsx |   62.83 |       60 |   33.33 |   62.83 | ...87-296,307-332 
  ...rListStep.tsx |   88.53 |    81.25 |     100 |   88.53 | ...64,170,175-180 
  ...etailStep.tsx |    10.3 |      100 |       0 |    10.3 | ...1,67-79,82-140 
  ToolListStep.tsx |   69.29 |       50 |     100 |   69.29 | ...23,126,135-144 
 ...nents/messages |   90.26 |    86.89 |   85.57 |   90.26 |                   
  ...ionDialog.tsx |   89.23 |     84.9 |   81.81 |   89.23 | ...75,593,611-613 
  BtwMessage.tsx   |     100 |      100 |     100 |     100 |                   
  ...upDisplay.tsx |     100 |    94.73 |     100 |     100 | ...43,289,402,432 
  ...onMessage.tsx |   92.06 |    82.35 |     100 |   92.06 | 58-60,62,64       
  ...nMessages.tsx |   94.11 |    95.91 |   76.92 |   94.11 | ...47-349,352-355 
  DiffRenderer.tsx |   93.17 |    86.02 |     100 |   93.17 | ...07,235-236,302 
  ...tsDisplay.tsx |   97.08 |    77.77 |     100 |   97.08 | 95,97,106         
  ...usMessage.tsx |   81.73 |     65.9 |      75 |   81.73 | ...10-214,222,245 
  ...tsDisplay.tsx |   95.52 |    88.31 |     100 |   95.52 | ...40,142,175-180 
  ...ssMessage.tsx |    12.5 |      100 |       0 |    12.5 | 18-59             
  ...edMessage.tsx |   21.05 |      100 |       0 |   21.05 | 23-39             
  ...sMessages.tsx |   59.04 |       50 |    37.5 |   59.04 | ...21-126,147-159 
  ...ryMessage.tsx |   13.63 |      100 |       0 |   13.63 | 23-64             
  ...onMessage.tsx |   91.87 |    82.63 |     100 |   91.87 | ...49-651,658-660 
  ...upMessage.tsx |   98.38 |    95.38 |     100 |   98.38 | 188-191,422       
  ToolMessage.tsx  |   93.06 |    86.32 |   93.75 |   93.06 | ...1037,1082-1084 
 ...ponents/shared |   86.29 |    82.41 |   94.17 |   86.29 |                   
  ...ctionList.tsx |     100 |      100 |      75 |     100 |                   
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  EnumSelector.tsx |     100 |    96.42 |     100 |     100 | 58                
  ...rBoundary.tsx |     100 |      100 |     100 |     100 |                   
  MaxSizedBox.tsx  |   84.71 |    86.95 |      90 |   84.71 | ...67-568,685-686 
  MultiSelect.tsx  |   93.58 |       75 |     100 |   93.58 | ...43,199-201,211 
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  ...ontroller.tsx |     100 |    83.33 |     100 |     100 | 73,93-95          
  ...eSelector.tsx |     100 |       60 |     100 |     100 | 40-45             
  ...lableList.tsx |   81.48 |    84.84 |     100 |   81.48 | 46-66,73-76       
  StaticRender.tsx |     100 |      100 |     100 |     100 |                   
  TextInput.tsx    |    80.8 |    67.24 |      80 |    80.8 | ...36-240,252-258 
  ...ontroller.tsx |     100 |    81.81 |     100 |     100 | 59-62             
  ...apsedTime.tsx |     100 |      100 |     100 |     100 |                   
  ...Indicator.tsx |     100 |      100 |     100 |     100 |                   
  ...lizedList.tsx |   91.49 |    86.66 |   83.33 |   91.49 | ...18-846,859,959 
  text-buffer.ts   |   85.98 |    81.81 |   97.91 |   85.98 | ...2664,2762-2763 
  ...er-actions.ts |   73.93 |    67.22 |     100 |   73.93 | ...32-733,934-936 
 ...ponents/skills |       0 |        0 |       0 |       0 |                   
  ...gerDialog.tsx |       0 |        0 |       0 |       0 | 1-681             
 ...ents/subagents |       0 |        0 |       0 |       0 |                   
  constants.ts     |       0 |        0 |       0 |       0 | 1-71              
  index.ts         |       0 |        0 |       0 |       0 | 1-11              
  reducers.tsx     |       0 |        0 |       0 |       0 | 1-190             
  types.ts         |       0 |        0 |       0 |       0 | 1-125             
  utils.ts         |       0 |        0 |       0 |       0 | 1-102             
 ...bagents/create |       0 |        0 |       0 |       0 |                   
  ...ionWizard.tsx |       0 |        0 |       0 |       0 | 1-299             
  ...rSelector.tsx |       0 |        0 |       0 |       0 | 1-85              
  ...onSummary.tsx |       0 |        0 |       0 |       0 | 1-331             
  ...tionInput.tsx |       0 |        0 |       0 |       0 | 1-177             
  ...dSelector.tsx |       0 |        0 |       0 |       0 | 1-63              
  ...nSelector.tsx |       0 |        0 |       0 |       0 | 1-58              
  ...EntryStep.tsx |       0 |        0 |       0 |       0 | 1-78              
  ToolSelector.tsx |       0 |        0 |       0 |       0 | 1-253             
 ...bagents/manage |   14.14 |    53.19 |    37.5 |   14.14 |                   
  ...ctionStep.tsx |       0 |        0 |       0 |       0 | 1-103             
  ...eleteStep.tsx |       0 |        0 |       0 |       0 | 1-62              
  ...tEditStep.tsx |       0 |        0 |       0 |       0 | 1-124             
  ...ctionStep.tsx |   35.61 |    59.52 |     100 |   35.61 | ...21-433,438-440 
  ...iewerStep.tsx |       0 |        0 |       0 |       0 | 1-73              
  ...gerDialog.tsx |       0 |        0 |       0 |       0 | 1-341             
 ...mponents/views |    70.1 |    72.89 |   61.11 |    70.1 |                   
  ContextUsage.tsx |   71.49 |    64.86 |      80 |   71.49 | ...30-436,473-567 
  DoctorReport.tsx |     9.8 |      100 |       0 |     9.8 | 25-54,57-131      
  ...sionsList.tsx |   88.05 |       75 |     100 |   88.05 | 70-77             
  McpStatus.tsx    |   92.01 |     73.8 |     100 |   92.01 | ...36,175-177,262 
  SkillsList.tsx   |   20.51 |      100 |       0 |   20.51 | 17-20,27-57       
  ToolsList.tsx    |     100 |      100 |     100 |     100 |                   
 src/ui/contexts   |   84.16 |    81.83 |   85.13 |   84.16 |                   
  ...ewContext.tsx |   64.83 |    88.88 |      50 |   64.83 | ...16-219,225-235 
  AppContext.tsx   |      80 |       50 |     100 |      80 | 19-20             
  ...ewContext.tsx |   93.83 |    68.51 |   42.85 |   93.83 | ...44,281-285,317 
  ...igContext.tsx |   81.81 |       50 |     100 |   81.81 | 15-16             
  ...ssContext.tsx |   85.65 |    84.85 |     100 |   85.65 | ...1612-1614,1620 
  ...owContext.tsx |   91.07 |    81.81 |     100 |   91.07 | 47-48,60-62       
  ...deContext.tsx |     100 |      100 |      50 |     100 |                   
  ...onContext.tsx |   80.77 |       80 |    92.3 |   80.77 | ...31-434,443-446 
  ...gsContext.tsx |     100 |      100 |     100 |     100 |                   
  ...usContext.tsx |     100 |      100 |     100 |     100 |                   
  ...ngContext.tsx |   71.42 |       50 |     100 |   71.42 | 17-20             
  ...utContext.tsx |   85.71 |      100 |   66.66 |   85.71 | 13-14             
  ...edContext.tsx |     100 |      100 |      50 |     100 |                   
  ...nsContext.tsx |   88.88 |       50 |     100 |   88.88 | 156-157           
  ...teContext.tsx |   86.66 |       50 |     100 |   86.66 | 235-236           
  ...deContext.tsx |      80 |     87.5 |      75 |      80 | ...11-112,118-120 
  ...rtContext.tsx |     100 |      100 |     100 |     100 |                   
 src/ui/daemon     |   88.35 |    73.51 |   95.45 |   88.35 |                   
  ...ui-adapter.ts |   88.35 |    73.51 |   95.45 |   88.35 | ...74,792-793,879 
 src/ui/editors    |       0 |        0 |       0 |       0 |                   
  ...ngsManager.ts |       0 |        0 |       0 |       0 | 1-67              
 src/ui/hooks      |    85.5 |    83.06 |   87.79 |    85.5 |                   
  ...dProcessor.ts |   85.53 |    85.13 |     100 |   85.53 | ...-970,1017-1018 
  ...ention-ref.ts |   97.72 |       84 |     100 |   97.72 | 65                
  keyToAnsi.ts     |    3.92 |      100 |       0 |    3.92 | 19-77             
  ...esourceRef.ts |     100 |      100 |     100 |     100 |                   
  ...completion.ts |     100 |    95.45 |     100 |     100 | 95                
  ...ention-ref.ts |     100 |      100 |     100 |     100 |                   
  ...dProcessor.ts |   94.62 |    73.58 |     100 |   94.62 | ...87-288,293-294 
  ...dProcessor.ts |   85.75 |     68.4 |   81.81 |   85.75 | ...1464,1485-1489 
  ...rt-command.ts |     100 |      100 |     100 |     100 |                   
  ...sced-flush.ts |     100 |      100 |     100 |     100 |                   
  ...ng-enabled.ts |     100 |      100 |     100 |     100 |                   
  ...oice-input.ts |   92.36 |    81.95 |   66.66 |   92.36 | ...00,502-503,658 
  ...ke-repaint.ts |     100 |      100 |     100 |     100 |                   
  ...amingState.ts |   12.22 |      100 |       0 |   12.22 | 54-157            
  ...agerDialog.ts |   88.23 |      100 |     100 |   88.23 | 20,24             
  ...dScrollbar.ts |     100 |      100 |     100 |     100 |                   
  ...ationFrame.ts |      52 |    63.63 |     100 |      52 | ...59,67-70,76-87 
  ...odeCommand.ts |   58.82 |      100 |     100 |   58.82 | 28,33-48          
  ...enaCommand.ts |      85 |      100 |     100 |      85 | 23-24,29          
  ...aInProcess.ts |   27.92 |       80 |      25 |   27.92 | ...69-170,173-175 
  ...Completion.ts |   86.44 |    88.48 |     100 |   86.44 | ...14-515,525-541 
  ...ifications.ts |   87.82 |    96.77 |     100 |   87.82 | 138-152           
  ...tIndicator.ts |   88.28 |    81.57 |     100 |   88.28 | ...66,175,179-187 
  ...waySummary.ts |   96.26 |       75 |     100 |   96.26 | 126-128,170       
  ...ndTaskView.ts |   94.89 |    77.55 |     100 |   94.89 | 164-168,257,263   
  ...chedScroll.ts |     100 |      100 |     100 |     100 |                   
  ...ketedPaste.ts |    23.8 |      100 |       0 |    23.8 | 19-37             
  ...nchCommand.ts |   95.53 |    83.01 |     100 |   95.53 | ...64-165,289-292 
  ...ompletion.tsx |   97.09 |    87.09 |     100 |   97.09 | ...23-324,334-335 
  ...dMigration.ts |    92.1 |    88.88 |     100 |    92.1 | 42-44             
  useCompletion.ts |   96.29 |    90.56 |     100 |   96.29 | ...17-218,222-223 
  ...nitMessage.ts |     100 |      100 |     100 |     100 |                   
  ...extualTips.ts |   78.26 |       50 |     100 |   78.26 | ...2,75-79,96-104 
  ...eteCommand.ts |   89.52 |    90.69 |     100 |   89.52 | ...98-106,114-115 
  ...ialogClose.ts |   36.11 |       10 |     100 |   36.11 | ...89-195,202-207 
  useDiffData.ts   |       0 |        0 |       0 |       0 | 1-87              
  ...oublePress.ts |   53.12 |       75 |     100 |   53.12 | 33-35,41-54       
  ...orSettings.ts |     100 |      100 |     100 |     100 |                   
  ...Completion.ts |   99.12 |    97.67 |     100 |   99.12 | 182-183           
  ...ionUpdates.ts |   93.72 |    92.98 |     100 |   93.72 | ...87-291,314-320 
  ...agerDialog.ts |   88.88 |      100 |     100 |   88.88 | 21,25             
  ...backDialog.ts |    63.9 |    76.47 |   66.66 |    63.9 | ...66-168,190-191 
  useFocus.ts      |     100 |      100 |     100 |     100 |                   
  ...olderTrust.ts |     100 |    93.33 |     100 |     100 | 62                
  ...ggestions.tsx |   96.47 |    78.94 |     100 |   96.47 | 121,155-156       
  ...miniStream.ts |   86.08 |    81.23 |   76.92 |   86.08 | ...5198-5200,5202 
  ...BranchName.ts |     100 |    94.44 |     100 |     100 | 54                
  ...oryManager.ts |   98.38 |    98.85 |     100 |   98.38 | 141-144           
  ...ooksDialog.ts |    87.5 |      100 |     100 |    87.5 | 19,23             
  ...stListener.ts |     100 |      100 |     100 |     100 |                   
  ...nAuthError.ts |   76.19 |       50 |     100 |   76.19 | 39-40,43-45       
  ...putHistory.ts |   92.59 |    85.71 |     100 |   92.59 | 63-64,72,94-96    
  ...storyStore.ts |     100 |    94.11 |     100 |     100 | 69                
  useKeypress.ts   |     100 |      100 |     100 |     100 |                   
  ...rdProtocol.ts |   36.36 |      100 |       0 |   36.36 | 24-31             
  ...unchEditor.ts |   22.58 |      100 |      50 |   22.58 | 11-32,44-85       
  ...gIndicator.ts |     100 |    96.66 |     100 |     100 | 109               
  useLogger.ts     |      16 |      100 |       0 |      16 | 15-45             
  useMCPHealth.ts  |   10.52 |      100 |       0 |   10.52 | 36-75             
  ...cpApproval.ts |   93.12 |    86.11 |     100 |   93.12 | ...24-127,139-140 
  useMcpDialog.ts  |    87.5 |      100 |     100 |    87.5 | 19,23             
  ...moryDialog.ts |    87.5 |      100 |     100 |    87.5 | 19,23             
  ...oryMonitor.ts |   83.14 |    78.57 |     100 |   83.14 | 54-63,74-79       
  ...ssageQueue.ts |     100 |     97.4 |     100 |     100 | 175,262           
  ...delCommand.ts |     100 |       96 |     100 |     100 | 61                
  ...ouseEvents.ts |   94.89 |       95 |   83.33 |   94.89 | 78-82             
  ...raseCycler.ts |   84.74 |    76.47 |     100 |   84.74 | ...49,52-53,69-71 
  ...rredEditor.ts |   58.33 |    22.22 |     100 |   58.33 | 23-27,29-33       
  ...derUpdates.ts |   85.29 |    80.28 |    92.3 |   85.29 | ...36,351-361,441 
  useQwenAuth.ts   |     100 |      100 |     100 |     100 |                   
  ...lScheduler.ts |   89.48 |    88.88 |     100 |   89.48 | ...54-456,489-499 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-7               
  ...umeCommand.ts |   95.34 |    77.14 |     100 |   95.34 | 124-125,227-232   
  ...ompletion.tsx |   90.67 |    83.33 |     100 |   90.67 | ...02,105,138-141 
  ...ectionList.ts |   97.12 |    96.26 |     100 |   97.12 | ...92-193,247-250 
  ...sionPicker.ts |   92.87 |    90.35 |     100 |   92.87 | ...99-501,503-505 
  ...earchInput.ts |     100 |    97.29 |     100 |     100 | 82                
  ...ngsCommand.ts |   18.75 |      100 |       0 |   18.75 | 10-25             
  ...ellHistory.ts |   93.28 |    80.95 |     100 |   93.28 | ...96,153-154,164 
  ...oryCommand.ts |   85.48 |    58.33 |     100 |   85.48 | 22-28,40,71       
  ...agerDialog.ts |   88.23 |      100 |     100 |   88.23 | 20,24             
  ...Completion.ts |   82.85 |    85.13 |   94.73 |   82.85 | ...78-680,688-724 
  ...tateAndRef.ts |     100 |      100 |     100 |     100 |                   
  ...tatsDialog.ts |     100 |      100 |     100 |     100 |                   
  useStatusLine.ts |   97.32 |    93.93 |     100 |   97.32 | ...18-422,518-525 
  ...eateDialog.ts |   88.23 |      100 |     100 |   88.23 | 14,18             
  ...mInProcess.ts |   27.35 |       80 |      25 |   27.35 | ...82-183,186-188 
  ...tification.ts |     100 |     87.5 |     100 |     100 | 50                
  ...alProgress.ts |   67.34 |    58.82 |   66.66 |   67.34 | 52-53,61-68,79-85 
  ...rminalSize.ts |     100 |      100 |     100 |     100 |                   
  ...emeCommand.ts |   67.01 |    29.41 |     100 |   67.01 | ...10-111,115-116 
  useTimer.ts      |   97.59 |    94.73 |     100 |   97.59 | 17-18             
  ...lMigration.ts |       0 |        0 |       0 |       0 |                   
  ...rustModify.ts |     100 |    90.47 |     100 |     100 | 112,134           
  useTurnDiffs.ts  |   95.12 |    78.57 |     100 |   95.12 | 133-134,156-157   
  ...elcomeBack.ts |   87.36 |     90.9 |     100 |   87.36 | ...,94-96,114-115 
  ...reeSession.ts |   93.75 |       70 |     100 |   93.75 | 47-48,72          
  vim.ts           |      74 |    67.56 |   69.23 |      74 | ...1854-1861,1869 
 src/ui/layouts    |    91.2 |    89.47 |     100 |    91.2 |                   
  ...AppLayout.tsx |    90.9 |     87.5 |     100 |    90.9 | 60-62,110-115,151 
  ...AppLayout.tsx |   91.66 |    92.85 |     100 |   91.66 | 75-80             
 src/ui/models     |   80.72 |       80 |   71.42 |   80.72 |                   
  ...ableModels.ts |   80.72 |       80 |   71.42 |   80.72 | ...,61-71,125-127 
 ...noninteractive |     100 |      100 |    6.66 |     100 |                   
  ...eractiveUi.ts |     100 |      100 |    6.66 |     100 |                   
 src/ui/selection  |   92.65 |    84.69 |     100 |   92.65 |                   
  screen-buffer.ts |   94.73 |    64.28 |     100 |   94.73 | 51-52             
  ...ion-coords.ts |     100 |      100 |     100 |     100 |                   
  ...ction-span.ts |   93.75 |    91.66 |     100 |   93.75 | 41-42,71-72       
  ...tion-state.ts |     100 |      100 |     100 |     100 |                   
  ...ction-text.ts |   92.85 |    92.59 |     100 |   92.85 | 30-34,114-115     
  ...selection.tsx |   90.26 |    75.32 |     100 |   90.26 | ...75-376,392-393 
 src/ui/state      |      95 |    81.81 |     100 |      95 |                   
  extensions.ts    |      95 |    81.81 |     100 |      95 | 69-70,89          
 src/ui/themes     |    98.5 |    73.17 |     100 |    98.5 |                   
  ansi-light.ts    |     100 |      100 |     100 |     100 |                   
  ansi.ts          |     100 |      100 |     100 |     100 |                   
  atom-one-dark.ts |     100 |      100 |     100 |     100 |                   
  ayu-light.ts     |     100 |      100 |     100 |     100 |                   
  ayu.ts           |     100 |      100 |     100 |     100 |                   
  color-utils.ts   |   99.23 |    97.05 |     100 |   99.23 | 277-278           
  default-light.ts |     100 |      100 |     100 |     100 |                   
  default.ts       |     100 |      100 |     100 |     100 |                   
  ...inal-theme.ts |   88.59 |    85.96 |     100 |   88.59 | ...57-261,266-270 
  dracula.ts       |     100 |      100 |     100 |     100 |                   
  github-dark.ts   |     100 |      100 |     100 |     100 |                   
  github-light.ts  |     100 |      100 |     100 |     100 |                   
  googlecode.ts    |     100 |      100 |     100 |     100 |                   
  no-color.ts      |     100 |      100 |     100 |     100 |                   
  qwen-dark.ts     |     100 |      100 |     100 |     100 |                   
  qwen-light.ts    |     100 |      100 |     100 |     100 |                   
  ...tic-tokens.ts |     100 |      100 |     100 |     100 |                   
  ...-of-purple.ts |     100 |      100 |     100 |     100 |                   
  theme-manager.ts |   88.68 |    84.52 |     100 |   88.68 | ...83-392,397-398 
  theme.ts         |     100 |    38.02 |     100 |     100 | ...34-449,457-461 
  xcode.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/utils      |   87.56 |    85.64 |   95.76 |   87.56 |                   
  ...Colorizer.tsx |   80.31 |    85.41 |     100 |   80.31 | ...00-201,313-339 
  ...nRenderer.tsx |   80.07 |     75.6 |     100 |   80.07 | ...70,274,332-333 
  ...wnDisplay.tsx |   92.87 |    93.46 |     100 |   92.87 | ...,955,1002-1020 
  ...idDiagram.tsx |   87.79 |    95.34 |     100 |   87.79 | 156-179           
  ...eRenderer.tsx |   93.63 |    81.77 |   95.23 |   93.63 | ...47-750,803-808 
  ...odeDisplay.ts |   94.28 |    85.71 |     100 |   94.28 | 23,40             
  asciiCharts.ts   |    96.7 |     87.5 |     100 |    96.7 | 170-177,278       
  ...dWorkUtils.ts |     100 |      100 |     100 |     100 |                   
  ...boardUtils.ts |    52.9 |    74.15 |    92.3 |    52.9 | ...29,632-641,644 
  commandUtils.ts  |   98.38 |    92.38 |     100 |   98.38 | 108,136-137,343   
  computeStats.ts  |     100 |      100 |     100 |     100 |                   
  customBanner.ts  |   90.68 |    91.22 |     100 |   90.68 | ...13,324-327,334 
  displayUtils.ts  |   73.84 |    73.91 |     100 |   73.84 | ...34,36-40,42-46 
  formatters.ts    |   94.87 |    98.24 |     100 |   94.87 | 116-119           
  goal-runtime.ts  |   91.42 |       95 |     100 |   91.42 | 32-34             
  gradientUtils.ts |     100 |      100 |     100 |     100 |                   
  highlight.ts     |     100 |      100 |     100 |     100 |                   
  ...gap-notice.ts |     100 |      100 |     100 |     100 |                   
  ...oryMapping.ts |     100 |       95 |     100 |     100 | 44,103            
  historyUtils.ts  |   96.03 |     97.1 |     100 |   96.03 | 103-106           
  ...mage-parts.ts |   97.75 |    94.87 |     100 |   97.75 | 82-83             
  inline-math.ts   |   98.48 |    95.23 |     100 |   98.48 | 129-130           
  input-mouse.ts   |     100 |    85.71 |     100 |     100 | 48,93             
  isNarrowWidth.ts |     100 |      100 |     100 |     100 |                   
  ...olDetector.ts |   68.81 |       75 |   66.66 |   68.81 | ...27-132,160-161 
  latexRenderer.ts |   94.95 |     73.8 |     100 |   94.95 | ...76-178,184-187 
  layoutUtils.ts   |     100 |      100 |     100 |     100 |                   
  list-mouse.ts    |     100 |      100 |     100 |     100 |                   
  ...ightLoader.ts |     100 |       95 |     100 |     100 | 81                
  ...nUtilities.ts |   98.72 |    94.36 |     100 |   98.72 | 145-146           
  ...t-position.ts |     100 |     87.5 |     100 |     100 | 85                
  ...geRenderer.ts |   86.51 |    70.16 |   95.12 |   86.51 | ...1286,1326-1332 
  ...alRenderer.ts |   86.69 |     71.9 |     100 |   86.69 | ...1476,1513-1519 
  ...lsBySource.ts |     100 |    95.23 |     100 |     100 | 84                
  mouse.ts         |   92.85 |    74.19 |     100 |   92.85 | ...38,145,149-152 
  osc8.ts          |   91.33 |    79.03 |     100 |   91.33 | ...73,273,277-278 
  ...red-height.ts |   98.38 |    97.14 |     100 |   98.38 | 195-197           
  ...mConstants.ts |     100 |      100 |     100 |     100 |                   
  restoreGoal.ts   |     100 |      100 |     100 |     100 |                   
  ...storyUtils.ts |   82.73 |    79.48 |     100 |   82.73 | ...84-606,737-738 
  ...ickerUtils.ts |     100 |      100 |     100 |     100 |                   
  ...evel-label.ts |   77.77 |    66.66 |     100 |   77.77 | 18,22-24          
  ...are-cursor.ts |   89.47 |    85.71 |     100 |   89.47 | 39-44             
  ...ataService.ts |   93.17 |     79.1 |     100 |   93.17 | ...14,227,254-256 
  suggestions.ts   |     100 |      100 |     100 |     100 |                   
  ...izedOutput.ts |   95.19 |      100 |   88.88 |   95.19 | 121-126           
  ...nal-buffer.ts |     100 |      100 |     100 |     100 |                   
  ...e-renderer.ts |   90.61 |    83.44 |     100 |   90.61 | ...80,482-484,607 
  ...ize-reflow.ts |     100 |     92.3 |     100 |     100 | 57,62,209,217,347 
  ...wOptimizer.ts |     100 |    94.11 |     100 |     100 | 33,76             
  terminalSetup.ts |    4.37 |      100 |       0 |    4.37 | 44-393            
  textUtils.ts     |   97.94 |    95.49 |   94.11 |   97.94 | ...82-283,443-444 
  ...background.ts |     100 |      100 |     100 |     100 |                   
  todoSnapshot.ts  |   90.42 |    92.85 |     100 |   90.42 | ...06-207,240-241 
  ...isplay-map.ts |     100 |      100 |     100 |     100 |                   
  updateCheck.ts   |     100 |    92.75 |     100 |     100 | 227-239,331       
  ...ow-keyword.ts |     100 |      100 |     100 |     100 |                   
 ...i/utils/export |   75.03 |     60.3 |   94.59 |   75.03 |                   
  collect.ts       |   71.27 |    66.38 |      96 |   71.27 | ...90-633,655-656 
  index.ts         |     100 |      100 |     100 |     100 |                   
  normalize.ts     |   80.42 |    50.68 |     100 |   80.42 | ...59-364,376-378 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
  utils.ts         |     100 |      100 |     100 |     100 |                   
 ...ort/formatters |   52.92 |    47.22 |   71.42 |   52.92 |                   
  html.ts          |   84.61 |       50 |     100 |   84.61 | ...53,57-58,62-63 
  json.ts          |     100 |      100 |     100 |     100 |                   
  jsonl.ts         |   82.45 |     37.5 |     100 |   82.45 | ...48,50-51,65-66 
  markdown.ts      |   36.32 |    47.05 |      50 |   36.32 | ...16-219,233-295 
 src/ui/voice      |   81.27 |    79.92 |   81.94 |   81.27 |                   
  ...d-recorder.ts |     6.2 |      100 |       0 |     6.2 | ...33-159,162-163 
  ...o-recorder.ts |   84.61 |    93.33 |   57.14 |   84.61 | ...16-117,131-136 
  ...me-session.ts |   91.09 |     92.1 |     100 |   91.09 | ...99,305,316-319 
  sox-recorder.ts  |    92.7 |    71.87 |     100 |    92.7 | ...34-135,153-154 
  ...ailability.ts |     100 |      100 |     100 |     100 |                   
  ...e-keyterms.ts |     100 |      100 |     100 |     100 |                   
  voice-model.ts   |     100 |      100 |     100 |     100 |                   
  ...e-recorder.ts |   88.29 |    67.74 |   81.81 |   88.29 | ...,98-99,112,115 
  voice-refine.ts  |     100 |    93.33 |     100 |     100 | 92                
  ...ream-retry.ts |   86.79 |       70 |     100 |   86.79 | 16-18,48-49,59-60 
  ...am-session.ts |   88.02 |    66.66 |   84.61 |   88.02 | ...26,343-345,363 
  ...ranscriber.ts |     100 |      100 |     100 |     100 |                   
 src/utils         |   81.58 |    87.21 |   92.59 |   81.58 |                   
  ...p-profiler.ts |   98.39 |    92.59 |     100 |   98.39 | 141,185,235       
  acpModelUtils.ts |   97.36 |    95.19 |     100 |   97.36 | ...09-210,214-215 
  apiPreconnect.ts |   96.74 |    94.59 |     100 |   96.74 | 167-170           
  ...ol-call-id.ts |   84.61 |       60 |     100 |   84.61 | 26-27,37-38       
  ...ng-failure.ts |     100 |       95 |     100 |     100 | 72                
  checks.ts        |   33.33 |      100 |       0 |   33.33 | 23-28             
  ...-api-error.ts |     100 |    96.42 |     100 |     100 | 14                
  cleanup.ts       |   84.05 |    94.11 |      80 |   84.05 | 80,111-121        
  commands.ts      |   97.45 |    96.66 |     100 |   97.45 | 153-155           
  ...Calculator.ts |     100 |      100 |     100 |     100 |                   
  cpuProfiler.ts   |   70.73 |    73.23 |   88.88 |   70.73 | ...27,430-431,438 
  deepMerge.ts     |     100 |    89.65 |     100 |     100 | 41-43,49          
  ...re-runtime.ts |     100 |      100 |     100 |     100 |                   
  ...ScopeUtils.ts |   97.56 |    88.88 |     100 |   97.56 | 67                
  doctorChecks.ts  |   70.31 |    74.57 |     100 |   70.31 | ...95-301,325-341 
  ...putCapture.ts |   90.65 |    86.31 |     100 |   90.65 | ...73,371,373-374 
  ...arResolver.ts |   97.14 |    96.55 |     100 |   97.14 | 125-126           
  errors.ts        |   97.56 |    94.64 |     100 |   97.56 | 69-70,304-305     
  events.ts        |     100 |      100 |     100 |     100 |                   
  ...on-mention.ts |   88.48 |     82.6 |     100 |   88.48 | ...56-160,164-168 
  gitUtils.ts      |   92.85 |    86.66 |     100 |   92.85 | ...13-116,164-167 
  ...AutoUpdate.ts |    93.1 |       94 |      90 |    93.1 | 103,108,179-190   
  ...tyWarnings.ts |     100 |      100 |     100 |     100 |                   
  ...lationInfo.ts |   97.68 |    94.28 |     100 |   97.68 | ...64,381-382,427 
  jsonc-editor.ts  |   93.18 |    92.72 |     100 |   93.18 | ...80-381,384-385 
  languageUtils.ts |   98.88 |    97.05 |     100 |   98.88 | 184-185           
  load-undici.ts   |     100 |      100 |     100 |     100 |                   
  ...npm-update.ts |   86.64 |    77.02 |     100 |   86.64 | ...03-304,335-345 
  math.ts          |       0 |        0 |       0 |       0 | 1-15              
  ...er-mention.ts |     100 |    66.66 |     100 |     100 | 14,30,44-46       
  ...iagnostics.ts |   94.57 |    83.01 |   88.88 |   94.57 | ...05,311,315-317 
  ...serMessage.ts |     100 |      100 |     100 |     100 |                   
  ...onfigUtils.ts |   94.08 |    91.37 |     100 |   94.08 | ...16-520,523-527 
  ...iveHelpers.ts |   95.13 |    91.79 |     100 |   95.13 | ...53-454,552,565 
  osc.ts           |   97.18 |      100 |    87.5 |   97.18 | 182-183           
  package.ts       |   88.88 |    85.71 |     100 |   88.88 | 31-32             
  ...uggestions.ts |   84.29 |    70.83 |     100 |   84.29 | 70-76,92-103      
  processUtils.ts  |    92.3 |       80 |     100 |    92.3 | 45-46             
  readStdin.ts     |   93.67 |    94.11 |   85.71 |   93.67 | 79-83             
  relaunch.ts      |   95.87 |    89.28 |     100 |   95.87 | 103-105,131       
  resolvePath.ts   |     100 |      100 |     100 |     100 |                   
  runBudget.ts     |   99.35 |    96.77 |     100 |   99.35 | 119               
  sandbox-path.ts  |     100 |      100 |     100 |     100 |                   
  sandbox.ts       |   45.52 |    57.35 |   76.92 |   45.52 | ...1040,1052-1075 
  ...xImageName.ts |     100 |    77.77 |     100 |     100 | 10,18             
  sandboxMounts.ts |     100 |      100 |     100 |     100 |                   
  sessionPaths.ts  |   90.84 |    90.56 |     100 |   90.84 | ...81-182,185-186 
  settingsUtils.ts |   83.52 |    90.39 |   90.24 |   83.52 | ...67-785,792-800 
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...ate-verify.ts |     100 |      100 |     100 |     100 |                   
  ...one-update.ts |   39.81 |    77.44 |   62.16 |   39.81 | ...1193,1196-1215 
  ...upProfiler.ts |   98.47 |    94.66 |     100 |   98.47 | 132-133,308       
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  stdioHelpers.ts  |     100 |       90 |     100 |     100 | 23                
  systemInfo.ts    |   95.12 |    90.27 |     100 |   95.12 | ...54-255,260-264 
  ...InfoFields.ts |    87.5 |    65.85 |     100 |    87.5 | ...24-125,146-147 
  ...alSequence.ts |     100 |    97.61 |     100 |     100 | 60                
  ...iffPreview.ts |   76.47 |       25 |     100 |   76.47 | 13,17,23-24       
  ...on-handler.ts |    73.8 |       75 |     100 |    73.8 | 17-18,25-26,67-73 
  ...e-relaunch.ts |   89.61 |    86.66 |      50 |   89.61 | 56-61,83-84       
  ...entEmitter.ts |     100 |      100 |     100 |     100 |                   
  ...ansionHook.ts |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |   87.75 |       75 |     100 |   87.75 | 47-48,53-54,57-58 
  version.ts       |     100 |    66.66 |     100 |     100 | 11                
  ...ingHandler.ts |     100 |      100 |     100 |     100 |                   
  windowTitle.ts   |   95.45 |    93.33 |     100 |   95.45 | 54-55             
  ...WithBackup.ts |   65.04 |    77.77 |     100 |   65.04 | 97,112,133-172    
 ...s/housekeeping |   93.51 |    90.95 |   96.96 |   93.51 |                   
  cleanup.ts       |   92.59 |    93.75 |     100 |   92.59 | ...02-205,209-211 
  ...eractionAt.ts |     100 |      100 |     100 |     100 |                   
  scheduler.ts     |      93 |    88.34 |      95 |      93 | ...57-359,411-415 
  throttledOnce.ts |   95.95 |    93.93 |     100 |   95.95 | 77-78,153-154     
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   87.91 |     86.4 |   89.48 |   87.91 |                   
 src               |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
 src/__mocks__/fs  |       0 |        0 |       0 |       0 |                   
  promises.ts      |       0 |        0 |       0 |       0 | 1-48              
 src/agents        |   90.38 |    84.54 |   94.85 |   90.38 |                   
  ...transcript.ts |   87.63 |    83.52 |     100 |   87.63 | ...80,588,594-598 
  ...ent-resume.ts |   85.59 |    77.55 |   83.33 |   85.59 | ...1793-1797,1800 
  ...ound-tasks.ts |   94.63 |    90.13 |   96.38 |   94.63 | ...1773,1793-1796 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...ent-result.ts |    96.8 |    92.68 |     100 |    96.8 | 106,129-131       
  ...n-registry.ts |   94.79 |     87.7 |     100 |   94.79 | ...1067,1081-1083 
  ...w-snapshot.ts |   92.12 |    77.14 |     100 |   92.12 | ...65,189,196-198 
 src/agents/arena  |   76.32 |    67.71 |   78.94 |   76.32 |                   
  ...gentClient.ts |   79.47 |    88.88 |   81.81 |   79.47 | ...68-183,189-204 
  ArenaManager.ts  |   75.11 |    64.51 |   78.57 |   75.11 | ...1887,1893-1894 
  arena-events.ts  |   64.44 |      100 |      50 |   64.44 | ...71-175,178-183 
  diff-summary.ts  |    87.5 |    72.34 |     100 |    87.5 | ...32-133,137-138 
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...gents/backends |   78.09 |    85.23 |   76.28 |   78.09 |                   
  ITermBackend.ts  |   97.97 |    93.93 |     100 |   97.97 | ...78-180,255,307 
  ...essBackend.ts |    90.9 |    85.36 |   93.33 |    90.9 | ...70,672,674-675 
  TmuxBackend.ts   |    90.7 |    76.55 |   97.36 |    90.7 | ...87,697,743-747 
  detect.ts        |   31.25 |      100 |       0 |   31.25 | 34-88             
  index.ts         |     100 |      100 |     100 |     100 |                   
  iterm-it2.ts     |     100 |     92.1 |     100 |     100 | 37-38,106         
  tmux-commands.ts |    6.64 |      100 |    3.03 |    6.64 | ...93-363,386-503 
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...agents/runtime |    91.1 |    86.68 |   89.23 |    91.1 |                   
  agent-context.ts |     100 |      100 |     100 |     100 |                   
  agent-core.ts    |   85.07 |     76.8 |   77.77 |   85.07 | ...2291,2337-2339 
  agent-events.ts  |     100 |      100 |     100 |     100 |                   
  ...t-headless.ts |   93.49 |    89.41 |   83.33 |   93.49 | ...96-497,500-501 
  ...nteractive.ts |   81.01 |    82.35 |   76.66 |   81.01 | ...33,535-538,541 
  ...statistics.ts |   98.29 |    82.55 |     100 |   98.29 | 141,165,206,239   
  agent-types.ts   |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...ool-policy.ts |   98.34 |      100 |    92.3 |   98.34 | 81-82             
  ...low-budget.ts |     100 |      100 |     100 |     100 |                   
  ...-scheduler.ts |   97.43 |    96.36 |     100 |   97.43 | 128-130           
  ...ow-journal.ts |   91.76 |    75.86 |     100 |   91.76 | ...38-139,179-181 
  ...chestrator.ts |    92.4 |       90 |   83.78 |    92.4 | ...1862,1911-1914 
  ...ow-prompts.ts |     100 |      100 |     100 |     100 |                   
  ...low-runner.ts |   94.85 |     87.5 |   92.85 |   94.85 | ...93,260,280-283 
  ...ow-sandbox.ts |   96.85 |    91.28 |     100 |   96.85 | ...1705,1711-1712 
  ...flow-saved.ts |   96.51 |    94.36 |     100 |   96.51 | 134-135,234-237   
  ...flow-stall.ts |    97.9 |    83.33 |     100 |    97.9 | 138-139,236       
 src/agents/tasks  |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/agents/team   |   82.04 |    84.17 |   88.97 |   82.04 |                   
  TeamManager.ts   |   72.02 |    79.41 |   79.24 |   72.02 | ...1632,1655-1656 
  identity.ts      |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...sionBridge.ts |     100 |      100 |     100 |     100 |                   
  mailbox.ts       |   96.02 |    87.23 |     100 |   96.02 | 352-358           
  ...ptAddendum.ts |     100 |      100 |     100 |     100 |                   
  tasks.ts         |   89.24 |    82.82 |     100 |   89.24 | ...-994,1038-1039 
  team-events.ts   |   60.52 |      100 |      50 |   60.52 | ...40-144,151-155 
  teamHelpers.ts   |   92.02 |    94.91 |   95.23 |   92.02 | ...31-332,368-378 
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...eam/test-utils |   94.39 |    94.26 |   98.21 |   94.39 |                   
  ...on-harness.ts |   96.49 |    84.21 |     100 |   96.49 | 128-129,141-142   
  fake-agent.ts    |   98.49 |    95.08 |     100 |   98.49 | 201-203           
  fake-backend.ts  |   86.46 |    97.61 |   95.83 |   86.46 | 124-146           
 src/config        |    85.5 |    87.67 |   75.94 |    85.5 |                   
  approval-mode.ts |     100 |      100 |     100 |     100 |                   
  ...xtDefaults.ts |     100 |      100 |     100 |     100 |                   
  config.ts        |   84.88 |    87.44 |   74.46 |   84.88 | ...8683,8687-8688 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  models.ts        |     100 |      100 |     100 |     100 |                   
  storage.ts       |   94.39 |    91.57 |   88.23 |   94.39 | ...45-446,449-450 
 ...nfirmation-bus |   98.27 |    97.14 |     100 |   98.27 |                   
  message-bus.ts   |   98.14 |    97.05 |     100 |   98.14 | 42-43             
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/core          |   92.37 |    88.11 |   93.35 |   92.37 |                   
  baseLlmClient.ts |    88.4 |     83.8 |   81.81 |    88.4 | ...59,672,678-680 
  client.ts        |   92.05 |     87.4 |   91.66 |   92.05 | ...3987,4085-4086 
  ...tGenerator.ts |   86.34 |    87.34 |   84.61 |   86.34 | ...96-497,542-548 
  ...lScheduler.ts |   90.04 |    84.69 |   96.15 |   90.04 | ...6215,6243-6259 
  geminiChat.ts    |    94.7 |    90.12 |   95.53 |    94.7 | ...5052,5100-5101 
  geminiRequest.ts |     100 |      100 |     100 |     100 |                   
  genai-compat.ts  |     100 |      100 |     100 |     100 |                   
  ...MediaLimit.ts |     100 |       96 |     100 |     100 | 96                
  ...htProtocol.ts |    9.09 |      100 |       0 |    9.09 | ...9,62-66,69-110 
  ...ream-error.ts |     100 |      100 |     100 |     100 |                   
  logger.ts        |   87.41 |    87.02 |     100 |   87.41 | ...64-568,614-628 
  ...lay-buffer.ts |     100 |      100 |     100 |     100 |                   
  ...dispatcher.ts |     100 |      100 |     100 |     100 |                   
  ...tyDefaults.ts |     100 |      100 |     100 |     100 |                   
  ...g-controls.ts |   92.94 |       90 |     100 |   92.94 | 38-39,45-48       
  ...olExecutor.ts |   93.54 |    83.33 |      50 |   93.54 | 49-50             
  ...on-helpers.ts |   93.49 |    78.57 |     100 |   93.49 | ...10-211,228-229 
  ...issionFlow.ts |   98.97 |    96.96 |     100 |   98.97 | 107               
  ...try-policy.ts |     100 |      100 |     100 |     100 |                   
  ...ell-policy.ts |   94.89 |    88.54 |     100 |   94.89 | ...51-252,297-298 
  prompts.ts       |   93.64 |    91.42 |   83.33 |   93.64 | ...1209,1412-1413 
  ...ing-effort.ts |     100 |      100 |     100 |     100 |                   
  ...n-recovery.ts |   95.13 |       80 |     100 |   95.13 | ...06-107,142-144 
  ...t-profiler.ts |    97.9 |    81.15 |   88.23 |    97.9 | 117,124-125,130   
  ...port-retry.ts |     100 |      100 |     100 |     100 |                   
  tokenLimits.ts   |     100 |     92.1 |     100 |     100 | 87,122-139        
  ...reparation.ts |     100 |      100 |     100 |     100 |                   
  ...tion-guard.ts |   90.38 |    94.73 |     100 |   90.38 | 68-72             
  ...allIdUtils.ts |   98.41 |    93.47 |     100 |   98.41 | 36,45             
  ...okTriggers.ts |   99.45 |    92.43 |     100 |   99.45 | 182,193           
  ...terruption.ts |     100 |     92.3 |     100 |     100 | 86,104            
  turn.ts          |   98.67 |    93.12 |     100 |   98.67 | ...79,707-708,755 
  ...l-fallback.ts |     100 |      100 |     100 |     100 |                   
 ...ntentGenerator |   96.33 |    88.12 |   96.15 |   96.33 |                   
  ...tGenerator.ts |   97.24 |    86.72 |   94.87 |   97.24 | ...1429,1458,1469 
  converter.ts     |   96.19 |    89.25 |     100 |   96.19 | ...1329,1550-1552 
  index.ts         |       0 |        0 |       0 |       0 | 1-21              
  usage.ts         |     100 |      100 |     100 |     100 |                   
 ...ntentGenerator |   88.78 |    72.36 |   89.47 |   88.78 |                   
  ...tGenerator.ts |   87.18 |    71.83 |   88.88 |   87.18 | ...58-364,382-383 
  index.ts         |     100 |       80 |     100 |     100 | 50                
 ...ntentGenerator |    95.6 |    88.74 |    92.3 |    95.6 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...tGenerator.ts |   95.52 |    87.88 |   91.89 |   95.52 | ...1195-1196,1224 
  ...tDetection.ts |     100 |      100 |     100 |     100 |                   
 ...ntentGenerator |   91.64 |    90.46 |   95.61 |   91.64 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  converter.ts     |   91.15 |    89.32 |   96.87 |   91.15 | ...1914,2083-2098 
  errorHandler.ts  |     100 |      100 |     100 |     100 |                   
  index.ts         |   60.31 |       75 |      50 |   60.31 | ...71,74-78,90-94 
  ...tGenerator.ts |    66.4 |    70.58 |   88.88 |    66.4 | ...51-157,168-169 
  pipeline.ts      |   95.48 |    91.27 |     100 |   95.48 | ...1309,1317,1416 
  ...ix-caching.ts |   95.23 |    92.85 |     100 |   95.23 | 45-46,69-70       
  ...ureContext.ts |     100 |      100 |     100 |     100 |                   
  ...ingOptions.ts |       0 |        0 |       0 |       0 | 1                 
  ...CallParser.ts |   92.24 |     92.4 |     100 |   92.24 | ...28-529,549-552 
  ...kingParser.ts |     100 |    96.87 |     100 |     100 | 42                
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...rator/provider |   97.39 |    91.85 |    98.5 |   97.39 |                   
  dashscope.ts     |   98.37 |    94.35 |   96.55 |   98.37 | ...14-715,857-858 
  deepseek.ts      |   94.91 |    89.36 |     100 |   94.91 | ...31-132,145-146 
  default.ts       |   99.16 |    96.96 |     100 |   99.16 | 198               
  index.ts         |     100 |      100 |     100 |     100 |                   
  mimo.ts          |   94.11 |    66.66 |     100 |   94.11 | 29,52-53          
  minimax.ts       |     100 |      100 |     100 |     100 |                   
  mistral.ts       |   96.07 |    73.33 |     100 |   96.07 | 32-33             
  modelscope.ts    |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 |                   
  utils.ts         |     100 |      100 |     100 |     100 |                   
  zai.ts           |   92.13 |    82.14 |     100 |   92.13 | ...,39-40,135-137 
 src/extension     |   87.71 |    84.62 |   92.57 |   87.71 |                   
  ...ive-safety.ts |     100 |      100 |     100 |     100 |                   
  ...-converter.ts |   80.55 |    73.66 |     100 |   80.55 | ...1133,1179-1180 
  corruptFile.ts   |     100 |       50 |     100 |     100 | 40-45             
  ...-converter.ts |     100 |      100 |     100 |     100 |                   
  ...me-refresh.ts |     100 |      100 |     100 |     100 |                   
  ...sion-store.ts |   90.94 |    86.26 |   97.91 |   90.94 | ...1230-1236,1280 
  ...ionManager.ts |   83.89 |    82.86 |   81.72 |   83.89 | ...2832,2861-2862 
  ...references.ts |     100 |     90.9 |     100 |     100 | ...05,129,197,200 
  ...onSettings.ts |    92.3 |     94.4 |     100 |    92.3 | ...98-501,570-571 
  ...-converter.ts |    75.9 |    85.71 |   85.71 |    75.9 | ...98,202,214-248 
  github.ts        |   90.48 |    82.71 |     100 |   90.48 | ...4,994-995,1005 
  http-client.ts   |   84.61 |       80 |     100 |   84.61 | 20-21             
  i18n.ts          |   78.26 |       96 |      50 |   78.26 | 104-110,116-123   
  index.ts         |     100 |      100 |     100 |     100 |                   
  marketplace.ts   |   88.39 |    83.11 |     100 |   88.39 | ...08,494,507-508 
  ...ork-policy.ts |   89.72 |       90 |     100 |   89.72 | ...36,148-154,156 
  npm.ts           |   89.02 |    81.81 |     100 |   89.02 | ...86-688,695-700 
  override.ts      |   94.11 |    93.33 |     100 |   94.11 | 63-64,81-82       
  ...-converter.ts |   94.89 |    90.41 |     100 |   94.89 | ...50-151,222-224 
  redaction.ts     |     100 |      100 |     100 |     100 |                   
  settings.ts      |   66.26 |      100 |      50 |   66.26 | 81-107,141-146    
  ...ceRegistry.ts |   94.01 |    83.14 |     100 |   94.01 | ...38-344,365-366 
  storage.ts       |     100 |      100 |     100 |     100 |                   
  ...ableSchema.ts |     100 |      100 |     100 |     100 |                   
  variables.ts     |   88.95 |    84.21 |     100 |   88.95 | ...32-235,238-241 
  ...extraction.ts |   85.77 |       81 |   89.47 |   85.77 | ...02-205,260-261 
 ...ent-plugins-v1 |   84.94 |    79.51 |     100 |   84.94 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  manifest.ts      |   81.87 |    84.48 |     100 |   81.87 | ...55-156,161-174 
  mcp.ts           |   84.98 |    79.56 |     100 |   84.98 | ...88-389,419-420 
  paths.ts         |     100 |    94.44 |     100 |     100 | 59                
  skills.ts        |   82.31 |    63.88 |     100 |   82.31 | ...38-141,150-151 
 src/followup      |    79.9 |    78.92 |    90.9 |    79.9 |                   
  followupState.ts |   98.44 |    95.74 |     100 |   98.44 | 236-237           
  index.ts         |     100 |      100 |     100 |     100 |                   
  overlayFs.ts     |   96.29 |    88.88 |     100 |   96.29 | 78,108,122        
  speculation.ts   |   71.76 |    64.76 |   71.42 |   71.76 | ...53-654,661-662 
  ...onToolGate.ts |   97.97 |     87.5 |     100 |   97.97 | 105,110           
  ...nGenerator.ts |   72.03 |    81.15 |   83.33 |   72.03 | ...68-219,331-333 
 src/generated     |       0 |        0 |       0 |       0 |                   
  git-commit.ts    |       0 |        0 |       0 |       0 | 1-10              
 src/goals         |    93.3 |    89.05 |    94.6 |    93.3 |                   
  ...eGoalStore.ts |   87.61 |    88.88 |   86.66 |   87.61 | ...85-188,196-204 
  ...t-verifier.ts |   96.27 |     90.9 |     100 |   96.27 | ...20,143-146,163 
  ...checkpoint.ts |   81.48 |    76.19 |     100 |   81.48 | ...02-105,115-118 
  goal-evidence.ts |   88.79 |     88.5 |   96.42 |   88.79 | ...04-805,828-831 
  ...projection.ts |   66.66 |    72.97 |   33.33 |   66.66 | ...83,186,190-192 
  ...ersistence.ts |   87.73 |    84.84 |      80 |   87.73 | ...-94,97,101-106 
  goal-protocol.ts |   95.74 |    93.33 |     100 |   95.74 | 154-155           
  goal-reducer.ts  |    93.4 |    90.65 |   96.96 |    93.4 | ...27,501,519-520 
  goal-runtime.ts  |   97.62 |     89.9 |     100 |   97.62 | ...1049,1169-1170 
  goal-tools.ts    |   98.22 |    93.02 |      95 |   98.22 | ...46-147,248-249 
  ...rn-context.ts |     100 |      100 |     100 |     100 |                   
  goal-verifier.ts |   92.46 |    92.85 |     100 |   92.46 | ...69-172,185-187 
  goal-wire.ts     |       0 |        0 |       0 |       0 | 1-28              
  goalHook.ts      |   96.91 |    92.42 |     100 |   96.91 | 115-120,221-222   
  goalJudge.ts     |   95.84 |    87.09 |     100 |   95.84 | ...55-356,448-449 
  index.ts         |     100 |      100 |     100 |     100 |                   
 src/hooks         |   88.07 |    86.36 |   88.54 |   88.07 |                   
  ...okRegistry.ts |   86.48 |    77.08 |     100 |   86.48 | ...41-344,362-369 
  ...bortSignal.ts |     100 |      100 |     100 |     100 |                   
  context-usage.ts |     100 |      100 |     100 |     100 |                   
  ...terpolator.ts |   96.66 |    93.33 |     100 |   96.66 | 66-67             
  ...HookRunner.ts |   96.68 |    87.23 |     100 |   96.68 | 110-112,231-233   
  ...Aggregator.ts |   96.57 |    91.48 |     100 |   96.57 | ...20-321,402,404 
  ...entHandler.ts |   95.57 |    84.76 |   94.73 |   95.57 | ...1040-1041,1051 
  hookPlanner.ts   |   87.55 |    85.54 |   86.66 |   87.55 | ...22-226,233-244 
  hookRegistry.ts  |   92.53 |    85.43 |     100 |   92.53 | ...39,458,462,466 
  hookRunner.ts    |   62.65 |    72.34 |   66.66 |   62.65 | ...70-771,780-781 
  hookSystem.ts    |   87.64 |     98.5 |   70.83 |   87.64 | ...58-759,765-766 
  ...HookRunner.ts |   79.06 |    66.66 |      80 |   79.06 | ...33-434,452-456 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...edCallback.ts |     100 |      100 |     100 |     100 |                   
  ...HookRunner.ts |   94.19 |    84.37 |   81.81 |   94.19 | ...76-384,458-459 
  ...SkillHooks.ts |   78.75 |       75 |   66.66 |   78.75 | 62-66,137-152     
  ...oksManager.ts |   94.87 |    88.88 |     100 |   94.87 | ...84,325,327-329 
  ssrfGuard.ts     |   86.45 |    89.13 |     100 |   86.45 | ...85,289-295,301 
  stopHookCap.ts   |     100 |      100 |     100 |     100 |                   
  trustedHooks.ts  |      90 |    52.63 |     100 |      90 | ...53,66-67,97-98 
  types.ts         |   94.25 |    96.12 |   88.88 |   94.25 | ...46-547,632-636 
  urlValidator.ts  |     100 |      100 |     100 |     100 |                   
  ...it-context.ts |     100 |      100 |     100 |     100 |                   
 src/ide           |   76.98 |    85.03 |   79.03 |   76.98 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  detect-ide.ts    |     100 |      100 |     100 |     100 |                   
  ide-client.ts    |   69.16 |    84.65 |   68.29 |   69.16 | ...1068,1097-1105 
  ide-installer.ts |   89.06 |    79.31 |     100 |   89.06 | ...36,143-147,160 
  ideContext.ts    |     100 |      100 |     100 |     100 |                   
  process-utils.ts |   84.84 |    71.79 |     100 |   84.84 | ...37,151,193-194 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/lsp           |   58.96 |    70.57 |   66.14 |   58.96 |                   
  ...nfigLoader.ts |   80.55 |       72 |   95.45 |   80.55 | ...02-504,508-514 
  ...ionFactory.ts |   42.81 |    73.07 |      50 |   42.81 | ...76-427,433-450 
  ...Normalizer.ts |   23.09 |    13.72 |   30.43 |   23.09 | ...04-905,909-924 
  ...verManager.ts |   75.73 |     80.1 |   79.66 |   75.73 | ...1346,1352-1382 
  ...eLspClient.ts |   32.78 |       80 |   16.66 |   32.78 | ...89-293,299-300 
  ...LspService.ts |      60 |    73.36 |   78.26 |      60 | ...1575,1635-1645 
  configHash.ts    |     100 |      100 |     100 |     100 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/mcp           |    82.3 |    77.81 |   78.33 |    82.3 |                   
  configHash.ts    |     100 |      100 |     100 |     100 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...h-provider.ts |   86.95 |      100 |   33.33 |   86.95 | ...,93,97,101-102 
  ...h-provider.ts |   79.31 |    58.06 |     100 |   79.31 | ...26-933,940-942 
  ...en-storage.ts |   98.78 |    97.95 |     100 |   98.78 | 106-107           
  oauth-utils.ts   |   73.61 |    85.48 |    92.3 |   73.61 | ...46-366,392-421 
  ...n-provider.ts |   89.83 |       96 |   45.45 |   89.83 | ...43,147,151-152 
 .../token-storage |   82.12 |    88.19 |   89.28 |   82.12 |                   
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  ...en-storage.ts |   87.08 |    87.03 |   95.23 |   87.08 | ...00-201,214-215 
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...en-storage.ts |   68.14 |    82.35 |   64.28 |   68.14 | ...81-295,298-314 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/memory        |   87.83 |    83.81 |   90.47 |   87.83 |                   
  ...y-document.ts |   89.52 |    84.61 |     100 |   89.52 | ...24-325,329-330 
  ...nel-memory.ts |   97.36 |    96.63 |   96.42 |   97.36 | ...91-293,367-368 
  const.ts         |   94.28 |     92.3 |     100 |   94.28 | 66-67             
  dream.ts         |    64.6 |    72.22 |      50 |    64.6 | ...04-109,124-165 
  ...entPlanner.ts |     100 |    83.33 |     100 |     100 | 136,146           
  entries.ts       |   75.59 |    84.84 |   83.33 |   75.59 | ...56-157,172-180 
  extract.ts       |   92.41 |    79.41 |     100 |   92.41 | 56-61,100,119-122 
  ...entPlanner.ts |   91.59 |    76.74 |     100 |   91.59 | ...05,114-117,293 
  ...ionPlanner.ts |       0 |        0 |       0 |       0 | 1                 
  forget.ts        |   81.83 |       75 |   83.33 |   81.83 | ...51,474,478-507 
  indexer.ts       |   94.14 |       84 |     100 |   94.14 | ...32-233,334,337 
  ...kill-agent.ts |   97.94 |    89.36 |     100 |   97.94 | 82-83,179-180     
  manager.ts       |    78.4 |    82.29 |   77.77 |    78.4 | ...1482,1495-1497 
  ...ent-config.ts |   86.99 |    82.69 |   86.36 |   86.99 | ...69,389,396-402 
  memoryAge.ts     |   90.47 |       80 |     100 |   90.47 | 50-51             
  paths.ts         |     100 |      100 |     100 |     100 |                   
  ...ing-skills.ts |     100 |       72 |     100 |     100 | 31-35,73-78,97    
  prompt.ts        |   97.26 |    87.03 |     100 |   97.26 | ...10-218,222,225 
  recall.ts        |   82.06 |       75 |    90.9 |   82.06 | ...59-364,395-406 
  refresh.ts       |   93.58 |    89.58 |     100 |   93.58 | ...75-176,183-184 
  ...ceSelector.ts |    93.1 |    81.81 |     100 |    93.1 | ...25,127-128,136 
  remember.ts      |   98.89 |    90.19 |     100 |   98.89 | 50,70             
  scan.ts          |   93.12 |    77.41 |     100 |   93.12 | ...08-109,154,157 
  scopes.ts        |     100 |      100 |     100 |     100 |                   
  ...et-scanner.ts |     100 |      100 |     100 |     100 |                   
  ...entPlanner.ts |   77.24 |    74.07 |   72.22 |   77.24 | ...52-456,459,465 
  status.ts        |   10.52 |      100 |       0 |   10.52 | 41-98             
  store.ts         |   92.92 |    81.81 |     100 |   92.92 | ...16-117,147-148 
  ...git-status.ts |     100 |     87.5 |     100 |     100 | 30                
  ...cret-guard.ts |     100 |      100 |     100 |     100 |                   
  ...emory-sync.ts |   94.24 |    82.85 |     100 |   94.24 | ...34-236,246-247 
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...ontextFile.ts |   81.21 |     79.1 |   81.81 |   81.21 | ...63-277,291-296 
 src/mocks         |       0 |        0 |       0 |       0 |                   
  msw.ts           |       0 |        0 |       0 |       0 | 1-9               
 src/models        |   93.63 |    90.07 |   91.35 |   93.63 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...tor-config.ts |   97.77 |    91.83 |     100 |   97.77 | 155,161,171       
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...nfigErrors.ts |   74.22 |       44 |   84.61 |   74.22 | ...,67-74,106-117 
  ...igResolver.ts |   98.71 |    93.33 |     100 |   98.71 | 166,328,334       
  modelRegistry.ts |     100 |    98.11 |     100 |     100 | 177,261           
  modelsConfig.ts  |   91.56 |    89.92 |   88.63 |   91.56 | ...1467,1496-1497 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/output        |     100 |      100 |     100 |     100 |                   
  ...-formatter.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/permissions   |   83.79 |    91.17 |   71.07 |   83.79 |                   
  autoMode.ts      |   97.66 |    93.13 |     100 |   97.66 | ...82-589,635,712 
  ...transcript.ts |      98 |       84 |     100 |      98 | 200-201           
  classifier.ts    |      94 |    94.54 |     100 |      94 | 158-165,389-393   
  ...erousRules.ts |     100 |    89.36 |     100 |     100 | 110,133,147,175   
  ...alTracking.ts |     100 |      100 |     100 |     100 |                   
  ...e-commands.ts |   86.77 |     73.8 |     100 |   86.77 | 131-141,210-214   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...on-manager.ts |   86.63 |    89.01 |      80 |   86.63 | ...1111,1217-1221 
  rule-parser.ts   |   94.49 |     92.7 |     100 |   94.49 | ...1447,1481-1483 
  ...-semantics.ts |   70.44 |    91.09 |   46.66 |   70.44 | ...2237,2311-2314 
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...sifier-prompts |   99.04 |    95.23 |     100 |   99.04 |                   
  system-prompt.ts |   99.04 |    95.23 |     100 |   99.04 | 220               
 src/prompts       |   83.63 |      100 |    87.5 |   83.63 |                   
  mcp-prompts.ts   |   18.18 |      100 |       0 |   18.18 | 11-19             
  ...t-registry.ts |     100 |      100 |     100 |     100 |                   
 src/providers     |   83.71 |     78.6 |   81.25 |   83.71 |                   
  all-providers.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  install.ts       |   93.11 |     84.5 |     100 |   93.11 | ...56-257,330-331 
  ...der-config.ts |   75.85 |    74.04 |   78.26 |   75.85 | ...73-474,502-503 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...viders/presets |   97.82 |    91.66 |   63.63 |   97.82 |                   
  ...oding-plan.ts |   87.34 |      100 |       0 |   87.34 | 81-83,86-88,90-93 
  ...a-standard.ts |     100 |      100 |     100 |     100 |                   
  ...token-plan.ts |     100 |      100 |     100 |     100 |                   
  ...m-provider.ts |   97.05 |    81.25 |      75 |   97.05 | 118-119           
  deepseek.ts      |     100 |      100 |     100 |     100 |                   
  grok.ts          |     100 |      100 |     100 |     100 |                   
  idealab.ts       |     100 |      100 |     100 |     100 |                   
  minimax.ts       |     100 |      100 |     100 |     100 |                   
  modelscope.ts    |     100 |      100 |     100 |     100 |                   
  openrouter.ts    |     100 |      100 |     100 |     100 |                   
  requesty.ts      |     100 |      100 |     100 |     100 |                   
  zai.ts           |     100 |      100 |     100 |     100 |                   
 src/qwen          |   85.41 |    78.76 |   95.89 |   85.41 |                   
  ...tGenerator.ts |   98.64 |    98.18 |     100 |   98.64 | 105-106           
  qwenOAuth2.ts    |   82.79 |    73.75 |   90.62 |   82.79 | ...1205-1221,1251 
  ...kenManager.ts |   85.36 |    76.61 |     100 |   85.36 | ...52-757,778-783 
 src/resources     |     100 |      100 |     100 |     100 |                   
  ...e-registry.ts |     100 |      100 |     100 |     100 |                   
 src/services      |   89.77 |    84.63 |   96.92 |   89.77 |                   
  ...ionTrailer.ts |     100 |      100 |     100 |     100 |                   
  ...llRegistry.ts |    98.5 |     87.5 |     100 |    98.5 | 81-82,105,476-477 
  ...ionService.ts |   97.51 |    96.15 |     100 |   97.51 | ...,929,1072-1080 
  ...ingService.ts |   91.41 |    85.15 |   95.65 |   91.41 | ...2116,2143-2144 
  ...ttribution.ts |   91.73 |    87.71 |      90 |   91.73 | ...80-685,826-827 
  ...utSlimming.ts |    97.2 |    93.93 |     100 |    97.2 | ...39-340,378-381 
  cronScheduler.ts |   94.17 |    90.45 |      98 |   94.17 | ...1333,1736-1737 
  cronTasksFile.ts |   96.31 |    91.81 |     100 |   96.31 | ...11,336-337,483 
  cronTasksLock.ts |   94.44 |    89.47 |     100 |   94.44 | ...02-103,132-133 
  ...eryService.ts |   96.22 |    93.54 |      90 |   96.22 | 121,155-156,161   
  ...oryService.ts |   88.17 |    79.02 |    92.3 |   88.17 | ...1303,1344-1347 
  fileReadCache.ts |    97.5 |    96.07 |     100 |    97.5 | 349-350,363-364   
  ...temService.ts |    92.8 |    84.68 |   94.11 |    92.8 | ...53,479-486,531 
  ...ratedFiles.ts |      96 |    88.23 |     100 |      96 | 119-120,146-147   
  gitInit.ts       |     100 |      100 |     100 |     100 |                   
  ...reeService.ts |    73.7 |    68.49 |   95.83 |    73.7 | ...2196,2225-2226 
  ...on-service.ts |   87.38 |       72 |     100 |   87.38 | ...01-305,343-344 
  ...references.ts |   98.39 |    88.76 |     100 |   98.39 | 154-155,215-216   
  ...ionService.ts |   98.26 |    97.35 |     100 |   98.26 | ...13-714,761-762 
  ...ticsDumper.ts |   98.37 |    95.23 |     100 |   98.37 | 185-186           
  ...ureMonitor.ts |   95.82 |    90.52 |   97.05 |   95.82 | ...60,861,875-877 
  ...orRegistry.ts |    97.3 |    91.22 |     100 |    97.3 | ...53-454,611-612 
  ...ttachments.ts |   97.74 |    90.85 |     100 |   97.74 | 298-308,646       
  ...ersistence.ts |   90.95 |    78.75 |     100 |   90.95 | ...78,963-964,992 
  ...on-service.ts |   94.49 |    92.26 |   97.14 |   94.49 | ...98-600,656-664 
  ...ce-service.ts |    98.5 |    94.11 |    90.9 |    98.5 | 64-65             
  ...ipt-reader.ts |   94.55 |    89.78 |   96.66 |   94.55 | ...1353-1354,1422 
  ...est-helper.ts |       0 |        0 |       0 |       0 | 1-65              
  ...iter-lease.ts |   83.14 |    74.47 |   97.61 |   83.14 | ...2433,2445-2448 
  sessionRecap.ts  |   67.56 |    43.47 |     100 |   67.56 | ...60,178,180-183 
  ...ionService.ts |   88.79 |    83.72 |   97.18 |   88.79 | ...2477,2553-2573 
  sessionTitle.ts  |   94.26 |    73.21 |     100 |   94.26 | ...45-248,279-280 
  ...ionService.ts |    84.4 |    78.45 |   97.18 |    84.4 | ...2493,2499-2504 
  ...pInhibitor.ts |   97.42 |    92.77 |     100 |   97.42 | ...30,169,369-370 
  ...Estimation.ts |     100 |    88.23 |     100 |     100 | 118-119           
  ...ageService.ts |   97.76 |    91.59 |   93.75 |   97.76 | ...61-262,366,567 
  ...ite-origin.ts |     100 |    93.33 |     100 |     100 | 32                
  ...UseSummary.ts |   94.63 |    88.46 |     100 |   94.63 | ...62-164,214-215 
  ...rd-service.ts |     100 |    88.37 |     100 |     100 | ...29,145-146,241 
  ...oryService.ts |   90.72 |    84.07 |     100 |   90.72 | ...06-509,561-562 
  ...reeCleanup.ts |   14.42 |      100 |   33.33 |   14.42 | 58-186            
  ...ionService.ts |   87.98 |    86.95 |     100 |   87.98 | ...38-439,455-456 
 ...icrocompaction |    98.9 |    95.08 |     100 |    98.9 |                   
  microcompact.ts  |    98.9 |    95.08 |     100 |    98.9 | ...40,749,758-759 
 ...s/visionBridge |   98.81 |    92.12 |     100 |   98.81 |                   
  ...capability.ts |     100 |      100 |     100 |     100 |                   
  ...part-utils.ts |     100 |      100 |     100 |     100 |                   
  ...ion-bridge.ts |   98.72 |    82.35 |     100 |   98.72 | 65,71             
  ...-constants.ts |     100 |      100 |     100 |     100 |                   
  ...ge-service.ts |   98.61 |     94.7 |     100 |   98.61 | ...06,666,679-680 
 src/skills        |   89.29 |    85.89 |   93.61 |   89.29 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...activation.ts |     100 |    93.33 |     100 |     100 | 93,112            
  skill-curator.ts |   89.71 |    81.54 |     100 |   89.71 | ...01-902,904-907 
  skill-load.ts    |   94.84 |     87.5 |     100 |   94.84 | ...03,223,235-237 
  skill-manager.ts |   84.82 |    85.29 |   83.33 |   84.82 | ...1243,1250-1254 
  skill-paths.ts   |   90.42 |     87.5 |     100 |   90.42 | ...19-120,125-126 
  symlinkScope.ts  |     100 |      100 |     100 |     100 |                   
  types.ts         |   97.91 |    98.03 |     100 |   97.91 | 277-278           
 ...ataviz/scripts |   80.06 |    95.23 |   88.23 |   80.06 |                   
  ...te_palette.js |   80.06 |    95.23 |   88.23 |   80.06 | 261-296,306-328   
 ...s/bundled/loop |   97.48 |    95.77 |     100 |   97.48 |                   
  ...omous-loop.ts |     100 |      100 |     100 |     100 |                   
  ...-task-file.ts |   94.85 |     92.4 |     100 |   94.85 | ...56,367,375-376 
  ...k-resolver.ts |     100 |      100 |     100 |     100 |                   
 src/subagents     |   87.72 |    89.01 |   96.55 |   87.72 |                   
  ...ter-schema.ts |     100 |    98.07 |     100 |     100 | 99                
  ...tin-agents.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...nt-manager.ts |   84.48 |    85.91 |   94.87 |   84.48 | ...1582,1659-1660 
  types.ts         |     100 |      100 |     100 |     100 |                   
  validation.ts    |   92.46 |    95.18 |     100 |   92.46 | 47-52,63-68,71-76 
 src/telemetry     |   81.73 |    83.57 |   84.83 |   81.73 |                   
  ...ty-tracker.ts |     100 |      100 |     100 |     100 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...on-metrics.ts |   99.08 |    80.95 |     100 |   99.08 | 185,199           
  ...on-tracing.ts |   76.31 |    74.62 |   73.68 |   76.31 | ...80,387-389,405 
  ...attributes.ts |   95.15 |    87.27 |     100 |   95.15 | ...97-198,216-217 
  ...ag-metrics.ts |     100 |    77.77 |     100 |     100 | 21,40             
  ...t-loop-lag.ts |   96.85 |    85.71 |     100 |   96.85 | 170-173           
  ...-exporters.ts |   65.78 |    83.33 |   55.55 |   65.78 | ...04-105,108-109 
  ...ai-content.ts |    74.5 |    66.41 |   91.66 |    74.5 | ...1480,1493-1502 
  ...i-provider.ts |     100 |       99 |     100 |     100 | 99                
  ...ai-request.ts |   87.52 |    92.79 |   83.78 |   87.52 | ...55-561,564-570 
  gen-ai-usage.ts  |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-111             
  ...-processor.ts |    99.1 |    95.72 |      95 |    99.1 | 145,369-370       
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-128             
  loggers.ts       |   60.03 |    76.51 |   66.07 |   60.03 | ...1484,1501-1521 
  metrics.ts       |   80.37 |    82.35 |   80.95 |   80.37 | ...1150,1153-1164 
  otlp-urls.ts     |     100 |      100 |     100 |     100 |                   
  ...attributes.ts |     100 |      100 |     100 |     100 |                   
  ...ime-config.ts |       0 |        0 |       0 |       0 | 1                 
  sanitize.ts      |      80 |    83.33 |     100 |      80 | 35-36,41-42       
  ...rters-grpc.ts |     100 |      100 |     100 |     100 |                   
  ...rters-http.ts |     100 |      100 |     100 |     100 |                   
  sdk-impl.ts      |   91.06 |    87.15 |   68.75 |   91.06 | ...32,482-483,499 
  sdk.ts           |   82.12 |    90.47 |   66.66 |   82.12 | ...90-194,232-254 
  ...on-context.ts |     100 |      100 |     100 |     100 |                   
  ...on-tracing.ts |    91.1 |    88.68 |   96.77 |    91.1 | ...1737,1768-1771 
  ...etry-utils.ts |     100 |      100 |     100 |     100 |                   
  ...l-decision.ts |     100 |      100 |     100 |     100 |                   
  trace-context.ts |     100 |      100 |     100 |     100 |                   
  ...e-id-utils.ts |     100 |      100 |     100 |     100 |                   
  tracer.ts        |   98.56 |    88.63 |     100 |   98.56 | 52,101            
  types.ts         |      83 |     87.5 |   86.36 |      83 | ...1467,1471-1478 
  uiTelemetry.ts   |   97.18 |    93.93 |      88 |   97.18 | ...70,314,461-462 
 ...ry/qwen-logger |   74.23 |     80.7 |      70 |   74.23 |                   
  event-types.ts   |       0 |        0 |       0 |       0 |                   
  qwen-logger.ts   |   74.23 |    80.53 |   69.49 |   74.23 | ...1122,1160-1161 
 src/test-utils    |   96.02 |    98.41 |   82.92 |   96.02 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  ...st-helpers.ts |   94.11 |       90 |     100 |   94.11 | 69-70             
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...mised-lock.ts |     100 |      100 |     100 |     100 |                   
  mock-tool.ts     |   94.85 |      100 |   78.78 |   94.85 | ...53,227-228,241 
  ...aceContext.ts |     100 |      100 |     100 |     100 |                   
 src/tools         |   86.25 |    85.07 |   88.72 |   86.25 |                   
  ...erQuestion.ts |   89.71 |    80.76 |   91.66 |   89.71 | ...66-367,374-375 
  ...-registrar.ts |    77.7 |    66.66 |   66.66 |    77.7 | ...72-277,292-294 
  ...ub-session.ts |   89.67 |     91.3 |   81.81 |   89.67 | ...03-304,315-322 
  cron-create.ts   |   90.64 |    92.85 |   72.72 |   90.64 | ...,73-74,223-231 
  cron-delete.ts   |   97.56 |      100 |   83.33 |   97.56 | 31-32             
  cron-list.ts     |   98.23 |    95.34 |    87.5 |   98.23 | 57-58             
  diffOptions.ts   |     100 |      100 |     100 |     100 |                   
  display-image.ts |   87.42 |    84.84 |   88.88 |   87.42 | ...29-134,194-195 
  edit.ts          |   82.76 |    86.77 |   81.25 |   82.76 | ...45-746,865-915 
  ...r-worktree.ts |   83.14 |    67.56 |    87.5 |   83.14 | ...84-187,278-279 
  enterPlanMode.ts |      85 |     82.6 |    87.5 |      85 | ...28-133,161-175 
  exit-worktree.ts |   83.29 |    83.65 |   94.44 |   83.29 | ...14-515,537-538 
  exitPlanMode.ts  |      95 |    85.29 |     100 |      95 | ...21-325,344,378 
  ...permission.ts |     100 |      100 |     100 |     100 |                   
  glob.ts          |   96.33 |     88.5 |     100 |   96.33 | ...24-225,373,376 
  grep.ts          |   90.73 |    86.61 |   85.71 |   90.73 | ...76-677,727-728 
  ...adTracking.ts |     100 |      100 |     100 |     100 |                   
  image-gen.ts     |   91.66 |    77.41 |    90.9 |   91.66 | ...13-214,221-222 
  list-agents.ts   |   94.02 |    82.35 |   83.33 |   94.02 | 31-32,47-48       
  loop-wakeup.ts   |   99.27 |    92.85 |     100 |   99.27 | 45                
  ls.ts            |   96.74 |    90.27 |     100 |   96.74 | 176-181,212,216   
  lsp.ts           |   72.71 |     59.5 |   90.32 |   72.71 | ...1212,1214-1215 
  ...nt-manager.ts |   82.13 |    80.47 |   85.71 |   82.13 | ...3234,3236-3237 
  mcp-client.ts    |   80.03 |    86.58 |   89.47 |   80.03 | ...2272,2276-2279 
  ...ry-timeout.ts |     100 |      100 |     100 |     100 |                   
  mcp-errors.ts    |     100 |      100 |     100 |     100 |                   
  ...pool-entry.ts |   79.21 |    85.71 |   81.57 |   79.21 | ...1341,1349-1350 
  ...ool-events.ts |       8 |      100 |       0 |       8 | 132-158           
  mcp-pool-key.ts  |   97.46 |    93.93 |     100 |   97.46 | 176-177           
  ...ce-content.ts |   96.55 |    91.17 |     100 |   96.55 | 80-82             
  mcp-retry.ts     |   97.67 |    95.65 |     100 |   97.67 | 131-132           
  ...ion-config.ts |     100 |      100 |     100 |     100 |                   
  mcp-status.ts    |     100 |      100 |     100 |     100 |                   
  mcp-tool.ts      |   98.35 |    93.71 |     100 |   98.35 | ...-990,1045-1046 
  ...sport-pool.ts |   83.98 |     80.3 |   88.46 |   83.98 | ...1409,1416-1420 
  ...ace-budget.ts |   87.27 |     82.6 |     100 |   87.27 | ...00-305,340-345 
  memory-config.ts |     100 |      100 |     100 |     100 |                   
  ...iable-tool.ts |     100 |    84.61 |     100 |     100 | 101,108           
  monitor.ts       |   91.82 |    83.09 |   88.46 |   91.82 | ...99,612,810-815 
  notebook-edit.ts |   85.71 |    77.08 |   81.25 |   85.71 | ...96-912,958-959 
  ...escendants.ts |   36.17 |    64.51 |   55.55 |   36.17 | ...46-310,385-390 
  ...nforcement.ts |   83.21 |    90.69 |     100 |   83.21 | 147-158,207-220   
  read-file.ts     |   95.49 |    88.52 |   86.66 |   95.49 | ...49,464,536-537 
  ...p-resource.ts |   96.85 |      100 |   91.66 |   96.85 | 92-96             
  ...d-artifact.ts |   91.18 |    86.71 |    87.5 |   91.18 | ...26-427,441-453 
  ripGrep.ts       |    94.6 |    87.26 |   95.23 |    94.6 | ...33-734,740-741 
  ...-transport.ts |   71.42 |    55.55 |   71.42 |   71.42 | ...36-137,143-144 
  send-message.ts  |   81.13 |    89.74 |    62.5 |   81.13 | ...80-286,363-371 
  ...n-mcp-view.ts |   94.07 |    91.89 |    90.9 |   94.07 | 131-139           
  shell.ts         |   78.81 |    84.22 |   91.91 |   78.81 | ...5036,5099-5100 
  skill-utils.ts   |     100 |      100 |     100 |     100 |                   
  skill.ts         |   91.39 |    92.55 |      90 |   91.39 | ...84,488,534-556 
  ...eticOutput.ts |   95.12 |      100 |      80 |   95.12 | 87-88             
  task-create.ts   |    94.4 |    93.33 |   81.81 |    94.4 | 45-49,63-64,95    
  task-list.ts     |   73.38 |    77.77 |   83.33 |   73.38 | ...02,105,109-116 
  task-stop.ts     |   93.14 |    96.15 |   85.71 |   93.14 | 39-40,54-64       
  task-update.ts   |   82.89 |    83.92 |    92.3 |   82.89 | ...14-422,454-465 
  team-create.ts   |   97.22 |    85.71 |   83.33 |   97.22 | 48-49,129-130     
  team-delete.ts   |   86.74 |    83.33 |   83.33 |   86.74 | 37-38,42-48,72-73 
  ...n-approval.ts |   92.14 |    96.77 |   77.77 |   92.14 | 38-39,42-43,93-99 
  todoWrite.ts     |   95.13 |    87.85 |   93.33 |   95.13 | ...23-527,540-545 
  tool-error.ts    |     100 |      100 |     100 |     100 |                   
  tool-names.ts    |     100 |      100 |     100 |     100 |                   
  tool-registry.ts |   78.57 |    79.59 |    82.6 |   78.57 | ...89-990,998-999 
  tool-search.ts   |   96.19 |    89.72 |   93.33 |   96.19 | ...09,259-264,426 
  tools.ts         |   93.11 |    92.53 |   91.66 |   93.11 | ...69-570,586-592 
  ...reapproved.ts |   99.27 |    94.11 |     100 |   99.27 | 170               
  web-fetch.ts     |   96.05 |    90.54 |   96.77 |   96.05 | ...85-786,800-801 
  web-search.ts    |   90.58 |    83.57 |      80 |   90.58 | ...1025,1083-1086 
  write-file.ts    |   86.72 |    84.92 |   88.88 |   86.72 | ...25-828,865-900 
  zoom-image.ts    |   95.76 |    93.75 |      90 |   95.76 | 54-59,203-204     
 src/tools/agent   |   87.22 |    87.68 |   88.69 |   87.22 |                   
  agent.ts         |   85.84 |    86.59 |   86.31 |   85.84 | ...4315,4337-4347 
  fork-profile.ts  |   93.65 |       90 |     100 |   93.65 | ...33-134,171-174 
  fork-subagent.ts |   98.73 |       95 |     100 |   98.73 | 101-102,173       
 ...tools/artifact |   95.78 |    92.51 |   88.63 |   95.78 |                   
  artifact-tool.ts |   91.46 |    88.46 |   71.42 |   91.46 | ...13-314,322-325 
  ...-publisher.ts |     100 |    85.71 |     100 |     100 | 32                
  ...-publisher.ts |   96.74 |    97.72 |    87.5 |   96.74 | 29-30,156-157     
  html.ts          |     100 |    96.77 |     100 |     100 | 122               
  ...-publisher.ts |     100 |       80 |     100 |     100 | 30                
  oss-publisher.ts |    98.1 |    91.48 |     100 |    98.1 | 43-45             
  publisher.ts     |     100 |      100 |     100 |     100 |                   
 ...s/computer-use |   90.21 |    82.17 |   78.08 |   90.21 |                   
  bootstrap.ts     |   59.42 |    80.95 |   41.66 |   59.42 | ...35-339,341-345 
  client.ts        |   80.11 |       90 |   77.77 |   80.11 | ...97,242-243,274 
  constants.ts     |     100 |    94.73 |     100 |     100 | 129,256           
  downloader.ts    |   65.29 |    52.77 |   58.33 |   65.29 | ...99-300,316-355 
  index.ts         |     100 |      100 |     100 |     100 |                   
  install-state.ts |   94.44 |    72.72 |     100 |   94.44 | 44-45             
  ...n-detector.ts |     100 |     87.5 |     100 |     100 | 50                
  schemas.ts       |     100 |      100 |     100 |     100 |                   
  tool.ts          |    96.3 |    85.71 |     100 |    96.3 | 75-76,184,252-258 
 ...tools/workflow |   86.51 |    84.81 |      75 |   86.51 |                   
  workflow.ts      |   86.51 |    84.81 |      75 |   86.51 | ...67,512,514-515 
 src/utils         |   92.89 |     89.6 |   96.88 |   92.89 |                   
  LruCache.ts      |     100 |      100 |     100 |     100 |                   
  ...Controller.ts |     100 |      100 |     100 |     100 |                   
  ...ssageQueue.ts |     100 |      100 |     100 |     100 |                   
  ...cFileWrite.ts |   94.94 |    92.47 |     100 |   94.94 | ...43-544,651-655 
  bareMode.ts      |   81.81 |      100 |      50 |   81.81 | 18-19             
  ...ry-content.ts |   98.45 |    95.45 |     100 |   98.45 | 132-133,159-160   
  browser.ts       |   86.84 |    78.94 |     100 |   86.84 | 34,36-37,65-66    
  btwUtils.ts      |   13.95 |      100 |       0 |   13.95 | 17-31,34-55       
  bundlePaths.ts   |     100 |      100 |     100 |     100 |                   
  ...on-context.ts |     100 |      100 |     100 |     100 |                   
  ...igResolver.ts |     100 |      100 |     100 |     100 |                   
  ...engthError.ts |   91.06 |    89.47 |     100 |   91.06 | ...46-147,154-155 
  ...n-branches.ts |   95.88 |    94.11 |      95 |   95.88 | ...98-499,511-524 
  ...tion-chain.ts |     100 |      100 |     100 |     100 |                   
  cronDisplay.ts   |     100 |    97.61 |     100 |     100 | 46                
  cronParser.ts    |   95.34 |    93.33 |     100 |   95.34 | 41-42,47-48,70-71 
  debugLogger.ts   |   96.66 |    96.61 |   88.88 |   96.66 | 192-196           
  editHelper.ts    |   93.63 |     83.9 |     100 |   93.63 | ...27-428,462-463 
  editor.ts        |   97.65 |    95.45 |     100 |   97.65 | ...35-336,338-339 
  encoding.ts      |     100 |      100 |     100 |     100 |                   
  env.ts           |     100 |      100 |     100 |     100 |                   
  ...arResolver.ts |   94.28 |    88.88 |     100 |   94.28 | 28-29,125-126     
  ...entContext.ts |   96.63 |    90.13 |   96.66 |   96.63 | ...42,444-445,512 
  errorParsing.ts  |     100 |      100 |     100 |     100 |                   
  ...rReporting.ts |   95.65 |    93.33 |     100 |   95.65 | 37-38             
  errors.ts        |   83.01 |    95.03 |    61.9 |   83.01 | ...62-378,382-388 
  fetch.ts         |   90.68 |    82.51 |     100 |   90.68 | ...72,483-484,503 
  file-identity.ts |     100 |      100 |     100 |     100 |                   
  fileUtils.ts     |   94.87 |    92.95 |   96.15 |   94.87 | ...1907,1915-1916 
  forkedAgent.ts   |   92.45 |    82.35 |   93.75 |   92.45 | ...34,642,647-654 
  formatters.ts    |     100 |      100 |     100 |     100 |                   
  ...eUtilities.ts |    92.4 |    86.95 |     100 |    92.4 | ...52-158,168-169 
  ...rStructure.ts |   94.39 |    94.28 |     100 |   94.39 | ...29-132,343-348 
  getPty.ts        |   31.57 |       50 |     100 |   31.57 | 26-38             
  git-branches.ts  |    91.6 |    84.21 |    92.3 |    91.6 | ...90,405-410,570 
  ...fig-safety.ts |   97.01 |       80 |     100 |   97.01 | 53-54             
  gitDiff.ts       |   95.19 |    81.36 |     100 |   95.19 | ...1073,1419-1420 
  gitDirect.ts     |   98.84 |    94.28 |     100 |   98.84 | 234,318           
  ...noreParser.ts |   94.48 |    93.22 |     100 |   94.48 | ...23-124,158-159 
  gitUtils.ts      |   78.02 |    81.25 |   85.71 |   78.02 | ...22-123,147-198 
  github-prs.ts    |   95.74 |    82.27 |     100 |   95.74 | 216,314-322       
  iconvHelper.ts   |     100 |      100 |     100 |     100 |                   
  ...rePatterns.ts |     100 |      100 |     100 |     100 |                   
  image-view.ts    |   95.12 |    93.33 |     100 |   95.12 | ...68-172,240-244 
  ...ionManager.ts |     100 |     90.9 |     100 |     100 | 27                
  ...lPromptIds.ts |     100 |      100 |     100 |     100 |                   
  ...on-context.ts |     100 |      100 |     100 |     100 |                   
  jsonl-utils.ts   |   95.27 |     93.1 |     100 |   95.27 | ...16-317,359-362 
  ...-detection.ts |     100 |      100 |     100 |     100 |                   
  ...iconv-lite.ts |     100 |      100 |     100 |     100 |                   
  ...simple-git.ts |   96.77 |    91.66 |     100 |   96.77 | 38                
  ...m-headless.ts |      96 |    88.88 |     100 |      96 | 34                
  ...iagnostics.ts |    96.4 |     94.2 |     100 |    96.4 | ...66,293-294,376 
  ...yDiscovery.ts |    92.4 |    89.13 |     100 |    92.4 | ...28,331,522-525 
  ...tProcessor.ts |   94.01 |       90 |     100 |   94.01 | ...47-353,445-446 
  ...Inspectors.ts |     100 |      100 |     100 |     100 |                   
  modelId.ts       |   98.96 |    98.21 |     100 |   98.96 | 153               
  ...kerChecker.ts |    90.9 |    91.66 |     100 |    90.9 | 73-79             
  notebook.ts      |   94.57 |    89.91 |   95.83 |   94.57 | ...21,333,385-387 
  openaiLogger.ts  |   91.66 |    89.74 |     100 |   91.66 | ...26-228,251-256 
  osc8.ts          |   54.26 |    64.86 |   83.33 |   54.26 | ...72-195,197-257 
  partUtils.ts     |     100 |    98.64 |     100 |     100 | 211               
  pathReader.ts    |     100 |      100 |     100 |     100 |                   
  paths.ts         |   93.61 |    92.42 |     100 |   93.61 | ...62-563,565-567 
  pdf.ts           |   92.17 |    85.81 |     100 |   92.17 | ...64-565,606-611 
  projectPath.ts   |     100 |      100 |     100 |     100 |                   
  projectRoot.ts   |   71.73 |    78.57 |     100 |   71.73 | 54-66             
  ...ectSummary.ts |   89.62 |    72.41 |     100 |   89.62 | ...40-145,196-199 
  ...tIdContext.ts |     100 |      100 |     100 |     100 |                   
  proxyUtils.ts    |     100 |      100 |     100 |     100 |                   
  ...rDetection.ts |   71.15 |       86 |     100 |   71.15 | ...-90,96-101,147 
  ...noreParser.ts |   92.63 |    91.66 |     100 |   92.63 | ...77-178,197-198 
  rateLimit.ts     |   93.75 |    89.62 |     100 |   93.75 | ...13,218-219,262 
  ...text-range.ts |   96.98 |    87.15 |     100 |   96.98 | ...87-688,763-764 
  readManyFiles.ts |   95.75 |    80.86 |     100 |   95.75 | ...05,558,568-572 
  retry.ts         |   96.09 |    92.52 |     100 |   96.09 | ...67,558-559,577 
  retryContext.ts  |     100 |      100 |     100 |     100 |                   
  ...sification.ts |   97.63 |    97.08 |     100 |   97.63 | ...17,251-252,278 
  retryPolicy.ts   |   97.72 |    90.56 |     100 |   97.72 | 130-131           
  ripgrepUtils.ts  |   90.04 |    93.43 |   95.45 |   90.04 | ...55-565,598-599 
  ...sDiscovery.ts |   97.46 |    93.05 |     100 |   97.46 | ...04,182-183,202 
  ...iagnostics.ts |   83.08 |     67.5 |   92.59 |   83.08 | ...23,543-544,550 
  ...tchOptions.ts |   84.87 |    86.71 |   96.29 |   84.87 | ...71,696,725-734 
  ...odelPrefix.ts |     100 |      100 |     100 |     100 |                   
  runtimeStatus.ts |    97.5 |    89.74 |     100 |    97.5 | 162-163           
  safe-mode.ts     |     100 |      100 |     100 |     100 |                   
  safeJsonParse.ts |     100 |      100 |     100 |     100 |                   
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  ...-child-env.ts |     100 |      100 |     100 |     100 |                   
  ...aConverter.ts |   98.03 |    97.75 |     100 |   98.03 | 100,102-103       
  ...aValidator.ts |   92.09 |    83.65 |   90.47 |   92.09 | ...60,882-883,896 
  ...r-launcher.ts |   96.35 |    93.97 |   85.71 |   96.35 | ...35-336,347-348 
  sedEditParser.ts |   91.78 |    92.18 |     100 |   91.78 | ...66-569,645-646 
  ...nIdContext.ts |     100 |      100 |     100 |     100 |                   
  ...orageUtils.ts |   95.98 |    83.96 |     100 |   95.98 | ...70,386,466,485 
  ...-pager-env.ts |     100 |      100 |     100 |     100 |                   
  ...fety-rules.ts |     100 |     89.7 |     100 |     100 | ...01,304,309-311 
  shell-utils.ts   |   86.07 |    88.34 |     100 |   86.07 | ...2269,2276-2280 
  ...lAstParser.ts |   98.27 |    91.38 |     100 |   98.27 | ...1321-1323,1333 
  ...ContextEnv.ts |     100 |       92 |     100 |     100 | 50-52             
  ...nlyChecker.ts |   96.33 |    96.57 |     100 |   96.33 | ...83-284,292-293 
  sideQuery.ts     |   86.82 |    86.66 |     100 |   86.82 | ...79-185,187-193 
  ...pEventSink.ts |     100 |       80 |     100 |     100 | 61                
  ...tGenerator.ts |     100 |      100 |     100 |     100 |                   
  ...ameContext.ts |     100 |      100 |     100 |     100 |                   
  symlink.ts       |   77.77 |       50 |     100 |   77.77 | 44,54-59          
  ...e-encoding.ts |   85.96 |    76.47 |     100 |   85.96 | 58-61,64-65,78-79 
  ...emEncoding.ts |   96.36 |    91.17 |     100 |   96.36 | 59-60,124-125     
  terminalSafe.ts  |     100 |      100 |     100 |     100 |                   
  ...Serializer.ts |   98.72 |       90 |     100 |   98.72 | 42-43,134,201-203 
  testUtils.ts     |   53.33 |      100 |   33.33 |   53.33 | ...53,59-64,70-72 
  ...-constants.ts |     100 |      100 |     100 |     100 |                   
  textUtils.ts     |      65 |      100 |      75 |      65 | 56-75             
  thoughtUtils.ts  |     100 |    95.65 |     100 |     100 | 99                
  ...-converter.ts |   95.23 |    85.71 |     100 |   95.23 | 36-37             
  ...name-utils.ts |     100 |      100 |     100 |     100 |                   
  ...-finalizer.ts |   97.66 |     90.9 |     100 |   97.66 | 165-166,168-172   
  tool-utils.ts    |    95.2 |    93.61 |     100 |    95.2 | ...58-159,162-163 
  ...ultCleanup.ts |   54.62 |    30.76 |      75 |   54.62 | ...03-105,108-134 
  ...Compaction.ts |   96.13 |    96.42 |     100 |   96.13 | ...34-339,341-346 
  ...pt-records.ts |    87.5 |    86.13 |     100 |    87.5 | ...76-480,510-525 
  truncation.ts    |   90.56 |    90.43 |     100 |   90.56 | ...35-443,480-486 
  windowsPath.ts   |   89.47 |    79.31 |     100 |   89.47 | ...57-58,62,90-91 
  ...aceContext.ts |   96.74 |    91.04 |     100 |   96.74 | ...69,196,299-301 
  xml.ts           |    97.8 |    87.69 |     100 |    97.8 | 98-99             
  yaml-parser.ts   |   83.87 |    77.27 |     100 |   83.87 | ...31-234,239-240 
 ...ils/filesearch |   83.94 |    80.72 |   94.73 |   83.94 |                   
  crawlCache.ts    |     100 |      100 |     100 |     100 |                   
  crawler.ts       |    82.9 |    76.81 |   95.08 |    82.9 | ...1563,1597-1598 
  fileSearch.ts    |   93.78 |    87.67 |     100 |   93.78 | ...71-272,274-275 
  fzfWorker.ts     |       0 |        0 |       0 |       0 | 1-109             
  ...rkerHandle.ts |   84.05 |    75.43 |   89.47 |   84.05 | ...30-334,340-341 
  ignore.ts        |     100 |    97.36 |     100 |     100 | 187               
  result-cache.ts  |     100 |    93.75 |     100 |     100 | 49                
 ...uest-tokenizer |   69.76 |    75.47 |   85.29 |   69.76 |                   
  ...eTokenizer.ts |   65.72 |    74.02 |    92.3 |   65.72 | ...65-466,479-533 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...tTokenizer.ts |   68.39 |    69.49 |    90.9 |   68.39 | ...24-325,327-328 
  ...ageFormats.ts |   76.92 |      100 |   33.33 |   76.92 | 46-49,56-57       
  textTokenizer.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
-------------------|---------|----------|---------|---------|-------------------

For detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run.

@wenshao

wenshao commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Review

Single-pass review of the 51-file diff. Focused on the non-test source files (~2.6k lines); test files and the design doc were read only for intent.


connection.reasoning is wiped on every re-attach that reuses session metadatapackages/webui/src/daemon/session/DaemonSessionProvider.tsx:1793

Trigger: attach to an already-loaded session (canReuseSessionMetadata === true, i.e. commands/skills/supportedCommands/context already present) — or any run where activeSession.context() rejects. context is then undefined, mapSessionContextReasoning(undefined) returns undefined, and reasoning is assigned unconditionally in the merge, unlike every neighbouring field (commands, skills, models, currentModel, context, …) which all fall back to current.* exactly because of this. ChatPane reads connection.reasoning directly (no persisted-preference fallback like App.tsx has), so the Thinking/Effort rows and the chip's · Extra High suffix disappear and stay gone until the next config_option_update — i.e. until the user changes something else.

Suggestion: reasoning: context !== undefined ? reasoning : current.reasoning.


A documented explicit reasoning: false is silently re-enabled (at xhigh) for registered modelspackages/cli/src/utils/modelConfigUtils.ts:451-455

Trigger: model.generationConfig.reasoning: false (documented in docs/users/configuration/model-providers.md#reasoning-false as "explicitly disables thinking on every provider") + current model qwen3.8-max + no per-model entry in model.reasoningPreferences. resolveModelReasoningControls falls back to the registration default thinkingEnabled: true, so the else if (resolvedReasoning?.effort) branch runs and { ...(generationConfig.reasoning || {}), effort } turns false into { effort: 'xhigh' } — thinking comes back on, at the strongest tier. The third branch (reasoning === falseundefined) does the same thing for a thinking-only registration.

Suggestion: seed the preference from the resolved config, i.e. treat generationConfig.reasoning === false as thinkingEnabled: false when the per-model preference doesn't say otherwise.


Model-switch completion can still drop the just-synced reasoning snapshotpackages/webui/src/daemon/session/actions.ts:538

The current.currentModel === modelId guard only holds if the SSE model_switched has already been applied when the setModel HTTP response resolves. The daemon publishes config_option_update (from the new sendConfigOptionsUpdate inside setSessionModel) before the bridge publishes model_switched, and the HTTP response travels on a different connection. Interleaving config_option_update → HTTP response → model_switched leaves: reasoning synced, then cleared (currentModel is still the old id at that point), then model_switched preserves the undefined. Nothing re-sends it afterwards. Same visible symptom as the first finding, and only masked in App.tsx by its persisted-preference fallback.

Suggestion: key the reset on the response payload / target model id rather than on the pre-existing current.currentModel, or don't clear when the incoming state is newer.


A failed notification turns a successful model switch into a failurepackages/cli/src/acp-integration/acpAgent.ts:5145

await session.sendConfigOptionsUpdate(...) is unguarded and runs after session.setModel(params) has already landed. sendUpdateclient.sessionUpdate rejects on a closed/broken transport, so setSessionModel rejects, the bridge publishes model_switch_failed instead of model_switched and the HTTP caller sees an error — while the session is in fact running the new model. Every comparable emitter in Session.ts is defensive here (the model-update extNotification is fire-and-forget with .catch, setMode's sendUpdate is wrapped in try/catch). Same applies to :5198, where the consequence is milder.

Suggestion: wrap the update in try/catch (debug-log on failure) so delivery never gates the mutation.


setThinkingEnabled drops reasoning.budget_tokenspackages/core/src/config/config.ts:4268

cfg.reasoning = enabled ? (effort ? { effort } : undefined) : false replaces the whole object, while the sibling setReasoningEffort deliberately does { ...(cfg.reasoning ?? {}) , effort } to preserve budget_tokens. Trigger: a model configured with reasoning.budget_tokens, user toggles Thinking off then on in WebShell → budget_tokens is gone for the rest of the process (and for modelsConfig.getGenerationConfig(), so a later refreshAuth doesn't bring it back).


Not covered: the WebShell popover/submenu interaction (nested Radix popover focus + outside-click behaviour) — not verifiable from the diff; the .test.ts(x) files and docs/design/webshell-qwen38-max-reasoning-options.md were not audited; no build/test/typecheck was run; and I did not verify the DashScope wire shape against a live qwen3.8-max endpoint.

@callmeYe

callmeYe commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed a focused follow-up for the failing Node 22 test job.

The failures came from four PR-introduced compatibility gaps: the ACP worktree test mock was missing the new core export, the serve capability expectation omitted session_reasoning_control, the new config-option route was absent from the audited telemetry catalog, and WebShell assumed every capability envelope contained a features array. The latter is now fail-closed in both the main composer and Split View, preserving the old-daemon fallback.

Verification on 14ab3ac9484f7dfe3c7f6b56f98cb28c406d39ff:

  • ACP worktree tests: 3 passed
  • Serve capability registry tests: 10 passed
  • Telemetry catalog and middleware tests: 51 passed
  • WebShell App and ChatPane tests: 388 passed
  • CLI and WebShell typechecks passed
  • Focused ESLint, Prettier, and diff checks passed

The follow-up contains no local model catalog, reasoning mock scenario, daemon fixture, screenshot artifact, or unrelated NOTICES.txt change.

@callmeYe

callmeYe commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

Thanks for the detailed review. All five findings were valid and are addressed in 44695cc979 (now included in PR head 1a891fb7da).

  • Session metadata reuse/context failure now preserves the same session's last reasoning snapshot; the regression test seeds the initial config options, forces context failure during ring-eviction reload, and verifies the controls remain available.
  • An explicit provider reasoning: false now remains authoritative unless that exact model has an explicit per-model Thinking preference; both the opt-out and explicit re-enable paths are covered.
  • Model switching now preserves a reasoning snapshot that changed while the HTTP request was in flight, covering the exact config_option_update → HTTP response → model_switched ordering.
  • Config-option notifications are now best-effort after a completed mutation, so a closed notification transport cannot turn a successful model change into model_switch_failed.
  • Thinking off/on now retains the complete reasoning object, including budget_tokens, across the live config and the model generation config.

Verification before merging main: Core 505/505, CLI 606/606, WebUI 240/240; focused ESLint, Prettier, and Core/CLI/WebUI typechecks passed. After merging current main, all five exact regression cases passed again, all three package typechecks passed (after rebuilding the newly changed acp-bridge dependency), and the worktree remained clean. No dedicated reasoning mock environment or unrelated file is included.

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not reviewed: build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI (merge_group-gated) and its suite (integration-tests/, incl. the new qwen-serve-routes capabilities assertion) did not run in this review.

Not reviewed: build-and-test — the web-shell unit suite produced no verdict on either the PR tree or the merge-base tree (heap OOM measured pre-existing at the merge base; the red "Test (ubuntu-latest, Node 22.x)" check is its symptom).

Not explored to full depth (tool budget reached): You are review agent reverse-audit — Reverse audit agen...: none — all checks above completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none — all planned checks completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none (~11 of ~38 tool calls used; all planned checks completed).; You are review agent reverse-audit — Reverse audit agen...: none — all checks above completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none — finished within budget., and 5 more.

中文说明

未审查:build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI (merge_group-gated) and its suite (integration-tests/, incl. the new qwen-serve-routes capabilities assertion) did not run in this review。

未审查:build-and-test — the web-shell unit suite produced no verdict on either the PR tree or the merge-base tree (heap OOM measured pre-existing at the merge base; the red "Test (ubuntu-latest, Node 22.x)" check is its symptom)。

未探索到全部深度(达到工具调用预算):You are review agent reverse-audit — Reverse audit agen...:none — all checks above completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none — all planned checks completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none (~11 of ~38 tool calls used; all planned checks completed).;You are review agent reverse-audit — Reverse audit agen...:none — all checks above completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none — finished within budget.,另有 5 条。

— qwen3.8-max via Qwen Code /review (v0.21.9)

Comment thread packages/core/src/config/config.ts
Comment thread packages/core/src/config/config.ts Outdated
Comment thread packages/webui/src/daemon/session/actions.ts
Comment thread packages/cli/src/utils/modelConfigUtils.ts
Comment thread packages/core/src/config/config.ts
const update = connectionRef.current.sessionId
? sessionActions.setConfigOption(configId, value)
: (() => {
const scope = providersState.status?.modelConfigScope ?? 'user';

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Suggestion] R8-12: the pre-session reasoning write falls back to 'user' scope whenever providersState.status is unavailable — but the daemon derives modelConfigScope from model-key ownership specifically for this key, and before providers status loads (startup race — the composer renders from the provider's own fetch while App's useProviders is a separate load) or after a providers-status failure, the write silently goes to user scope. — Concrete cost: in a trusted workspace that owns the model key, the user toggles a reasoning option before providers status resolves or after its load failed; the entry is written to user scope; if the workspace settings also define model.reasoningPreferences for that model, the workspace value wins in values.effective, so the control keeps showing the workspace value and appears dead — the exact shadowed-write hazard this PR's own workspace-providers-status test names.

Suggested fix: when providersState.status?.modelConfigScope is undefined, reject the write (the handler already rejects for missing models) rather than guessing 'user'.

中文说明

[Suggestion] R8-12:会话前的推理写入在 providersState.status 不可用时回退到 'user' scope —— 但 daemon 的 modelConfigScope 正是为这个键按 model 键归属推导的;在 providers 状态加载完成前(启动竞态——composer 用 provider 自己的 fetch 渲染,而 App 的 useProviders 是独立加载)或加载失败后,写入会静默落到 user scope。— 具体代价:在拥有 model 键的受信任工作区里,用户在 providers 状态未解析或加载失败时切换推理选项;条目被写入 user scope;若工作区 settings 也为该模型定义了 model.reasoningPreferences,workspace 值会在 values.effective 中胜出,控件持续显示 workspace 值、看起来像坏掉了——这正是本 PR 自己的 workspace-providers-status 测试命名的遮蔽写入风险。

建议修复:当 providersState.status?.modelConfigScope 为 undefined 时拒绝写入(handler 已有模型缺失时的拒绝分支),而不是猜测 'user'

— qwen3.8-max via Qwen Code /review (v0.21.9)

Comment on lines +839 to +840
onKeyDown={(event) => {
if (event.key !== 'ArrowLeft' || searchQuery) return;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Suggestion] R8-13: the ArrowLeft back-affordance for the model submenu is wired only to this search input — the model item buttons have no keyboard handler, asymmetric with the ArrowRight-opens affordance this same diff adds on the submenu trigger. — Concrete cost: a keyboard-only user opens the model popover, presses ArrowRight on the submenu trigger (submenu opens, focus lands in the search input), then Tabs into the model item buttons; ArrowLeft does nothing there — the user must Shift+Tab back to the search input first (Escape still works via Radix defaults).

Suggested fix: add the same ArrowLeft handler to the item buttons inside dropdownItems (close the submenu and focus submenuTriggerRef), or put a capture-phase ArrowLeft handler on the submenu PopoverContent.

中文说明

[Suggestion] R8-13:模型子菜单的 ArrowLeft 返回只接在这个搜索框上——模型项按钮没有键盘处理,与同一 diff 在子菜单触发器上新增的 ArrowRight 打开不对称。— 具体代价:纯键盘用户打开模型弹层,在子菜单触发器上按 ArrowRight(子菜单打开,焦点落在搜索框),再 Tab 到模型项按钮;在那里按 ArrowLeft 无反应——用户必须先 Shift+Tab 回到搜索框(Escape 仍可经 Radix 默认行为关闭)。

建议修复:给 dropdownItems 内的模型项按钮加同样的 ArrowLeft 处理(关闭子菜单并聚焦 submenuTriggerRef),或在子菜单 PopoverContent 上加捕获阶段的 ArrowLeft 处理。

— qwen3.8-max via Qwen Code /review (v0.21.9)

Comment on lines +787 to +789
const rpcCode = (err as { code?: unknown } | null)?.code;
if (typeof rpcCode === 'number' && rpcCode <= -32000) {
return { code: rpcCode, message: errMsg(err) };

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Suggestion] R8-14: the new numeric-code pass-through returns { code, message } and drops the error's data payload. RequestError.authRequired({ authMethods }) (code -32000, thrown by ensureAuthenticated) reaches this branch on the /acp HTTP surface, while the stdio SDK surface's toResult() includes data — the "both transport surfaces agree" comment is not achieved; the same drop applies to every data-carrying agent RequestError. — Concrete cost: an /acp HTTP client calling session/new with missing/expired credentials receives { code: -32000, message: 'Authentication required: …' } with no data.authMethods; a client that renders available auth methods from the error works over stdio but not over HTTP. (Pre-PR both surfaces collapsed to an opaque -32603, so this is an improvement — but parity is not achieved.)

Suggested fix: forward data when present: return { code: rpcCode, message: errMsg(err), ...((err as { data?: unknown })?.data !== undefined ? { data: (err as { data: Record<string, unknown> }).data } : {}) };

中文说明

[Suggestion] R8-14:新的数字码透传只返回 { code, message },丢弃了错误的 data 载荷。RequestError.authRequired({ authMethods })(code -32000,由 ensureAuthenticated 抛出)在 /acp HTTP 面会进入该分支,而 stdio SDK 面的 toResult() 携带 data —— "both transport surfaces agree" 的注释并未达成;所有携带 data 的 agent 端 RequestError 都会被同样丢弃。— 具体代价:/acp HTTP 客户端在凭证缺失/过期时调用 session/new,收到 { code: -32000, message: 'Authentication required: …' } 但没有 data.authMethods;依赖错误渲染可用登录方式的客户端在 stdio 可用、在 HTTP 不可用。(PR 之前两个面都坍缩为不透明的 -32603,所以这是改进——但对齐尚未达成。)

建议修复:存在 data 时一并转发:return { code: rpcCode, message: errMsg(err), ...((err as { data?: unknown })?.data !== undefined ? { data: (err as { data: Record<string, unknown> }).data } : {}) };

— qwen3.8-max via Qwen Code /review (v0.21.9)


expect(onModelChange).toHaveBeenCalledWith(AuthType.USE_OPENAI, true);
expect(onModelChange).toHaveBeenCalledWith(AuthType.USE_OPENAI, true, {
sourceWasRuntimeSnapshot: false,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Suggestion] R7-12: Round-7 ledger item, still standing at the reviewed commit — the only toHaveBeenCalledWith assertion of the new OnModelChangeCallback context checks sourceWasRuntimeSnapshot: false; the true case (leaving a runtime snapshot through a path that passes the pre-clear flag) is asserted nowhere. — Concrete cost: Config.handleModelChange consumes the flag to decide whether the pre-switch model's reasoning is model-scoped (registered) or a global preference. If a future change derived the flag from post-mutation state (e.g. after the snapshot id was cleared), a user leaving a runtime snapshot whose modelId collides with a registered id via a registry switch would have their reasoning effort misclassified and silently discarded instead of preserved as the global preference — and no test would fail.

Suggested fix: add one assertion for a leaving-a-snapshot transition, e.g. expect(onModelChange).toHaveBeenCalledWith(<authType>, <refresh>, { sourceWasRuntimeSnapshot: true }) after switchToRuntimeModel(...) followed by a switch to another model.

中文说明

[Suggestion] R7-12:第 7 轮 ledger 条目,在受审提交上仍然存在——新 OnModelChangeCallback context 的唯一 toHaveBeenCalledWith 断言检查的是 sourceWasRuntimeSnapshot: falsetrue 的情形(经由传递清除前标志的路径离开运行时快照)没有任何断言。— 具体代价:Config.handleModelChange 用该标志判断切换前模型的 reasoning 是模型作用域(注册)还是全局偏好。若未来改动从变更后状态推导该标志(例如在快照 id 被清除之后),用户经由注册表切换离开一个 modelId 与注册 id 冲突的运行时快照时,其 reasoning effort 会被误判并被静默丢弃,而不是作为全局偏好保留——且没有测试会失败。

建议修复:为离开快照的转换补一条断言,例如 switchToRuntimeModel(...) 后切换到另一模型时 expect(onModelChange).toHaveBeenCalledWith(<authType>, <refresh>, { sourceWasRuntimeSnapshot: true })

— qwen3.8-max via Qwen Code /review (v0.21.9)

Comment on lines 756 to 762
useEffect(() => {
if (!open) {
setSearchQuery('');
setSubmenuOpen(false);
returningFromSubmenuRef.current = false;
}
}, [open]);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Suggestion] R7-14: Round-7 ledger item, still standing and re-confirmed this round — the submenu/header state resets only when the outer popover closes (this reset effect keys on [open]), and the focus effects depend only on [open, submenuOpen]; nothing watches the submenu/header props, which can change while the popover stays open. — Concrete cost: with the model popover open and the reasoning submenu expanded (focus in the submenu search input), an SSE-driven update flips showReasoningOptions without any outside click (a peer's model switch to an unregistered model clears connection.reasoning; pre-session, providers/model changes flip composerReasoningState). The submenu portal unmounts with the focused input inside — focus falls to <body> and is never restored to the flat search input; submenuOpen stays true, so if reasoning controls become supported again during the same open session, the submenu silently re-mounts open without focus handling.

Suggested fix: key the reset/focus effects on the rendered mode as well — include Boolean(submenu) in the deps of the reset effect (clear submenuOpen/searchQuery/returningFromSubmenuRef when the mode changes), and restore focus to the flat search input when transitioning submenu→flat while open.

中文说明

[Suggestion] R7-14:第 7 轮 ledger 条目,仍然存在且本轮再次确认——子菜单/头部状态只在外层弹层关闭时重置(该重置 effect 依赖 [open]),焦点 effect 只依赖 [open, submenuOpen];没有任何 effect 监听 submenu/header props,而它们可以在弹层保持打开时变化。— 具体代价:模型弹层打开且推理子菜单展开(焦点在子菜单搜索框)时,一次 SSE 驱动的更新在没有任何外部点击的情况下翻转 showReasoningOptions(同伴客户端切换到未注册模型会清空 connection.reasoning;会话前 providers/model 变化会翻转 composerReasoningState)。子菜单 portal 连同持有焦点的输入框一起卸载——焦点落到 <body>,且不会被恢复到平铺搜索框;submenuOpen 保持 true,若同一次打开期间推理控件重新可用,子菜单会静默重新挂载为打开状态且无焦点处理。

建议修复:让重置/焦点 effect 也依赖渲染模式——重置 effect 的依赖加入 Boolean(submenu)(模式变化时清除 submenuOpen/searchQuery/returningFromSubmenuRef),并在 open 状态下由子菜单切回平铺时把焦点恢复到平铺搜索框。

— qwen3.8-max via Qwen Code /review (v0.21.9)

@callmeYe

Copy link
Copy Markdown
Collaborator Author

@qwen-code /review

All six Round 8 Criticals are addressed in 004bc55 and their conversations are resolved after evidence-bearing replies. The branch also contains a normal merge of current main; no history was rewritten.

Verification: 1,197 affected tests pass across core config, CLI modelConfigUtils, webui session actions, and Web Shell App/ChatPane/ChatEditor; full build, full typecheck, full lint, focused format checks, two clean self-audit passes, and a local qreview pass are green. Post-fix exact-HEAD probes are still running and will be reported if they find any discrepancy.

Per the repository rule for a PR beyond roughly five review rounds, the non-blocking Round 8 Suggestions R8-8 through R8-14 plus repeated R7-12 and R7-14 are explicitly deferred to follow-up work rather than widening this PR again. Please re-review the new HEAD and update the blocking review decision.

@doudouOUC doudouOUC left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review: PR #8675 — feat(web-shell): add model-specific reasoning controls

  • Review timestamp: 2026-08-12 16:38
  • Target: PR #8675 — QwenLM/qwen-code
  • Head SHA: 004bc55d37518b31389618c974dfabba7b627043
  • Merge base: 28ab8bae56f0c2db1f413a83fd1dfaf5a85171cf
  • Effort: high (verified)
  • Model: deepseek-v4-flash

Provenance

Gate Result
Build ✅ 17/17 workspaces
Test (acp-bridge) ✅ 449 passed
Test (cli) ❌ 21 failures — all pre-existing (0 files changed by the PR)
Test (core) ❌ 28 failures — all pre-existing (0 files changed by the PR)
Test (sdk-typescript) ⏰ timed out
Test (vscode-ide-companion, web-shell, webui) ⏭ not run (budget)
Test-efficacy harness ✅ validated
Script lint ✅ No executable scripts changed
Test plan 4 claims checked, 0 contradicted, 4 differing

Diff Statistics

  • 72 files changed, +6476/-223
  • 3695 source lines, 4980 test lines, 78 docs lines

Findings

Suggestion: HTTP_ACP_CONFIG_OPTION_IDS omits 'thinking' and 'effort' (R1-1)

  • File: packages/cli/src/serve/acp-http/dispatch.ts:423
  • Source: review
  • Confidence: high
  • Failure scenario: The constant is used in both the advertisement filter and the error message. The setter now routes thinking/effort via a separate else-if branch, so they are functionally supported, but the error message reports (supported: model, mode) — misleading a client developer.
  • Suggested fix: Update HTTP_ACP_CONFIG_OPTION_IDS to include 'thinking' and 'effort', or update the error message string to list them independently.

Suggestion: No test coverage for validateReasoningPreferencesValue (R1-2)

  • File: packages/cli/src/utils/settingsUtils.ts:322
  • Source: review
  • Confidence: high
  • Failure scenario: The function validates the model.reasoningPreferences shape on API writes but has zero test coverage. A future refactor that breaks the validation would ship silently.
  • Suggested fix: Add a test sub-block under validateSettingValue covering all edge cases.

Suggestion: setConfigOption error path uses addNotice instead of noticeForSession (R1-3)

  • File: packages/webui/src/daemon/session/actions.ts:793
  • Source: review
  • Confidence: high
  • Failure scenario: Inconsistent with setModel (line 753). If the session becomes stale, the error notice is posted unconditionally rather than suppressed.
  • Suggested fix: Replace addNotice with noticeForSession(session).

Suggestion: defineModelReasoningControls validation not unit-tested (R1-4)

  • File: packages/core/src/core/model-reasoning-controls.ts
  • Source: review
  • Confidence: high
  • Failure scenario: Validation logic has no direct unit test. A regression that silently removes these checks would not be caught.
  • Suggested fix: Add a unit test covering all validation paths.

Suggestion: Unreachable integration test — outside every npm workspace (R1-5)

  • File: integration-tests/cli/acp-integration.test.ts:791
  • Source: test
  • Confidence: high
  • Failure scenario: This file sits outside every npm workspace, so the project's test command never collects it.
  • Suggested fix: Move into a workspace or add a workspace-scoped collection.

Suggestion: Unreachable integration test — outside every npm workspace (R1-6)

  • File: integration-tests/cli/qwen-serve-routes.test.ts:365
  • Source: test
  • Confidence: high
  • Failure scenario: Same as R1-5.
  • Suggested fix: Move into a workspace or add a workspace-scoped collection.

Suggestion: Inert test — passes with source reverted (R1-7)

  • File: packages/cli/src/acp-integration/acpAgent.worktree.test.ts:114
  • Source: test
  • Confidence: high
  • Failure scenario: All 3 tests still passed when the source change was reverted.
  • Suggested fix: Review test assertions to ensure they exercise the specific behavior the PR adds.

Suggestion: validateReasoningPreferencesValue uses global effort ladder, not model-specific supported tiers (R1-8)

  • File: packages/cli/src/utils/settingsUtils.ts:335
  • Source: review
  • Confidence: high
  • Failure scenario: Validates against the global ladder (low, medium, high, xhigh, max), but qwen3.8-max only supports ['low', 'medium', 'xhigh']. Values 'high' and 'max' pass validation but are silently normalized.
  • Suggested fix: Make validateReasoningPreferencesValue registry-aware.

Verdict

Comment (0 Critical, 8 Suggestion) — reviewed by qwen /review (model: deepseek-v4-flash).

Note: qwen attempted to post this review directly but its sandbox gh credentials were invalid; posted by the review orchestrator on its behalf.

@callmeYe

Copy link
Copy Markdown
Collaborator Author

Triaged the 0-Critical / 8-Suggestion review against exact HEAD 004bc55:

  • R1-1: valid diagnostic-copy consistency suggestion; deferred.
  • R1-2: runtime validation is already covered by packages/cli/src/serve/routes/workspace-settings.test.ts. It exercises a valid write plus non-object, array, invalid effort, invalid boolean, and unknown-field failures and verifies persistence is blocked. A direct private-helper unit test would only duplicate that behavior-level coverage.
  • R1-3: valid non-blocking stale-notice cleanup; this duplicates the already recorded R8-9 suggestion and is deferred.
  • R1-4: the resolver/registry behavior has a dedicated model-reasoning-controls.test.ts suite, while the private construction guard is not directly exercised. That remaining item is a test-only suggestion and is deferred.
  • R1-5 / R1-6: not valid as “unreachable.” The repository root explicitly runs Vitest with --root ./integration-tests, including dedicated CLI integration scripts; this PR run skipped that job because it is merge_group-gated, not because the files are outside collection.
  • R1-7: not a feature-test defect. The worktree test file changed by one fixture line only, adding the getModelReasoningControls mock required by the production module's new import. Its three pre-existing worktree tests are not intended to prove reasoning-control behavior, so surviving a reasoning-source revert is expected.
  • R1-8: valid policy/diagnostic suggestion around write-time model-specific tier validation; deferred.

Per AGENTS.md, after roughly five review rounds this PR accepts only Critical correctness/security/regression fixes. This review reports 0 Critical, so I am not widening the 72-file diff for these suggestions. The valid deferred items are recorded here rather than silently dropped.

@callmeYe
callmeYe requested a review from doudouOUC August 11, 2026 18:35

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not reviewed: build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI at the reviewed commit and its suite (which covers this PR's changed integration-tests files) did not run locally.

Not explored to full depth (tool budget reached): You are review agent reverse-audit — Reverse audit agen...: none — all planned checks completed within budget.; chunk 4: none — all checks I started completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none — all checks I started were completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none — all checks above completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none — all planned checks completed within budget., and 3 more.

Test Plan (not a blocker): 620 tests passed — this review observed 1242, 19141, 19620, 1507, 483, 3242, 533 passed; 039 tests passed — this review observed 1242, 19141, 19620, 1507, 483, 3242, 533 passed; 66 tests passed — this review observed 1242, 19141, 19620, 1507, 483, 3242, 533 passed; 39 tests passed — this review observed 1242, 19141, 19620, 1507, 483, 3242, 533 passed.

中文说明

未审查:build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI at the reviewed commit and its suite (which covers this PR's changed integration-tests files) did not run locally。

未探索到全部深度(达到工具调用预算):You are review agent reverse-audit — Reverse audit agen...:none — all planned checks completed within budget.;chunk 4:none — all checks I started completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none — all checks I started were completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none — all checks above completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none — all planned checks completed within budget.,另有 3 条。

Test Plan(非阻断):620 tests passed — this review observed 1242, 19141, 19620, 1507, 483, 3242, 533 passed; 039 tests passed — this review observed 1242, 19141, 19620, 1507, 483, 3242, 533 passed; 66 tests passed — this review observed 1242, 19141, 19620, 1507, 483, 3242, 533 passed; 39 tests passed — this review observed 1242, 19141, 19620, 1507, 483, 3242, 533 passed

— qwen3.8-max via Qwen Code /review (v0.21.9)

Comment thread packages/cli/src/serve/acp-http/dispatch.ts
Comment thread packages/core/src/config/config.ts Outdated
Comment thread packages/core/src/config/config.ts
Comment thread packages/cli/src/acp-integration/acpAgent.ts Outdated
Comment thread packages/core/src/config/config.test.ts
Comment thread packages/cli/src/serve/routes/session.ts
Comment thread packages/cli/src/acp-integration/acpAgent.ts
Comment thread packages/core/src/config/config.test.ts
Comment thread packages/core/src/config/config.test.ts

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not reviewed: build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI; this review manually ran the two changed integration test files (surfacing the R9-1 Critical) but not the full integration suite.

Not explored to full depth (tool budget reached): chunk 12: none — all checks I intended completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none — all checks above completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none — finished within budget.; chunk 24: a clean authoritative typecheck of the package could not be obtained in this worktree (raw tsc run is polluted by pre-existing errors unrelated to the PR); the …; chunk 3: could not execute acpAgent.worktree.test.ts / Session.test.ts (no node_modules in the review worktree; full monorepo install would exceed the chunk budget)., and 11 more.

Test Plan (not a blocker): 620 tests passed — this review observed 1242, 19144, 19619, 1507, 483, 3242, 533 passed; 039 tests passed — this review observed 1242, 19144, 19619, 1507, 483, 3242, 533 passed; 66 tests passed — this review observed 1242, 19144, 19619, 1507, 483, 3242, 533 passed; 39 tests passed — this review observed 1242, 19144, 19619, 1507, 483, 3242, 533 passed.

中文说明

未审查:build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI; this review manually ran the two changed integration test files (surfacing the R9-1 Critical) but not the full integration suite。

未探索到全部深度(达到工具调用预算):chunk 12:none — all checks I intended completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none — all checks above completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none — finished within budget.;chunk 24:a clean authoritative typecheck of the package could not be obtained in this worktree (raw tsc run is polluted by pre-existing errors unrelated to the PR); the …;chunk 3:could not execute acpAgent.worktree.test.ts / Session.test.ts (no node_modules in the review worktree; full monorepo install would exceed the chunk budget).,另有 11 条。

Test Plan(非阻断):620 tests passed — this review observed 1242, 19144, 19619, 1507, 483, 3242, 533 passed; 039 tests passed — this review observed 1242, 19144, 19619, 1507, 483, 3242, 533 passed; 66 tests passed — this review observed 1242, 19144, 19619, 1507, 483, 3242, 533 passed; 39 tests passed — this review observed 1242, 19144, 19619, 1507, 483, 3242, 533 passed

— qwen3.8-max via Qwen Code /review (v0.21.10)

Comment thread packages/core/src/config/config.ts
Comment thread packages/cli/src/acp-integration/acpAgent.ts
Comment thread packages/cli/src/acp-integration/session/Session.ts Outdated
Comment thread packages/core/src/config/config.test.ts
Comment thread packages/cli/src/utils/modelConfigUtils.test.ts
Comment thread packages/cli/src/ui/hooks/use-effort-command.ts Outdated
Comment thread packages/cli/src/serve/server.test.ts
Comment thread packages/cli/src/ui/commands/effort-command.ts
Comment thread packages/cli/src/utils/modelConfigUtils.ts
Comment thread integration-tests/cli/acp-integration.test.ts
@callmeYe

Copy link
Copy Markdown
Collaborator Author

Round 9 Criticals are addressed in b3f6319, and every Round 9 thread has been replied to and resolved. Build, typecheck, lint, the affected full unit-test files, and targeted ACP integration coverage all pass. @doudouOUC @wenshao, could you please re-review the new head? Auto-merge remains enabled.

@callmeYe

Copy link
Copy Markdown
Collaborator Author

@wenshao @doudouOUC The sole remaining merge blocker is the stale qwen-code-ci-bot CHANGES_REQUESTED review 4910505722, submitted against pre-fix commit 004bc55. Current HEAD b3f6319 contains the Round 9 fixes, all Round 9 Critical threads are resolved, and every runnable CI check is green. The replacement review job 93929288123 has remained in Run review since 2026-08-11 21:11Z. Please review the current HEAD and either submit a superseding review or, after verification, dismiss the stale bot review using maintainer authority. CI/thread resolution alone cannot clear this reviewDecision; auto-merge is already enabled.

@callmeYe
callmeYe dismissed qwen-code-ci-bot’s stale review August 12, 2026 00:24

Dismissed as stale after all Round 9 Critical findings were addressed in b3f6319. Every Round 9 thread has an evidence-bearing reply and is resolved; build, typecheck, lint, affected full unit suites, targeted ACP integration coverage, and every runnable CI check pass on the current HEAD. This dismissal only removes the obsolete bot decision submitted against 004bc55 and does not replace any required human approval.

@callmeYe
callmeYe requested review from wenshao and removed request for wenshao August 12, 2026 00:25

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not reviewed: build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI and its suite (integration-tests/, incl. the PR's changed acp-integration and qwen-serve-routes files) did not run locally.

Not explored to full depth (tool budget reached): You are review agent reverse-audit — Reverse audit agen...: none — all checks above completed within budget.; You are review agent reverse-audit — Reverse audit agen...: did not execute the new config.test.ts test — verified its fidelity statically against setThinkingEnabled / refreshAuth (config.ts:3676-3740, 4262-4296) ins…; chunk 24: none — all checks I started completed within budget.; You are review agent reverse-audit — Reverse audit agen...: none — I did not truncate any check.; You are review agent reverse-audit — Reverse audit agen...: none — no check was left unfinished., and 18 more.

中文说明

未审查:build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI and its suite (integration-tests/, incl. the PR's changed acp-integration and qwen-serve-routes files) did not run locally。

未探索到全部深度(达到工具调用预算):You are review agent reverse-audit — Reverse audit agen...:none — all checks above completed within budget.;You are review agent reverse-audit — Reverse audit agen...:did not execute the new config.test.ts test — verified its fidelity statically against setThinkingEnabled / refreshAuth (config.ts:3676-3740, 4262-4296) ins…;chunk 24:none — all checks I started completed within budget.;You are review agent reverse-audit — Reverse audit agen...:none — I did not truncate any check.;You are review agent reverse-audit — Reverse audit agen...:none — no check was left unfinished.,另有 18 条。

— qwen3.8-max via Qwen Code /review (v0.21.10)

Comment thread packages/core/src/config/config.ts
Comment thread packages/core/src/models/modelsConfig.ts
Comment thread packages/cli/src/acp-integration/session/Session.ts Outdated
Comment thread packages/acp-bridge/src/bridge.test.ts
Comment thread packages/cli/src/acp-integration/acpAgent.ts
Comment thread packages/cli/src/utils/modelConfigUtils.ts
Comment thread packages/web-shell/client/App.test.tsx
Comment thread packages/web-shell/client/components/ChatEditor.test.tsx
Comment thread packages/web-shell/client/components/ChatPane.tsx
Comment thread packages/webui/src/daemon/session/DaemonSessionProvider.tsx
@wenshao

wenshao commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

@qwen-code /resolve

# Conflicts:
#	packages/cli/src/ui/commands/effort-command.ts
#	packages/cli/src/ui/hooks/use-effort-command.test.ts
#	packages/cli/src/ui/hooks/use-effort-command.ts
#	packages/core/src/core/openaiContentGenerator/provider/dashscope.test.ts
@callmeYe
callmeYe dismissed qwen-code-ci-bot’s stale review August 12, 2026 02:23

Round 10 is fully triaged. All three Critical findings were fixed in f4a4592 and independently re-verified with their original probes plus focused regressions. The merge conflict with current main was resolved by a normal merge and the affected effort/DashScope suites pass. All 16 non-blocking Suggestions were replied to and explicitly deferred under the repository policy for review rounds beyond five, then their threads were resolved. Build, typecheck, lint, and focused tests pass.

@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator

Qwen Code resolved the merge conflicts, but the head branch changed while resolving, so the update was not pushed. Re-run /resolve. The resolved diff is attached as the qwen-resolve-pr-8675 artifact on the workflow run.

Root cause

Main merged #8525 (ac78acd3c5, "fix(core): resolve Qwen 3.8 reasoning budget conflicts") after this PR branched. #8525 reworked the same surface: it moved the /effort outcome messages into formatEffortChangeMessage (new effort-utils.ts), added Config.getReasoningEffortOverride(), and rewrote DashScope thinking-knob resolution so static extra_body/samplingParams knobs outrank the configured tier — while this PR normalizes the configured tier per model registry.

Semantic, not textual

Both sides changed the same message block in effort-command.ts/use-effort-command.ts and the same qwen3.8-max knob tests. Resolved composition (both surfaces):

applied && effectiveTier !== tier && !config.getReasoningEffortOverride?.()
  ? t('Reasoning effort: {{tier}} (normalized from {{requested}} for the active model).', )
  : formatEffortChangeMessage(config, effectiveTier)

The PR's registry normalization + reasoningPreferences persistence is kept intact; main's helper now owns thinking-disabled/override reporting. In dashscope.test.ts, main's knob precedence wins (user knobs kept, tier dropped), but warn payloads and tier expectations now carry the normalized wire tier ('xhigh' not 'high', 4 spots) because buildQwenEffortConfig clamps before knob resolution. One auto-merge corruption was reverted: an extra_body effort override ships verbatim ('high'); only configured tiers normalize. Two HEAD tests asserting the old tier-wins outcome were superseded by main's inverted-precedence equivalents.

Load-bearing

  • The normalized-tier branch must precede the helper call AND check getReasoningEffortOverride() — otherwise a static knob on qwen3.8-max gets a tier confirmation that never reaches the wire (the regression fix(core): resolve Qwen 3.8 reasoning budget conflicts #8525 fixed).
  • formatEffortChangeMessage takes the post-normalization effectiveTier; its disabled branch compares against the read-back.
  • Test config mocks need both getModel and getReasoningEffortOverride; the merged code calls both.

Not verified

No build or tests ran here. config.ts and dashscope.ts auto-merged: the former joins the PR's per-model preference storage to main's getReasoningEffortOverride(), and my updated test expectations were traced against the latter. If CI fails, look at the dashscope warn-payload tests first.

中文说明

根因:main 在本 PR 分支后合入 #8525(ac78acd3c5,Qwen 3.8 思考预算冲突),与本 PR 改了同一批逻辑:#8525/effort 结果消息抽成 formatEffortChangeMessage,新增 getReasoningEffortOverride(),并把 DashScope 思考旋钮优先级改为 extra_body > samplingParams > 配置档位;本 PR 则按模型注册表归一化配置档位。

语义冲突:两侧修改了同一段消息逻辑与相同的 qwen3.8-max 测试。解决方式:保留 PR 的归一化与 reasoningPreferences 持久化,消息改为 applied && effectiveTier !== tier && !getReasoningEffortOverride?.() 时输出 "normalized from …",否则交给 formatEffortChangeMessage(config, effectiveTier)。dashscope 测试采用 main 的旋钮优先级(用户旋钮保留、档位被丢),但因归一化先行,warn 负载与档位断言由 'high' 改为 'xhigh'(4 处);另修复一处自动合并损坏:extra_body 的 effort 原样下发('high')。HEAD 两个"档位优先"旧测试由 main 的反转优先级等价测试取代。

关键点:归一化分支必须先于 helper 且检查 override,否则 qwen3.8-max 带静态旋钮时会误报档位生效(正是 #8525 修的问题);helper 必须传归一化后的 effectiveTier;测试 mock 需同时提供 getModelgetReasoningEffortOverride

未验证:本次未跑构建/测试。config.tsdashscope.ts 为自动合并,测试期望按合并后实现推演;若 CI 失败,优先查 dashscope warn 负载相关测试。

@qwen-code-ci-bot qwen-code-ci-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not reviewed: build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI and its suite did not run locally.

Not explored to full depth (tool budget reached): PR summary: This PR adds a built-in model reasoning-contr...: none — all planned checks completed within budget.; chunk 12: running packages/cli vitest for modelConfigUtils.test.ts (worktree has no node_modules; full monorepo install exceeded the tool budget — tests were hand-traced …; chunk 19: none. Everything planned was completed (build verification was adapted due to shared worktree contention: full node scripts/build.js couldn't be completed due…; chunk 13: none — all checks I intended completed within budget.; chunk 7: none — could not inspect @agentclientprotocol/sdk internals (no node_modules); the dependent assertion is covered by the new test itself..

Not reviewed: reverse audit — did not converge within the reverse-audit round cap of 3.

Test Plan (not a blocker): 620 tests passed — this review observed 1251, 19177, 19721, 1512, 483, 3286, 539 passed; 039 tests passed — this review observed 1251, 19177, 19721, 1512, 483, 3286, 539 passed; 66 tests passed — this review observed 1251, 19177, 19721, 1512, 483, 3286, 539 passed; 39 tests passed — this review observed 1251, 19177, 19721, 1512, 483, 3286, 539 passed.

中文说明

未审查:build-and-test — Integration Tests (CLI, No Sandbox) was skipped in CI and its suite did not run locally。

未探索到全部深度(达到工具调用预算):PR summary: This PR adds a built-in model reasoning-contr...:none — all planned checks completed within budget.;chunk 12:running packages/cli vitest for modelConfigUtils.test.ts (worktree has no node_modules; full monorepo install exceeded the tool budget — tests were hand-traced …;chunk 19:none. Everything planned was completed (build verification was adapted due to shared worktree contention: full node scripts/build.js couldn't be completed due…;chunk 13:none — all checks I intended completed within budget.;chunk 7:none — could not inspect @agentclientprotocol/sdk internals (no node_modules); the dependent assertion is covered by the new test itself.

未审查:反向审计——在 3 轮的反审轮数上限内未收敛。

Test Plan(非阻断):620 tests passed — this review observed 1251, 19177, 19721, 1512, 483, 3286, 539 passed; 039 tests passed — this review observed 1251, 19177, 19721, 1512, 483, 3286, 539 passed; 66 tests passed — this review observed 1251, 19177, 19721, 1512, 483, 3286, 539 passed; 39 tests passed — this review observed 1251, 19177, 19721, 1512, 483, 3286, 539 passed

— qwen3.8-max via Qwen Code /review (v0.21.10)

Comment thread packages/webui/src/daemon/session/actions.ts Outdated
Comment thread packages/core/src/models/modelsConfig.ts
Comment thread packages/core/src/models/modelsConfig.ts
@callmeYe
callmeYe dismissed qwen-code-ci-bot’s stale review August 12, 2026 05:44

All Round 11 Critical findings were fixed in 8cb1088, independently reproduced post-fix, replied with evidence, and their review threads resolved. Dismissing this superseded CHANGES_REQUESTED review so the PR can return to the current review/CI gate.

@callmeYe

Copy link
Copy Markdown
Collaborator Author

Round 11 Criticals are fixed in 8cb1088, independently post-fix verified, replied to individually, and all three current threads are resolved. The superseded CHANGES_REQUESTED review 4913162151 has been actively dismissed; reviewDecision is now REVIEW_REQUIRED, auto-merge remains enabled, and the new CI run is in progress. @wenshao @doudouOUC, please re-review the current HEAD when the checks finish.

@callmeYe

Copy link
Copy Markdown
Collaborator Author

Superseded by #8974, which rebuilds the WebShell Qwen 3.8 Max reasoning controls on the latest main with a narrower manifest-driven, live-session-only design.

@callmeYe callmeYe closed this Aug 12, 2026
auto-merge was automatically disabled August 12, 2026 07:54

Pull request was closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autofix/takeover Summon the autofix loop to manage this PR (remove to release; needs triage+)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants