--- 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: "9023bbea-1b0c-5081-b5fa-75a94d35d8d2" --- # 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: "cb4947c4-8133-5623-bbe8-35fef866ae5b" ``` 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: "da068036-f841-5037-a579-37efd54a1f50" ``` 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: "ea32ec63-fbf8-5191-a8ad-c1b3b4d73657" ``` 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: "bc46eb8c-cdb7-5314-ac0e-58b4307a3085" ``` 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: "4f675571-2bb1-580f-a302-96acbf936241" ``` 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.