Commit Graph
658 Commits
Author SHA1 Message Date
drakezhang 0cbb5b4d49 Merge remote-tracking branch 'origin/main' into fix/download-popup-capture 2026-09-23 21:06:22 +08:00
drakezhang 03f8561e03 fix(extension): attribute new-tab downloads through the clicked tab
A target="_blank" attachment link downloads from a transient new tab, so
the clicked target never receives Page.downloadWillBegin and bsk download
timed out. Instead of matching the anchor href against every browser
download, accept the URL of a webNavigation navigation target whose source
is the clicked tab and that appears after the mouse press, and match it only
against download candidates observed after the press.

The dispatch point reuses clickResolvedTarget's existing markSent hook, so
the click pipeline and the exact-target CDP path keep their behavior.
2026-09-23 21:06:22 +08:00
Zhang GH f60d8daa80 Merge pull request #329 from Sthreal/fix/266-doctor-skill-provenance
fix(cli): scope doctor skill status to bundled version
2026-09-23 19:40:26 +08:00
Sthreal 74c307dec6 fix(cli): scope doctor skill status to bundled version 2026-09-23 17:10:09 +08:00
Zhang GH da6bf4eed2 Merge pull request #328 from Tencent/release/0.3.1
chore(release): prepare 0.3.1
dsh-plugin-v0.3.1 cli-v0.3.1 ext-v0.3.1
2026-09-23 15:20:25 +08:00
drakezhang a5d9201ffe docs: refresh English and Chinese READMEs 2026-09-23 15:12:39 +08:00
drakezhang 1e2b175f18 docs(privacy): disclose website debugging data handling 2026-09-23 14:46:34 +08:00
drakezhang 476500be35 chore(release): prepare 0.3.1 2026-09-23 14:30:58 +08:00
Zhang GH 34a07f3c31 Merge pull request #327 from Tencent/chore/update-dsh-sdk
Align DSH SDK dependencies with the current host
2026-09-23 13:20:15 +08:00
Zhang GH ecf85c5777 Merge pull request #326 from Tencent/fix/dsh-screenshot-card
Fix screenshot tool cards on current DSH hosts
2026-09-23 13:19:45 +08:00
drakezhang a945f26302 Merge screenshot thumbnail bounds fix 2026-09-23 13:09:44 +08:00
drakezhang 2b01a15400 fix(dsh): keep extreme screenshot thumbnails usable 2026-09-23 13:09:31 +08:00
drakezhang b8b744abf2 chore(dsh): align SDK dependencies with the current host 2026-09-23 12:44:53 +08:00
drakezhang bbde2d73a6 fix(dsh): preserve screenshot previews across host rerenders 2026-09-23 12:25:55 +08:00
Zhang GH 60912e4165 Merge pull request #323 from Tencent/fix/control-overlay-click
fix(extension): prevent control overlay from swallowing clicks
2026-09-23 12:16:26 +08:00
drakezhang 531a1fa91d fix(extension): reserve time for click delivery before lease expiry 2026-09-23 12:05:31 +08:00
drakezhang a965e6daf3 fix(dsh): render screenshot cards without host attachment components 2026-09-23 11:59:48 +08:00
drakezhang d426a40c2b fix(extension): expire orphaned click passthrough leases 2026-09-23 11:51:44 +08:00
Zhang GH 21455c6bc7 Merge pull request #325 from Tencent/fix/full-page-screenshot-dpi-background
Fix full-page screenshots at fractional DPI and in inactive tabs
2026-09-23 11:39:01 +08:00
Zhang GH ceefed3ec7 Merge pull request #324 from Tencent/fix/sidebar-modal-detection
fix(vom): preserve page actions beside nonmodal sidebars
2026-09-23 11:38:44 +08:00
drakezhang f446536125 fix(extension): scope click passthrough to control surfaces 2026-09-23 11:18:23 +08:00
drakezhang 4fde56f483 fix(vom): tolerate viewport rounding and honor AX modality 2026-09-23 11:16:26 +08:00
Zhang GH f0688d9f95 fix: stabilize full-page screenshots at fractional DPI and in background tabs 2026-09-23 10:59:33 +08:00
drakezhang fa18d3c3b1 fix(vom): preserve page actions beside nonmodal sidebars 2026-09-23 10:50:55 +08:00
drakezhang ece29530dd fix(extension): prevent control overlay from swallowing clicks 2026-09-23 10:26:53 +08:00
Zhang GH 3da449e9ff Merge pull request #318 from lyingbug/fix/bounded-renderer-reads
fix(extension): bound renderer reads and stop fallback reads after a timeout
2026-09-22 22:44:24 +08:00
drakezhang cba47d4888 fix(extension): retain observations after optional root layout timeout
Separate snapshot decoding from optional geometry so DOM, AX, form state and
identity checks finish before measuring the root viewport. Retain captured
content with explicit geometry gaps after that measurement times out, without
issuing projection or hover reads behind the gate. Keep post-layout identity
validation on successful reads and reject attachment changes and cancellation.

