--- id: EANCH-WP-0004 type: workplan title: "Wire HtmlViewerAdapter into the review workspace viewer shell" domain: infotech repo: evidence-anchor status: finished owner: codex topic_slug: citation_evidence_mvp created: "2026-07-09" updated: "2026-07-09" spec_refs: - INTENT.md - SCOPE.md - ../citation-evidence/wiki/SharedContracts.md - src/dom/html-viewer-adapter.tsx state_hub_workstream_id: "e0f10f55-55f2-4fa5-abec-d3d175889e09" --- # EANCH-WP-0004 — Viewer Shell DOM Wiring ## Goal Connect `HtmlViewerAdapter` (`evidence-anchor/dom`) to the citation-evidence review workspace so users can upload, view, select, annotate, and reopen HTML/Markdown documents — not only PDFs. ## Task Breakdown ## T01 — Browser upload path for HTML/Markdown ```task id: EANCH-WP-0004-T01 status: done priority: high state_hub_task_id: "aaef0a90-fa94-4a23-9607-a336294033cd" ``` Add `ingestHtmlFromFile` / `ingestMarkdownFromFile` and `resolveDomViewerHtml` to `evidence-source/browser`, extending the byte store to hold non-PDF bytes. ## T02 — Upload dropzone accepts HTML/Markdown ```task id: EANCH-WP-0004-T02 status: done priority: high depends_on: [T01] state_hub_task_id: "5dae1ce1-c184-4d60-b649-f301968a6cf7" ``` Extend `citation-work` `UploadDropzone` to ingest `.html` / `.md` files via the new browser helpers. ## T03 — ViewerShell routes by representation type ```task id: EANCH-WP-0004-T03 status: done priority: high depends_on: [T02] state_hub_task_id: "0e2148d5-8ea8-4a7b-9436-9c85b9162d88" ``` Branch `ViewerShell` on `representationType`: PDF → `PdfViewerAdapter`, `html-dom` / `markdown-rendered` → `HtmlViewerAdapter`. Widen `PendingSelection` to `SelectionCapture`. ## T04 — HtmlViewerAdapter scroll parity ```task id: EANCH-WP-0004-T04 status: done priority: medium depends_on: [T03] state_hub_task_id: "d27f4c58-8276-4099-855f-8863a556fd4c" ``` Add `scrollRequestKey` to `HtmlViewerAdapter` so repeat-click re-scroll works like the PDF adapter. ## T05 — Verification + close-out ```task id: EANCH-WP-0004-T05 status: done priority: high depends_on: [T04] state_hub_task_id: "ba99b5c0-ca2e-4370-b9b6-48818a8c797e" ``` Tests green in `evidence-source`, `evidence-anchor`, `citation-work`, and `citation-evidence`; `fix-consistency` clean; progress note. **Verification (2026-07-09):** - `evidence-source`: 82 tests (browser view-html + upload). - `evidence-anchor`: 42 tests; `HtmlViewerAdapter` scroll parity. - `citation-work`: 12 tests including `ViewerShell.dom.test.tsx`. - `citation-evidence`: typecheck clean.