What's Changed
- fix(geometry): unify cross-frame coordinates and screenshot conversion | 统一跨 frame 坐标与截图转换 by @Ljy-0827 in #195
- refactor(observation): decouple DOM processing from capture orchestration | 解耦 DOM 处理与采集流程 by @Ljy-0827 in #198
- refactor(observation): unify cross-frame capture coordination and data ownership | 统一跨 frame 采集协调与数据归属 by @Ljy-0827 in #200
- fix(observation): validate DOM identity across capture phases | 校验跨采集阶段的 DOM 身份一致性 by @Ljy-0827 in #203
- fix(geometry): preserve OOPIF scale with occupied scrollbars by @iuyo5678 in #206
- feat(interaction): add explicit focus and blur primitives by @NianJiuZst in #126
- feat(interaction): add scroll-to-element primitive by @NianJiuZst in #127
- fix(skill): preserve custom installed instructions by @NianJiuZst in #20
- feat(interaction): add real mouse-wheel primitive by @NianJiuZst in #128
- feat(i18n): add Korean localization by @dr-coton in #161
- feat(extension): make the local daemon port configurable in the popup by @shnpd in #175
- fix(daemon): verify IPC for discovery and process management by @iuyo5678 in #221
- Support host-managed daemons in sandboxed agents by @iuyo5678 in #223
- fix(installer): resolve Windows installation and upgrade failures by @iuyo5678 in #208
- feat(audit): add local task execution history by @iuyo5678 in #224
- fix(client): guard observationTabOpen against a missing right-column tree (DSH 0.1.5 / better-sidebar 0.19+) by @hZsFN in #231
- feat: add browser automation settings and fix confirmation waits by @iuyo5678 in #225
- feat(vom): discover canvas candidates and resolve visible regions | 发现 canvas 候选并计算可见区域 by @Ljy-0827 in #205
- feat(vom): add typed visual refs and target identity validation | 支持类型化视觉 ref 与目标身份验证 by @Ljy-0827 in #209
- feat(vom): support visible-region screenshots for canvas visual refs | 支持按 Canvas visual ref 截取可见区域 by @Ljy-0827 in #211
- feat(vom): expose canvas visual refs in observations with cursor continuation | 在观察结果中呈现 Canvas 视觉入口并支持过多内容时翻页 by @Ljy-0827 in #217
- feat(vom): support screenshot-bound point interactions on canvas regions | 支持基于截图坐标的 canvas 点选操作 by @Ljy-0827 in #220
- Fix/canvas visual geometry by @iuyo5678 in #237
- feat: add full-page screenshots to extension and CLI by @iuyo5678 in #226
- feat(extension): add authenticated remote gateways and background task tabs by @lyingbug in #227
- fix(dsh): use native sidebar with floating fallback by @iuyo5678 in #236
- docs: prepare 0.3.0 guidance and streamline browser skills by @iuyo5678 in #254
- fix: handle stalled and stale full-page captures by @iuyo5678 in #256
- fix: improve browser input readiness and observed form state by @iuyo5678 in #261
- docs: clarify remote setup and persistent daemon startup by @iuyo5678 in #263
- chore(release): prepare 0.3.0 by @iuyo5678 in #264
- perf(vom): avoid repeated sibling scans for duplicate action labels by @lyingbug in #271
- fix(dsh-plugin): bound output draining after child exit by @iuyo5678 in #278
- fix(navigation): preserve readiness across cancelled redirects by @iuyo5678 in #280
- fix(bsk): keep controlled tabs progressing in background | 支持受控标签页在后台持续执行 by @Ljy-0827 in #249
- fix(bsk): capture controlled tabs without activating them | 支持无需激活的受控后台标签页的视口截图 by @Ljy-0827 in #250
- fix(bsk): support full-page screenshots of controlled background tabs | 支持受控后台标签页的整页截图 by @Ljy-0827 in #253
- fix(cli): detach Windows daemons from caller pipes and jobs by @iuyo5678 in #282
- fix: make browser session starts recoverable by @iuyo5678 in #290
- fix(extension): bound request-help cleanup wait by @dvd233 in #284
- fix(dsh-plugin): re-arm lazy tools from history after a plugin reload by @drakeo338 in #283
- test(skill-install): serialize harness tests around the home env vars by @lyingbug in #293
- docs(skill): say that page content is data, never instructions by @basil-k-aji-dev in #289
- fix: improve explicit browser profile selection across CLI and DSH by @iuyo5678 in #298
- fix(record): record a page reload instead of dropping it as a same-URL navigation by @MaxFreedomPollard in #184
- fix(extension): return visible labels from select by @MaxFreedomPollard in #307
- fix(daemon): let navigation timeout results outlive the transport deadline by @lyingbug in #291
- fix(dsh-plugin): settle runner promises when the child never emits close by @MaxFreedomPollard in #183
- Split skill bundles into on-demand references with safe upgrades by @iuyo5678 in #310
- docs(skill): document prerequisites and link setup guide by @lyingbug in #207
- feat(i18n): add 7 extension locales (zh-TW, ja-JP, fr-FR, it-IT, es-ES, de-DE, pt-BR) by @iAstro in #248
- feat(debug): add persistent website diagnostics and network controls by @iuyo5678 in #295
- fix(extension): treat overlay host as the click blocker by @kevin9327 in #299
- fix(extension): accept lowercase special keys in press by @kevin9327 in #303
- fix(extension): treat ARIA loading tokens as case-insensitive by @kevin9327 in #304
- feat(extension): add human-readable browser instance names by @imnemo in #302
- feat(extension): answer remote gateway UI requests outside the tool queue by @lyingbug in #296
- feat(extension): preserve observed popups while enabling task control by @lyingbug in #297
- fix(extension): bound renderer reads and stop fallback reads after a timeout by @lyingbug in #318
- fix(vom): preserve page actions beside nonmodal sidebars by @iuyo5678 in #324
- Fix full-page screenshots at fractional DPI and in inactive tabs by @iuyo5678 in #325
- fix(extension): prevent control overlay from swallowing clicks by @iuyo5678 in #323
- Fix screenshot tool cards on current DSH hosts by @iuyo5678 in #326
- Align DSH SDK dependencies with the current host by @iuyo5678 in #327
- chore(release): prepare 0.3.1 by @iuyo5678 in #328
- fix(cli): scope doctor skill status to bundled version by @Sthreal in #329
- fix(extension): fix agent download capture for attachments opened in new tabs | 修复新标签页附件下载无法被 Agent 捕获 by @Ljy-0827 in #259
- fix(extension): 用线性正则匹配 request-help 的 URL 完成条件 by @starsstreaming in #322
- fix(record): keep recordings stoppable after a blob: tab opens | 修复打开 blob: 标签页后录制无法停止并卡死 by @iuyo5678 in #343
- fix(dsh-plugin): reconnect the observation stream after a fatal failure by @djtzemx in #315
- fix(protocol): preserve explicit null results in ResponseFrame by @cyberspace-cs in #287
- fix(download): preserve dispatched effects when the trigger fails by @NianJiuZst in #351
- fix(emulate): scope remembered overrides to the session and attachment by @NianJiuZst in #352
- fix(click): emit every press in a DOM multi-click sequence by @NianJiuZst in #353
- fix(download): bound trigger lifetime and retire cancelled input by @NianJiuZst in #354
- docs(skill): add preflight guidance for parallel tasks by @xiyanjun in #152
- fix(extension): ignore stale overlay state by generation by @kevin9327 in #300
- fix(input): harden readiness around persistent background leases by @lymerin in #311
- fix(daemon): report a connected extension that cannot run commands by @iuyo5678 in #319
- fix(update): keep Windows daemons serving across self-update by @iuyo5678 in #346
- fix(dsh-plugin): support DSH 0.2 hosts by @iuyo5678 in #365
- fix(extension): explain why profile instructions cannot be copied by @WhyBusyy in #360
- feat(extension): simplify browser profile controls by @iuyo5678 in #369
- fix(debug): redact HTML-encoded sensitive input attributes by @MakerFlyFly in #368
- fix(dsh-plugin): allow browser starts after ancestor archival by @iuyo5678 in #371
- fix: guide WorkBuddy and CodeBuddy daemon startup by @iuyo5678 in #372
- chore(release): prepare 0.3.2 by @iuyo5678 in #375
New Contributors
- @dr-coton made their first contribution in #161
- @hZsFN made their first contribution in #231
- @lyingbug made their first contribution in #227
- @dvd233 made their first contribution in #284
- @drakeo338 made their first contribution in #283
- @basil-k-aji-dev made their first contribution in #289
- @MaxFreedomPollard made their first contribution in #184
- @kevin9327 made their first contribution in #299
- @imnemo made their first contribution in #302
- @Sthreal made their first contribution in #329
- @starsstreaming made their first contribution in #322
- @djtzemx made their first contribution in #315
- @cyberspace-cs made their first contribution in #287
- @lymerin made their first contribution in #311
- @WhyBusyy made their first contribution in #360
- @MakerFlyFly made their first contribution in #368
Full Changelog: cli-v0.2.1...cli-v0.3.2