100 lines
No EOL
2.5 KiB
Markdown
100 lines
No EOL
2.5 KiB
Markdown
---
|
|
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. |