# DSH Visual Acceptance: First Usable Slice Acceptance > Date: 2026-08-26 > Historical first-slice version: `0.1.0-alpha.1` > Closed-loop Beta: `0.1.1-closed-loop-beta` / distributable package `0.1.1-beta.1` > Conclusion: the first usable slice and the fixture closed loop passed their stated checks. This is not a claim that full V0.1 is delivered. > This public English companion intentionally omits local screenshot, artifact, workspace, and session-log paths. The Chinese source [first-slice-acceptance.md](first-slice-acceptance.md) preserves the complete internal test record; neither document publishes local artifacts. ## 1. Object under acceptance - DeepSeek Harness Web `0.1.1-rc.2`, installed through the `web` Profile with local link/Bundle enabled. - A non-empty dedicated session in the current project workspace. - A local `127.0.0.1` fixture, Chrome `151.0.7922.174`, and desktop/narrow checkpoints. - Additional read-only trial: two local user projects, each served on localhost; their source files were not modified. ## 2. Verified facts | Scope | Observed result | |---|---| | Client lifecycle | The **Visual Acceptance** tab mounted in a real non-empty DSH Web session. | | Workspace boundary | The Host resolved workspace from `sessionId`; malformed remote/protocol-relative/backslash/out-of-workspace HTML targets were rejected in unit tests. | | Matrix | The UI supported 1–8 manual Checkpoints, desktop/narrow coverage, and Quick-mode coverage summaries. | | Browser facts | Fixture desktop `1280×800` and narrow `390×844` Checkpoints reached their declared Ready conditions. | | State reproduction | Declared `default/light` and `empty/dark` values, page observation, and state-specific Ready conditions aligned. | | Evidence | Checkpoint PNGs passed non-zero format/dimension checks and were written locally. | | Signal semantics | A missing fixture font emitted browser signals that could expand to raw evidence; no formal Issue was auto-created. | | Overflow | The tested target had `0px` horizontal overflow at both viewports. | | Storage | Run/screenshot directories used `0700`; manifest/PNG used `0600`. | | Cancel and concurrency | A cancelled Ready wait persisted `cancelled`; a second active Run received `409 Conflict` and did not launch another Chrome. | | Client layout | 1440px and 390px views had no horizontal overflow; at 390px, the result view took over after submit. | | Close and cleanup | A standalone DSH process emitted `host disposed`; cancellation left no acceptance Chrome process. | | Quick UX | Target plus desktop/narrow/light generated two explicit Checkpoints and screenshots; coverage changed live for 1/2/4 combinations. | | Custom UX | Quick values became editable Checkpoints; edited paths and coverage persisted across Quick/custom navigation. | | First-use path | An empty Target described object → coverage → evidence rather than silently substituting a fixture target. | | Narrow primary action | At 390px, the Run action remained visible and center hit-tested itself rather than the DSH composer. | ## 3. First-principles and adversarial findings The first workbench naturally expanded inside a DSH host scroll container that preserved previous conversation scroll position. A successfully registered Slot could therefore open out of sight. The correction uses session visible height, independently scrolls configuration/results, and reserves composer space; the outer container returns to the workbench header and the layout becomes one column at 390px. Adversarial review also led to an in-origin path fence, interruptible CDP waiting, asynchronous cleanup, private screenshot permissions, and a requirement for a distinct non-default-state Ready condition. A session-log issue was observed when two DSH processes read/write the same active Profile concurrently; no session-log repair was attempted. Formal testing subsequently uses one stable session/process. The design is not valuable merely because it displays a checklist. Its defensible value is a replayable Matrix, workspace evidence, Host fences, lifecycle control, and—after the Beta—the human Issue/Decision/retest loop. A CLI plus JSON may remain sufficient for users who only read one report; continued session UI value depends on repeated decision and second-Run use. ## 4. Closed-loop Beta acceptance | Scope | Observed result | |---|---| | Candidate boundary | Two font signals became Finding Candidates only, not auto-created Issues. | | Formal Issue | A human explicitly promoted the narrow Candidate to an Issue and added impact/suggestion. | | Decision history | `approved-fix` was appended as a human event and survived DSH restart. | | Change package | A private Markdown/JSON package was generated and copied; the UI explicitly stated it had not been sent to an Agent. | | Original-Matrix Retest | Retest Matrix fingerprint matched the baseline and the Client did not offer Matrix editing. | | Retest relation | Desktop signal appeared as `new-candidate`; the formal narrow Issue appeared as `still-detected`. | | Human confirmation | **Confirm still detected** wrote `unresolved` and retained the original `approved-fix` Decision. | | Project storage | `schema.json`, `project.json`, `issues.json`, and change packages retained the private permission policy. | | Close/restart | After fixing a race, a single DSH process restarted and the old Host emitted `disposed`. | | 390px | Document and plugin horizontal overflow measured `0`; Retest controls remained reachable. | | Plugin console | No plugin warning/error was observed. Host connection warnings during restart were not attributed to the plugin. | The core closed loop had 27 passing automated tests at this evidence point, covering Candidate boundaries, stable identity, private storage, same-process append-only Decisions, package permissions/redaction, immutable Matrix, six retest relations, and safety cases including `unreached`, failed/cancelled runs, Matrix change, missing rules, manual Issue, and uncertain relation. Cross-DSH-process concurrent write is intentionally unsupported. ## 5. Read-only local-project partial trial Two user-supplied local projects were served over localhost. Each default/light page was checked at desktop and narrow viewports. No source file changed and no Candidate became an Issue automatically. | Project | Matrix | Result | |---|---|---| | Local project A | desktop + narrow, default/light | 2/2 Ready reached; 0 console, request/HTTP, or horizontal-overflow signals. | | Local project B | desktop + narrow, default/light | 2/2 Ready reached; 0 console, request/HTTP, or horizontal-overflow signals. | | Local project B empty declaration | narrow, empty/light | `unreached`; Candidate created; no Issue created. | Human screenshot review did not find a clear enough basis for a manual visual Issue within this trial. This applies only to the declared default state, two viewports, and the test machine. It is not visual approval, business-completeness coverage, or complete-state acceptance. The five-project Gate is therefore still open: at least five independent real projects, at least three human-approved actual changes followed by original-Matrix Retest, and **zero false automatic `resolved`** outcomes. ## 6. Still unverified - A real changed-project case resulting in `possibly-resolved`; automated tests only verify that it cannot automatically write `resolved`. - Manual visual Issue, merge, and split in real DSH user operation; UI/API and storage behavior are automated-test covered. - DSH Desktop shell light/dark, close/reopen, and the next DSH release. - Origin and safe cleanup of one older Chrome temporary profile observed before this test. - Provider execution, OCR, Pixel Diff, reference-image comparison, and automatic Agent session injection. - The five-real-project pilot Gate described above. ## 10. `0.1.2-responsive-acceptance` focused acceptance > Date: 2026-08-27. Automated tests are E2; the local Chrome focused Spike and linked-source DSH Web session exercise are E3. | Capability | Observed result | Claim boundary | |---|---|---| | Coverage plans | Quick has two immutable Checkpoints; Standard has eight; Custom remains one to eight | CSS viewports, not real devices | | Breakpoint discovery | Fixture `640px / 900px` found with `complete` coverage | Unreadable cross-origin stylesheets return `partial` | | Basic quality facts | Viewport Meta and `html[lang]` observed correctly | Rule signals, not WCAG auditing | | Screenshot content | Nonblank evidence passed; blank-like capture retries once | No aesthetic or product correctness claim | | Retest Diff | Same-size Baseline/Current produced 7,881 changed pixels and a Diff PNG | Candidate only; no automatic Issue or resolution | | State replay | `fill → click → assert-ready` completed with `action-assert-ready` | No arbitrary JavaScript; credentials are forbidden | | Action evidence | `valueProvided: true` is recorded without echoing the value | Local Matrix storage can still contain values, so secrets remain prohibited | | Cleanup | Breakpoint-discovery and Run Chrome instances join Host cleanup; restart showed Host `disposed → ready` | DSH Desktop and future DSH versions remain unverified | `npm test` passed 33 tests; `npm run spike:browser` passed; all seven checks in `npm run spike:responsive` passed on Chrome `151.0.7922.174`, including the guard that an intentionally far-parked keyboard skip link must not be misclassified as horizontal overflow. Local evidence is stored in `artifacts/spikes/responsive/evidence.json` and is not a public real-project case. ### 10.1 DSH Web session exercise - Standard Run `run-20260827050918-e27c8a3b`: eight of eight Checkpoints reached across six layout viewports and two theme anchors, with zero abnormal signals and a complete Contact Sheet. - Original-Matrix Retest `run-20260827050947-3528fc99`: eight of eight reached; all eight Baseline / Current / Diff groups were visible at `0 px / 0.000%`; no Issue, relation, or automatic `resolved` was added. - Custom-state Run `run-20260827051217-0614358f`: localhost `fill → click → assert-ready` reached one of one; public action evidence recorded only `valueProvided: true`. The fixture's intentionally missing font remained a Candidate. - Page-breakpoint mode completely read fixture breakpoints `640px / 900px` and generated four probes; Quick and Custom configuration paths were also checked. - At 390×844, the DSH page had `scrollWidth = 390`; all four coverage-plan controls were visible in a 2×2 layout. - An initial Standard Run misclassified a keyboard skip link parked at `left: -9999px`. After the rule correction, the rerun had zero signals and the case became a focused regression check. The initial Run is not passing evidence. - Console history contained DSH restart retries, another sidebar plugin, and browser-extension messages; no error attributed to this plugin was observed. This is linked-source installation evidence on local DSH Web `0.1.1-rc.2`. GitHub `v0.1.2-beta.1` is a Pre-release for installation and usage feedback, not stable or marketplace acceptance. Adversarial conclusion: more sizes alone are not differentiation. Versioned coverage, explicit completeness, same-Matrix Diff, controlled state replay, and human decisions form the reusable acceptance asset. A GitHub Pre-release is appropriate for real-use learning, while the stable/marketplace Gate remains unchanged: five real projects, at least three actual changes with original-Matrix Retest, and zero false `resolved` outcomes.