1
Install the Lexmount Browser Bundle
Terminal
corepack install --global pnpm@11.22.0
corepack enable pnpm
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web add @lexmount/dsh-browser@nextUse the native Lexmount DSH Bundle to measure a 500ms SLA, retain text and replay evidence, and separate browser facts, deployed-source facts, and inference without image input.

Before the first run, install the Lexmount Browser Bundle into the DSH Web profile.
corepack install --global pnpm@11.22.0
corepack enable pnpm
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web add @lexmount/dsh-browser@nextnpx --yes @deepseek-ai/dsh@0.1.0-rc.6 webA new Bundle is not hot-loaded. If DSH Web is running, stop it with Ctrl+C in its original terminal, run the start command above, then copy the task prompt.
Mandatory prerequisite: Use only the native Lexmount tools already loaded in the current DSH process. Call lexmount_doctor before any browser action. If it is unavailable, stop with SETUP_REQUIRED and tell the user to complete the Lexmount Browser Bundle setup for this template, restart DSH Web, and resend this prompt. If credentials are missing, call lexmount_auth_login, wait for browser authorization, and run doctor again. Continue only when doctor reports ready.
Task: Measure the reveal latency on Selenium's official dynamic test page:
https://www.selenium.dev/selenium/web/dynamic.html
After "Reveal a new input" is activated, #revealed must become visible within 500 milliseconds. An elapsed time greater than 500 milliseconds reproduces the SLA violation.
Compare the deployed behavior with this official source:
https://raw.githubusercontent.com/SeleniumHQ/selenium/trunk/common/src/web/dynamic.html
Flow:
1. Create artifacts/dsh-dynamic-ui-triage in the working directory. If it already exists, append a UTC timestamp instead of overwriting it.
2. Create exactly one temporary normal-mode Session with Recording enabled.
3. Open the test page and use lexmount_browser_snapshot to verify that #reveal exists and #revealed is initially hidden. Save the result to evidence/01-before.json.
4. Before clicking, use lexmount_browser_evaluate to install a timing probe based on performance.now() and MutationObserver.
5. Click #reveal, collect the elapsed time with a bounded evaluate call, and save the measurement to evidence/02-timing.json.
6. Use another snapshot to verify that #revealed is visible and save the result to evidence/03-after.json.
7. Extract the smallest deployed script fragment containing reveal() and setTimeout, and save it to evidence/04-deployed-source.txt.
8. Open the official raw source, locate the corresponding function, and save it to evidence/05-reference-source.txt.
9. Write report.md and report.json, separating browser facts, deployed-source facts, reference-source facts, workspace facts, hypotheses, recommendations, Recording information, and cleanup.
10. Close the temporary Session and retain its Recording.
Execution: The current DeepSeek model does not accept image input. Do not call screenshot tools or any tool that returns image content, and do not generate image files. Use only text, DOM, evaluate results, Recording metadata, and text or JSON files as evidence. Do not use a fixed sleep. Treat the Recording as human replay evidence only.
Inspect the current workspace Git remote read-only. Record workspace facts only when the workspace clearly belongs to SeleniumHQ/selenium and the relevant source file exists. Otherwise mark the workspace relationship as unrelated or unknown and do not scan unrelated code.
Set the result to REPRODUCED only when elapsed_ms is finite and greater than 500. Set it to NOT_REPRODUCED when elapsed_ms is finite and less than or equal to 500. If a valid measurement cannot be obtained, report failure without inventing a result. Do not describe the test page's intentional delay as an unknown production incident.
Acceptance: Doctor must report ready, exactly one Session must be created, Recording must be enabled, no image-producing tool may be called, all five evidence files must exist and be non-empty, all JSON files must parse successfully, report.md and report.json must exist, every fact must have an evidence category, the Session must be closed, and the Recording must be retained. Return PARTIAL_SUCCESS if cleanup fails.
Cleanup: On success, failure, timeout, or cancellation, close only the Session created by this task. Do not close pre-existing Sessions, delete the Recording, modify source code, submit forms, publish content, delete remote data, or perform irreversible actions.
Return: Report only the status, result, elapsed_ms, SLA threshold, first failed step, report directory, text evidence file count, Recording retention, cleanup result, and sanitized error summary. Do not expose API keys, Project IDs, Session IDs, Recording IDs, connection URLs, OAuth details, or credentials.