Skip to content

feat(desktop): land Tauri parity and update bridge - #84

Merged
yiliang114 merged 13 commits into
mainfrom
cx/land-openwork-tauri-stack
Aug 18, 2026
Merged

feat(desktop): land Tauri parity and update bridge#84
yiliang114 merged 13 commits into
mainfrom
cx/land-openwork-tauri-stack

Conversation

@yiliang114

@yiliang114yiliang114 commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

What this PR does

This PR completes the OpenWork Tauri landing that stopped after #81 reached main. It lands the final #82 and #83 results on the default-branch baseline, including Tauri/Web Shell product parity, safe legacy-data migration, desktop-native integration, workspace and channel behavior, four-platform packaging, the Tauri updater, and the one-time Electron-to-Tauri compatibility bridge.

It also restores a bounded OpenWork workflow set. Qwen-owned workflow files remain in the repository for upstream maintenance but stay disabled in GitHub Actions; SDK Java is now disabled at repository level without deleting its workflow file. Desktop Release remains active and defaults to a non-publishing dry run.

Why it's needed

#81 was merged into main before #82 and #83 were merged into their parent feature branches. GitHub therefore showed the stacked PRs as merged even though only the first layer reached the default branch. This PR makes main contain the complete reviewed desktop stack and leaves one tested release path that can build installers after merge without publishing by default.

Reviewer Test Plan

How to verify

  • Confirm the resulting source contains the complete feat(desktop): complete OpenWork Tauri parity #82 and fix(desktop): preserve Electron to Tauri upgrades #83 behavior on top of current main, including migration, updater, release, workspace, channel, and desktop-native paths.
  • Confirm retained Qwen maintenance workflows and SDK Java are disabled rather than deleted, while PR CI, CodeQL, Desktop Release, and the reusable desktop build remain available.
  • Open the successful PR CI run and confirm the Linux and Windows desktop jobs, the main test job, and all 32 Web Shell browser smoke cases passed.
  • Open the successful Desktop Release dry run and confirm macOS Apple Silicon, macOS Intel, Windows x64, and Linux x64 each passed runtime verification, desktop/release tests, packaged smoke, artifact collection, and upload. Confirm the publish job was skipped.
  • Before the first production release, use real signing/notarization secrets and an isolated update feed to verify the signed Electron-to-Tauri-to-newer-Tauri chain; do not use the dry-run artifacts as a production update.

Evidence (Before & After)