Clarify that navigation does not reset pending reads. Preserve the existing
RPC reason while exposing the command, deadline/blocked phase and process.

Validation: 2200 extension tests passed (108 skipped); 126 focused regression
tests, TypeScript, changed-file Biome checks and production build passed.
2026-09-22 22:31:53 +08:00
drakezhang ad6dd44092 fix(extension): preserve read budgets and isolate stalled frame reads
Keep timed-out commands gated until Chrome settles them, including auto-attach configuration. Scope frame-tree deadlines to observation so navigation retains its caller budget, and give snapshot/AX captures a separate deadline.

Omit known unavailable iframe subtrees without rerouting them to the root session. Preserve viewing-only screenshots after post-capture identity verification when optional geometry times out.

Validation: 2191 extension tests passed (108 skipped); TypeScript, changed-file Biome checks, and production extension build passed.
2026-09-22 22:00:26 +08:00
wizardchen e2624572f0 fix(extension): refuse renderer reads while a timed-out read is still running
A read deadline ends the caller's wait but not the command in Chrome. Until
that command settles, further DOMSnapshot, accessibility, layout and frame
reads on the same tab are refused immediately instead of queueing behind it
and spending another deadline each. The fence clears when the stuck command
settles or the tab detaches; Target.setAutoAttach is answered by the browser
process and does not participate.

Observation errors caused by a renderer read timeout carry
data.reason = "renderer_read_timeout" so gateways can distinguish an
unresponsive page from other CDP failures. The late rejection of a timed-out
read is verified not to surface as an unhandled rejection.
2026-09-22 21:50:43 +08:00
wizardchen a317bf8a1c fix(extension): keep frame discovery consistent after a read timeout
A timed-out Target.setAutoAttach on a child target left the session attached
in Chrome but dropped it from frame discovery, so the iframe vanished from the
frame graph until the next reattach. Keep the session on timeout and retry
the configuration from getFrameGraph, bounded by the same drain as newly
attached targets.

getFrameGraph also swallowed timed-out child Page.getFrameTree,
DOM.getFrameOwner and root Target.setAutoAttach reads and returned a partial
graph, after which the coordinator queued DOMSnapshot behind the stuck reads.
Propagate CdpReadTimeoutError from these paths; ordinary navigation failures
are still tolerated.
2026-09-22 21:12:21 +08:00
wizardchen 85192211ce fix(extension): bound renderer reads and stop fallback reads after a timeout
Renderer reads issued through chrome.debugger cannot be cancelled. When a
background tab stops answering, DOMSnapshot, accessibility, layout and frame
reads hang until the daemon transport deadline, and the observation fallback
keeps issuing further reads against the same stuck page.

- Route CDP commands through a 10 s read deadline for snapshot, accessibility,
  layout, frame-tree, frame-owner and auto-attach reads. A timed-out read
  raises CdpReadTimeoutError; the late Chrome reply is ignored and logged.
  Mutations, screenshots, evaluation and user-requested waits are not bounded.
- Add isCaptureTerminalError for the capture pipeline so a read timeout stops
  AX/geometry fallback like an abort does, while isAbortError stays strict and
  tool handlers keep reporting the timeout as cdp_failed rather than cancelled.