The UI baseline and screenshots are in PR1 (#81). This integration PR adds no separate visual redesign; its new evidence is the successful cross-platform installer matrix and browser smoke run linked above.

Tested on

OSStatus
🍏 macOS
🪟 Windows
🐧 Linux

Environment (optional)

GitHub-hosted macOS Apple Silicon, macOS Intel, Windows x64, and Linux x64 runners; OpenWork desktop version 0.2.0; electron_bridge=true; dry_run=true. Four installer artifact sets were uploaded with 14-day retention. No GitHub Release was created, no stable updater feed was changed, and no formal desktop app was published.

Risk & Scope

  • Main risk or tradeoff: This is a large integration diff because it lands the complete stacked desktop migration that previously existed only on feature branches.
  • Not validated / out of scope: A production-signed release and the real installed Electron-to-Tauri-to-next-Tauri update chain were intentionally not executed. Those remain release-time canary gates with real secrets and an isolated feed.
  • Breaking changes / migration notes: The active desktop becomes the Tauri/Web Shell application at version 0.2.0. The legacy OpenWork_0.1.0_aarch64.dmg is stale and is not a release candidate. Legacy data migration fails closed on unreadable or malformed source data, and Electron compatibility assets are generated only when the release bridge is enabled.

Linked Issues

Related to #80, #81, #82, and #83. The upstream Qwen Electron-to-Tauri bridge is QwenLM/qwen-code#8392.

中文说明

本 PR 做了什么

这个 PR 补全了只将 #81 合入 main 后中断的 OpenWork Tauri 落地。它把 #82#83 的最终结果真正合入默认分支基线,包含 Tauri/Web Shell 产品能力对齐、安全的旧数据迁移、桌面原生集成、工作区和频道行为、四平台打包、Tauri updater,以及一次性的 Electron 到 Tauri 兼容升级桥。

它同时恢复了边界清晰的 OpenWork workflow 集合。继承自 Qwen 的 workflow 文件继续保留在仓库中以便后续同步维护,但在 GitHub Actions 中保持禁用;SDK Java 也已在仓库层面禁用,没有删除 workflow 文件。Desktop Release 保持启用,并默认执行不发布的 dry run。

为什么需要

#81 先合入了 main,随后 #82#83 分别合入各自的父功能分支。因此 GitHub 显示堆叠 PR 都已合并,但真正进入默认分支的只有第一层。这个 PR 让 main 包含完整且已审核的桌面端堆栈,并留下一个经过验证的发布路径:合入后可以直接构建安装包,默认不会发布。

Reviewer 测试计划

如何验证

  • 确认结果源码在当前 main 上完整包含 feat(desktop): complete OpenWork Tauri parity #82fix(desktop): preserve Electron to Tauri upgrades #83 的行为,包括迁移、更新、发布、工作区、频道和桌面原生路径。
  • 确认保留的 Qwen 维护 workflow 与 SDK Java 是禁用而非删除,PR CI、CodeQL、Desktop Release 和可复用桌面构建仍然可用。
  • 打开成功的 PR CI 运行,确认 Linux/Windows 桌面任务、主测试任务,以及 32 个 Web Shell 浏览器 smoke case 全部通过。
  • 打开成功的 Desktop Release dry run,确认 macOS Apple Silicon、macOS Intel、Windows x64 和 Linux x64 都通过 runtime 验证、桌面/release 测试、打包后 smoke、artifact 收集与上传,并确认发布 job 被跳过。
  • 第一次正式发布前,使用真实签名/公证 secrets 和隔离更新源验证已签名的 Electron -> Tauri -> 更新版 Tauri 链路;不要把 dry-run artifacts 当作正式更新包。

证据(Before & After)

UI 基线和截图已放在 PR1(#81)中。这个集成 PR 没有再引入独立的视觉重设计;新增证据是上面链接的跨平台安装包矩阵和浏览器 smoke 运行。

测试平台

OS状态
🍏 macOS
🪟 Windows
🐧 Linux

环境(可选)

GitHub 托管的 macOS Apple Silicon、macOS Intel、Windows x64 和 Linux x64 runner;OpenWork 桌面版本 0.2.0electron_bridge=truedry_run=true。四组安装包 artifacts 已上传并保留 14 天。没有创建 GitHub Release,没有更新稳定 updater feed,也没有发布正式桌面应用。

风险与范围

  • 主要风险或取舍:这是一个较大的集成 diff,因为它补充落地了此前只存在于功能分支上的完整桌面迁移堆栈。
  • 未验证 / 范围外:本次有意没有执行正式签名发布,也没有真实运行已安装应用的 Electron -> Tauri -> 下一版 Tauri 更新链。这些仍是使用真实 secrets 和隔离更新源的发布前 canary 门槛。
  • 破坏性变更 / 迁移说明:当前桌面应用切换为版本 0.2.0 的 Tauri/Web Shell 应用。旧的 OpenWork_0.1.0_aarch64.dmg 已过期,不能作为候选发布包。旧数据遇到不可读或格式错误时会安全失败;只有启用发布桥时才生成 Electron 兼容资产。

关联内容

关联 #80#81#82#83。上游 Qwen 的 Electron 到 Tauri 桥接为 QwenLM/qwen-code#8392

* feat(desktop): complete OpenWork Tauri parity
* fix(ci): align desktop workflows with YAML lint
* chore(ci): retry sensitive scan
* chore(repo): define OpenWork upstream boundary
* fix(desktop): close release blockers
* fix(desktop): preserve Electron to Tauri upgrades
* test(desktop): satisfy bridge contract lint
@github-actions

github-actionsBot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Summary

PackageLinesStatementsFunctionsBranches
CLI83.98%83.98%89.88%83.2%
Core87.86%87.86%89.4%86.36%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s -------------------|---------|----------|---------|---------|-------------------
All files | 83.98 | 83.2 | 89.88 | 83.98 | src | 85.12 | 81.72 | 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.71 | 90 | 89.33 | ...01,518,552,674 ...ActiveAuth.ts | 100 | 87.5 | 100 | 100 | 66-80 ...cp-integration | 71.47 | 73.67 | 91.19 | 71.47 | acpAgent.ts | 70.88 | 73.47 | 90.74 | 70.88 | ...61,12266-12268 ...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.49 | 86.99 | 96.71 | 91.49 | Session.ts | 90.51 | 85.18 | 95.94 | 90.51 | ...90,10717-10721 ...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.28 | 89.09 | 89.03 | ...t-cli-argv.ts | 100 | 100 | 100 | 100 | protocol.ts | 100 | 100 | 100 | 100 | ...sor-client.ts | 80.38 | 71.71 | 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.97 | 88.55 | 90.64 | 88.97 | channel-cwd.ts | 100 | 100 | 100 | 100 | ...l-registry.ts | 95.23 | 96.7 | 88.88 | 95.23 | ...19-222,267-270 ...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 | 94.08 | 85.76 | 94.44 | 94.08 | ...1250,1257-1258 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.82 | 87.82 | 87.09 | 88.82 | consent.ts | 72.53 | 90 | 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 | 90.9 | 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 | 55.55 | 100 | 75 | ...27-131,133-137 ...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.66 | 88.04 | 88.42 | 87.66 | agent-prompt.ts | 93.64 | 91.71 | 97.22 | 93.64 | ...2486,2610-2690 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.52 | 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 | 83.67 | 78.41 | 88.88 | 83.67 | ...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.05 | 94.98 | 97.9 | 97.05 | 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.1 | 92.85 | 100 | 98.1 | ...77,226,543,575 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.11 | 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.56 | 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.9 | 89.83 | 96.27 | 94.9 | ...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.93 | 88.59 | 83.33 | 88.93 | ...2451,2453-2461 ...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 ...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 | 86.83 | 81.92 | 89.65 | 86.83 | index.ts | 75.35 | 77.77 | 90 | 75.35 | ...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 | 44.81 | 66.19 | 55.26 | 44.81 | ...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 | 37.67 | 60.71 | 46.66 | 37.67 | ...38-650,659-688 .../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.51 | 83.79 | 90.48 | 87.51 | ...tp-enabled.ts | 100 | 100 | 100 | 100 | ...ion-bridge.ts | 100 | 100 | 100 | 100 | auth.ts | 93.43 | 92.95 | 100 | 93.43 | ...20-321,324-326 ...em-adapter.ts | 100 | 100 | 100 | 100 | capabilities.ts | 100 | 98.07 | 100 | 100 | 679 ...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 | 92.33 | 86.27 | 100 | 92.33 | ...18-520,527,529 ...-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.01 | 80.02 | 75.43 | 84.01 | ...7461,7467-7468 ...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.8 | 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.58 | 79 | 100 | 98.58 | 106,134,174,177 ...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.61 | 100 | 98.23 | ...36,340-345,386 ...te-runtime.ts | 83.98 | 90.19 | 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.25 | 80.01 | 93.1 | 78.25 | ...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.85 | 77.7 | 94.23 | 73.85 | ...5227,5275-5281 index.ts | 82.23 | 80.07 | 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.47 | 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.41 | 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.6 | 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.57 | 80.03 | 94.73 | 85.57 | 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.6 | 81.86 | 91.3 | 85.6 | ...4894,4896-4897 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.04 | 72.99 | 100 | 75.04 | ...79-690,696-697 ...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.8 | 88.98 | 96.85 | 91.8 | 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.34 | 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.83 | 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.03 | 97.45 | 100 | 99.03 | ...31,645,787-789 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.81 | 91.11 | 90.65 | index.ts | 90.13 | 87.12 | 89.74 | 90.13 | ...1464-1468,1471 types.ts | 100 | 100 | 100 | 100 | src/services | 92.48 | 89.31 | 98 | 92.48 | ...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 | 86.83 | 83.87 | 100 | 86.83 | ...30-335,340-345 ...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.68 | 83.15 | 89.15 | 82.68 | 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.15 | 84.21 | 100 | 84.15 | ...3,68-71,95-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.97 | 52.38 | 20.83 | 50.97 | ...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.56 | 100 | 0 | 9.56 | 40-67,70-158 ...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.4 | 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.86 | 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.76 | 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 | 79.56 | 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.47 | 83.06 | 87.79 | 85.47 | ...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 | 42 | 75 | 100 | 42 | 42-44,53-59,62-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.19 | 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 | 72.72 | 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 | 86.47 | 79.88 | 96.66 | 86.47 | screen-buffer.ts | 94.73 | 64.28 | 100 | 94.73 | 51-52 ...ion-coords.ts | 100 | 100 | 100 | 100 | ...ction-span.ts | 92.72 | 90 | 100 | 92.72 | 37-38,67-68 ...tion-state.ts | 85.71 | 100 | 88.88 | 85.71 | 51-58 ...ction-text.ts | 92.85 | 92.45 | 100 | 92.85 | 30-34,114-115 ...selection.tsx | 80.31 | 59.64 | 100 | 80.31 | ...13-314,330-331 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.63 | 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.3 | 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.21 | 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.1 | 94.59 | 75.03 | collect.ts | 71.27 | 66.1 | 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.4 | 87.03 | 92.57 | 81.4 | ...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.38 | 71.83 | 88.88 | 70.38 | ...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.66 | 100 | 93.18 | ...80-381,384-385 languageUtils.ts | 98.88 | 97.01 | 100 | 98.88 | 184-185 load-undici.ts | 100 | 100 | 100 | 100 | ...npm-update.ts | 86.64 | 77.33 | 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.25 | 91.17 | 100 | 94.25 | ...30,436,439-443 ...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 | 82.35 | 89.57 | 90 | 82.35 | ...25-743,750-758 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.86 | 86.36 | 89.4 | 87.86 | 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.94 | 68.22 | 78.94 | 76.94 | ...gentClient.ts | 79.47 | 88.88 | 81.81 | 79.47 | ...68-183,189-204 ArenaManager.ts | 75.89 | 65.2 | 78.57 | 75.89 | ...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.67 | 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 | 89.96 | 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 | 84.98 | 87.12 | 75.37 | 84.98 | approval-mode.ts | 100 | 100 | 100 | 100 | ...xtDefaults.ts | 100 | 100 | 100 | 100 | config.ts | 84.29 | 86.84 | 73.79 | 84.29 | ...8350,8354-8355 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.09 | 93.29 | 92.37 | baseLlmClient.ts | 88.4 | 83.8 | 81.81 | 88.4 | ...59,672,678-680 client.ts | 92.05 | 87.42 | 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.67 | 96.15 | 90.04 | ...6215,6243-6259 geminiChat.ts | 94.7 | 90.11 | 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 | ...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.3 | 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.07 | 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.63 | 90.44 | 95.61 | 91.63 | 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.45 | 91.21 | 100 | 95.45 | ...1301,1309,1408 ...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.19 | 90.44 | 98.36 | 97.19 | dashscope.ts | 98.36 | 92.99 | 95.65 | 98.36 | ...93-494,636-637 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.27 | 84.01 | 92.52 | 87.27 | ...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.85 | 86.38 | 97.87 | 90.85 | ...1218-1224,1268 ...ionManager.ts | 82.24 | 80.14 | 81.52 | 82.24 | ...2730,2752-2753 ...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.36 | 85.71 | 75.9 | ...98,202,214-248 github.ts | 90.42 | 82.66 | 100 | 90.42 | ...0,990-991,1001 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 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.25 | 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 | 87.91 | 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.09 | 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.92 | 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 | 86.79 | 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 | 81.53 | 81.81 | 81.21 | ...63-277,291-296 src/mocks | 0 | 0 | 0 | 0 | msw.ts | 0 | 0 | 0 | 0 | 1-9 src/models | 92.55 | 88.97 | 91.13 | 92.55 | 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 | 47.82 | 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 | 89.36 | 86.93 | 88.09 | 89.36 | ...1404,1433-1434 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.16 | 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 | 88.88 | 80 | 86.63 | ...1111,1217-1221 rule-parser.ts | 94.49 | 92.72 | 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.52 | 95.89 | 85.41 | ...tGenerator.ts | 98.64 | 98.18 | 100 | 98.64 | 105-106 qwenOAuth2.ts | 82.79 | 73.29 | 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.76 | 84.61 | 96.92 | 89.76 | ...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.12 | 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 | 95.49 | 90.82 | 100 | 95.49 | ...37,346-347,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.88 | 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.47 | 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.9 | 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.75 | 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.72 | 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.92 | 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.69 | 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.97 | 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 | 94.32 | 86.36 | 83 | ...1467,1471-1478 uiTelemetry.ts | 97.18 | 93.93 | 88 | 97.18 | ...70,314,461-462 ...ry/qwen-logger | 72.87 | 78.7 | 70 | 72.87 | event-types.ts | 0 | 0 | 0 | 0 | qwen-logger.ts | 72.87 | 78.5 | 69.49 | 72.87 | ...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.24 | 84.99 | 88.72 | 86.24 | ...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 | 79.87 | 85.58 | 89.47 | 79.87 | ...2259,2263-2266 ...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 | 0 | 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.61 | 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.97 | 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.18 | 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.24 | 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.48 | 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.36 | 100 | 86.07 | ...2269,2276-2280 ...lAstParser.ts | 98.27 | 91.36 | 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 | 25 | 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.59 | 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.

@yiliang114
yiliang114 marked this pull request as ready for review August 17, 2026 07:44

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:53382baa5c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

disabled,
}: WebShellComposerToolbarRenderInfo) {
const { t } = useI18n();
const [effort, setEffort] = useState('default');

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Synchronize the effort selector with the active setting

The selector always initializes to default and never reads the session's configured reasoning effort. When a user starts with a persisted tier such as high, switches sessions/models, or changes effort through another command surface, the toolbar displays a different value from the one used for subsequent turns, which can invalidate reasoning-effort comparisons. Populate this state from the active configuration and update it when that configuration changes.

Useful? React with 👍 / 👎.

Comment on lines +571 to +575
useEffect(() => {
applyOpenWorkPreferences(preferences);
void invokeOpenWork('set_interface_zoom', {
percent: preferences.zoom,
}).catch(() => undefined);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Implement or hide app zoom outside Tauri

When the standalone Web Shell is opened in an ordinary browser, window.__TAURI__ is absent, so this invocation resolves to undefined; applyOpenWorkPreferences also does not apply the stored zoom value. Because OpenWorkDesktopLayer and its zoom selector/shortcuts are mounted unconditionally in StandaloneApp, browser users can change a working-looking setting that never affects the interface. Gate the native-only control or provide a browser zoom implementation.

Useful? React with 👍 / 👎.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR lands the remaining stacked desktop migration work (#82/#83) onto main, completing OpenWork’s Tauri + Qwen Web Shell parity, enabling the Electron→Tauri update bridge, adding legacy data migration, and restoring a bounded/explicit GitHub Actions workflow set suitable for OpenWork.

Changes:

  • Finalize desktop runtime/release infrastructure: Tauri updater + cross-platform packaging, Electron compatibility bridge, runtime integrity checks, and first-launch legacy migration.
  • Add OpenWork Web Shell desktop layer features: preferences (theme/zoom/text size/contrast/motion), command palette + recents, link routing into a docked browser, settings/help search, and improved copy feedback.
  • Extend channels and management: Telegram management metadata, new WhatsApp adapter/plugin, and safer channel state deletion; improve multi-workspace session restore routing.

Reviewed changes

Copilot reviewed 97 out of 102 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
scripts/tests/no-ak-integration-ci.test.jsTightens CI workflow assertions for OpenWork-specific job gating and Windows runner routing.
scripts/clean-package-build-artifacts.jsIncludes WhatsApp channel package in artifact cleanup set.
scripts/build.jsIncludes WhatsApp channel package in the build order.
packages/web-shell/client/styles/standalone.cssAdds high-contrast and reduced-motion overrides for the standalone shell.
packages/web-shell/client/openwork/themes.tsIntroduces OpenWork theme catalog and theme application logic.
packages/web-shell/client/openwork/preferences.tsAdds persistent OpenWork desktop preference storage + sanitization + application.
packages/web-shell/client/openwork/preferences.test.tsTests preference sanitization and theme application.
packages/web-shell/client/openwork/OpenWorkDesktopLayer.test.tsTests desktop-only link routing and deep-link drain concurrency.
packages/web-shell/client/openwork/OpenWorkDesktopLayer.module.cssStyles for OpenWork starters, palette, browser dock toolbar, and preference UI.
packages/web-shell/client/openwork/command-recents.tsAdds storage-backed “recent command” tracking with dedupe/capping.
packages/web-shell/client/openwork/command-recents.test.tsTests recent command ordering/deduping/capping behavior.
packages/web-shell/client/main.tsxWires OpenWork desktop layer into the standalone shell (refs, link routing, notifications, streaming state).
packages/web-shell/client/i18n.openwork.test.tsVerifies locale normalization and legacy OpenWork keys.
packages/web-shell/client/hooks/useComposerCore.dom.test.tsxStabilizes image-ingestion tests using a waitFor helper.
packages/web-shell/client/customization.tsxExtends customization surface (link handling) and refines composer render info types.
packages/web-shell/client/components/skills/SkillsManagerPage.tsxAdds curated OpenWork marketplace cards with install flow + notice tone handling.
packages/web-shell/client/components/RootErrorFallback.tsxAdjusts language copy table typing to ensure en is always present.
packages/web-shell/client/components/messages/UserMessage.module.cssApplies OpenWork chat text scale variable to user messages.
packages/web-shell/client/components/messages/SettingsMessage.tsxAdds settings search, OpenWork appearance section, and expands chat width options.
packages/web-shell/client/components/messages/SettingsMessage.dom.test.tsxUpdates defaults and tests filtering across settings + OpenWork appearance controls.
packages/web-shell/client/components/messages/Markdown.tsxAllows host interception of safe external links.
packages/web-shell/client/components/messages/Markdown.test.tsTests host link routing behavior.
packages/web-shell/client/components/messages/Markdown.module.cssApplies OpenWork chat text scale variable to rendered markdown.
packages/web-shell/client/components/messages/AssistantMessage.tsxImproves copy UX with failure feedback and an aria-live status announcement.
packages/web-shell/client/components/messages/AssistantMessage.test.tsxTests copy success/failure feedback and raw markdown copy.
packages/web-shell/client/components/dialogs/HelpDialog.tsxAdds command palette shortcut, and enables search filtering on the General tab too.
packages/web-shell/client/components/dialogs/HelpDialog.test.tsxTests filtering of General shortcuts via help search.
packages/web-shell/client/components/ChatEditor.tsxExpands chat width modes and exposes toolbar command execution without submitting drafts.
packages/web-shell/client/components/ChatEditor.test.tsxAdds coverage for toolbar command execution vs draft submission.
packages/web-shell/client/components/channels/ChannelsManagerPage.test.tsxUpdates expectations for expanded channel catalog visibility (Telegram included).
packages/web-shell/client/components/channels/channel-platform.tsAdds Telegram/WhatsApp platform support + marks + type guard updates.
packages/web-shell/client/components/channels/channel-platform.test.tsUpdates tests for expanded supported channel allowlist.
packages/web-shell/client/App.tsxAdds external shell APIs (settings/skills/channels/shortcuts/worktree sessions), chat width persistence expansion, and improved open-session routing by workspaceId.
packages/web-shell/client/App.test.tsxTests new external shell APIs and session routing behavior.
packages/desktop-shell/src-tauri/windows/electron-migration.nshAdds NSIS preinstall hook to uninstall prior Electron install (current-user) during update.
packages/desktop-shell/src-tauri/tauri.conf.jsonBumps app version to 0.2.0, enables asset protocol for pets, adds updater/deep-link config, and expands capabilities.
packages/desktop-shell/src-tauri/src/runtime.rsRuns legacy migration on runtime start and wires document-tool environment (uv/scripts/PATH) into the bundled daemon spawn.
packages/desktop-shell/src-tauri/Cargo.tomlBumps version and enables new Tauri features/plugins (deep-link, updater, notification).
packages/desktop-shell/src-tauri/capabilities/runtime.jsonDefines runtime capability set for loopback Web Shell desktop integrations (browser, pet, updates, state sync).
packages/desktop-shell/src-tauri/capabilities/pet.jsonAdds pet webview capability and permissions for sprite resolving + dragging.
packages/desktop-shell/src-tauri/capabilities/bootstrap.jsonExpands bootstrap capability to manage runtime lifecycle actions.
packages/desktop-shell/src-tauri/build.rsDeclares explicit command allowlist into the generated app manifest.
packages/desktop-shell/scripts/test-migration.jsAdds a Node-based migration/rollback test harness for legacy import behavior.
packages/desktop-shell/scripts/smoke-runtime.jsExtends runtime smoke verification to include uv + document tool launchers + migration entrypoint.
packages/desktop-shell/scripts/prepare-runtime.jsBundles document tools + pinned uv runtime, supports checksum refresh, and generalizes archive extraction.
packages/desktop-shell/README.mdDocuments uv/tools bundling, migration behavior, pets, and the release workflow expectations.
packages/desktop-shell/package.jsonBumps to 0.2.0 and adds migration test script.
packages/desktop-shell/package-lock.jsonAligns lockfile version metadata to 0.2.0.
packages/desktop-shell/migration/openwork-migrate.mjsImplements one-time, idempotent legacy data migration with audit report + rollback support.
packages/desktop-shell/bootstrap/pet.jsAllows loading non-default pet sprites via Tauri invoke.
packages/desktop-shell/bootstrap/pet.htmlAdds isolated pet webview HTML/CSP and reduced-motion behavior.
packages/desktop-shell/bootstrap/index.htmlImproves bootstrap “starting” state styling and accessibility of the OpenWork mark.
packages/desktop-shell/bootstrap/bootstrap.jsAdds explicit bootstrap state transitions and workspace snapshot behavior during startup/retry.
packages/cli/src/ui/commands/effort-command.tsAdds /effort default to clear override and persist provider/model default.
packages/cli/src/ui/commands/effort-command.test.tsTests the new /effort default behavior.
packages/cli/src/serve/routes/session.tsStrengthens session restore routing across multi-workspace: avoid primary fallback, resolve persisted owner, and enforce explicit-workspace conflicts.
packages/cli/src/serve/multi-workspace-sessions.test.tsAdds coverage for restoring dormant sessions via persisted workspace ownership and no-primary-fallback for unknown sessions.
packages/cli/src/serve/channel-management-service.tsEnsures adapter state dir is removed when deleting a channel instance, with staging + rollback on settings write failure.
packages/cli/src/serve/channel-management-service.test.tsTests channel deletion state cleanup and rollback behavior on failure.
packages/cli/src/commands/channel/daemon-worker.tsAdds terminal adapter disconnect signaling to supervisor (worker exits to trigger restart).
packages/cli/src/commands/channel/daemon-worker.test.tsTests terminal disconnect propagation and supervisor restart exit path.
packages/cli/src/commands/channel/channel-registry.tsRegisters WhatsApp as a built-in channel plugin.
packages/cli/src/commands/channel/channel-registry.test.tsUpdates catalog/manageable channel expectations to include Telegram/WhatsApp.
packages/cli/src/commands/channel/channel-registry-builtins.test.tsUpdates manageable built-ins expectations (Telegram/WhatsApp).
packages/cli/package.jsonAdds workspace dependency on @qwen-code/channel-whatsapp.
packages/channels/whatsapp/vitest.config.tsAdds vitest config for the WhatsApp channel package.
packages/channels/whatsapp/tsconfig.jsonAdds TS project config for the WhatsApp channel package.
packages/channels/whatsapp/src/WhatsAppAdapter.tsImplements WhatsApp channel adapter (Baileys) with auth-state hardening, reconnects, echo filtering, and terminal disconnect handling.
packages/channels/whatsapp/src/WhatsAppAdapter.test.tsTests WhatsApp connection readiness, auth hardening (non-win32), and terminal disconnect semantics.
packages/channels/whatsapp/src/message.tsAdds message parsing and inbound filtering helpers for WhatsApp.
packages/channels/whatsapp/src/message.test.tsTests WhatsApp message parsing/filtering behavior.
packages/channels/whatsapp/src/index.tsExposes WhatsApp channel plugin with manageable fields + validation.
packages/channels/whatsapp/package.jsonAdds WhatsApp channel package metadata + deps/scripts.
packages/channels/telegram/src/index.tsAdds management metadata for Telegram (bot token as secret/env-resolvable).
packages/channels/base/src/ChannelBase.tsAdds an optional onTerminalDisconnect callback to channel adapter options.
package.jsonAdds WhatsApp channel package to workspace list.
docs/developers/openwork-upstream-maintenance.mdDocuments upstream merge workflow and OpenWork workflow policy boundaries.
docs/design/openwork-tauri-pr2.mdCaptures PR2 scope, security boundaries, and verification plan for the parity landing.
docs/design/openwork-tauri-customization-audit.mdUpdates customization audit status to reflect parity decisions.
docs/design/desktop-electron-to-tauri-update-bridge.mdUpdates design doc to OpenWork-specific Electron→Tauri bridge contract.
docs/design/2026-07-31-desktop-web-shell-release.mdUpdates design doc to fixed desktop-latest/latest.json feed semantics.
CONTRIBUTING.mdUpdates cloning and desktop build instructions for OpenWork repo structure.
.gitignoreIgnores autogenerated desktop-shell permission artifacts.
.github/workflows/desktop-release.ymlAdds Desktop Release workflow with dry-run default and optional Electron bridge publishing.
.github/workflows/ci.ymlRenames CI, adds workflow inventory test, gates model-backed integration job to QwenLM/qwen-code, and pins OpenWork Windows runner routing.
.github/scripts/openwork-workflows.test.mjsEnforces explicit review allowlist for checked-in workflows.
.github/scripts/create-electron-bridge-manifest.mjsGeneralizes manifest generation by platform patterns and requires --platform.
.github/actionlint.yamlAdds a self-hosted runner label used by desktop workflows.
.agents/skills/desktop-pet/SKILL.mdUpdates pet creator skill docs to Tauri pet window + scoped asset protocol behavior.
.agents/skills/desktop-develop/SKILL.mdUpdates desktop dev harness docs from Electron to Tauri/Web Shell workflow.
.agents/skills/desktop-brand-builder/SKILL.mdUpdates branding skill docs to target the Tauri desktop shell and bundle outputs.
Files not reviewed (1)
  • packages/desktop-shell/package-lock.json: Generated file

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +1 to +15
import catppuccin from '../../../desktop/apps/electron/resources/themes/catppuccin.json';
import defaultTheme from '../../../desktop/apps/electron/resources/themes/default.json';
import dracula from '../../../desktop/apps/electron/resources/themes/dracula.json';
import ghostty from '../../../desktop/apps/electron/resources/themes/ghostty.json';
import github from '../../../desktop/apps/electron/resources/themes/github.json';
import gruvbox from '../../../desktop/apps/electron/resources/themes/gruvbox.json';
import haze from '../../../desktop/apps/electron/resources/themes/haze.json';
import nightOwl from '../../../desktop/apps/electron/resources/themes/night-owl.json';
import nord from '../../../desktop/apps/electron/resources/themes/nord.json';
import oneDarkPro from '../../../desktop/apps/electron/resources/themes/one-dark-pro.json';
import pierre from '../../../desktop/apps/electron/resources/themes/pierre.json';
import rosePine from '../../../desktop/apps/electron/resources/themes/rose-pine.json';
import solarized from '../../../desktop/apps/electron/resources/themes/solarized.json';
import tokyoNight from '../../../desktop/apps/electron/resources/themes/tokyo-night.json';
import vitesse from '../../../desktop/apps/electron/resources/themes/vitesse.json';
Comment on lines +741 to +745
onClick={(event) => {
if (safeHref && markdown?.onOpenLink?.(safeHref)) {
event.preventDefault();
}
}}
@yiliang114
yiliang114 merged commit 9cce4c8 into mainAug 18, 2026
10 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@yiliang114