- Configure Target.setAutoAttach once per debugger session instead of on every
  observation; reapply after detach and retry after a failed configuration.
2026-09-22 20:56:08 +08:00
Zhang GH c61eb7e4b1 Merge pull request #297 from lyingbug/feat/task-popup-attribution
feat(extension): preserve observed popups while enabling task control
2026-09-22 20:32:41 +08:00
drakezhang 64245fb1ab fix(extension): clear overlays when observed tabs are released
Reset preserved popup overlays after session teardown and hide them when observed control is released on tab detachment. Keep overlay notifications best-effort so unresponsive pages cannot delay cleanup.

Cover local and remote stop, disconnect cleanup, tab activation ordering, unavailable content scripts, and unaffected tabs.
2026-09-22 20:24:58 +08:00
Zhang GH 1b20e717b6 Merge pull request #296 from lyingbug/feat/ui-task-preview
feat(extension): answer remote gateway UI requests outside the tool queue
2026-09-22 19:48:59 +08:00
wizardchen 14afdbca45 fix(extension): preserve popup observation tails and safe cleanup 2026-09-22 19:25:34 +08:00
wizardchen 7478e086e6 fix(extension): preserve observed popups and bound input attribution 2026-09-22 18:47:53 +08:00
wizardchen 80dd02ac78 fix(extension): keep UI deadlines from blocking session cleanup 2026-09-22 18:46:30 +08:00
wizardchen 7b74596896 fix(extension): cancel and revalidate popup attribution 2026-09-22 18:03:20 +08:00
wizardchen 9cde489504 fix(extension): coordinate task UI requests with tab teardown 2026-09-22 18:02:22 +08:00
wizardchen be34f86a84 Merge main and preserve debug hooks around popup tracking 2026-09-22 17:44:05 +08:00
wizardchen 5ceda9ca81 Merge remote-tracking branch 'origin/main' into fix/pr-296-review 2026-09-22 17:42:47 +08:00
Zhang GH 4db34eb7da Merge pull request #302 from imnemo/feat/browser-instance-label-ui
feat(extension): add human-readable browser instance names
2026-09-22 16:58:38 +08:00
Zhang GH df771dee0c Merge pull request #304 from kevin9327/fix/long-screenshot-aria-case
fix(extension): treat ARIA loading tokens as case-insensitive
2026-09-22 16:54:25 +08:00
Zhang GH d8bec5d984 Merge pull request #303 from kevin9327/fix/press-key-case
fix(extension): accept lowercase special keys in press
2026-09-22 16:54:10 +08:00
Zhang GH c311d3ddae Merge pull request #299 from kevin9327/fix/overlay-host-hit-test
fix(extension): treat overlay host as the click blocker
2026-09-22 16:53:49 +08:00
Zhang GH 97fd072328 Merge main to fix CI skill validation
Include the upstream skill reference bundle updates so the DSH prompt-budget check passes. Preserve the original feature commits and behavior.
2026-09-22 16:32:18 +08:00
Zhang GH 550f89d02e Merge main to fix CI skill validation
Include the upstream skill reference bundle updates so the DSH prompt-budget check passes. Preserve the original feature commits and behavior.
2026-09-22 16:32:17 +08:00
Zhang GH 8c5896562b Merge main to fix CI skill validation
Include the upstream skill reference bundle updates so the DSH prompt-budget check passes. Preserve the original feature commits and behavior.
2026-09-22 16:32:17 +08:00
Zhang GH e30ac03a99 Merge main into browser instance naming
Preserve both session-start reservation cleanup and debugging finalization in the dispatcher. Add browser naming messages for the seven locales now supported on main.
2026-09-22 13:24:16 +08:00
Zhang GH 345d7038c2 fix(extension): serialize browser rename and session startup
Reserve an idle browser across label persistence and reconnect. Track session starts from request receipt and reject overlapping starts before allocating windows.

Cover pending starts, save and reconnect waits, failed updates, and cancellation cleanup.
2026-09-22 13:18:47 +08:00