feat: extract review-workspace slice into @citation-evidence/work (CWORK-WP-0001)
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s

Establishes citation-work as the standalone home of the review workspace,
migrated out of the citation-evidence umbrella app.

- Package/tooling scaffold: package.json, tsconfig, vite/vitest/eslint configs
  with eslint-plugin-boundaries enforcing engine/anchor/source-only imports
- Providers/hooks: EngineProvider, SessionProvider + use* hooks (T02)
- Panes: CollectionList, ViewerShell, EvidenceSidebar (T03/T04/T05)
- Capture/edit: InlineCaptureForm, EvidenceFormBody; UploadDropzone owned here
- ReviewShell: repo-owned three-pane layout with an upload slot seam
- Tests: CollectionList, InlineCaptureForm capture flow, EvidenceSidebar
  export/edit/activation (11 tests, all green)
- Anchor consumed as @citation-evidence/evidence-anchor package; @source kept
  on the umbrella facade for its local viewer-url policy
- Docs (README/SCOPE) refreshed; deferred gaps recorded

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-07-09 01:49:28 +02:00
parent c51ef94812
commit 0cd2ca5d04
30 changed files with 7958 additions and 342 deletions

18
src/work/README.md Normal file
View file

@ -0,0 +1,18 @@
# `src/work/` — review workspace package surface
This directory is the extracted home of the review workflow UI:
collection pane, viewer shell, evidence sidebar, and annotation capture flow.
It is published as the `@citation-evidence/work` package (barrel: `index.ts`)
and consumed by the `citation-evidence` umbrella app's review mode.
Extraction completed under `CWORK-WP-0001`; the umbrella app no longer carries a
local `src/work/` copy.
Imports from `work/` may depend on:
- `@shared/*`, `@engine/*` (from `@citation-evidence/engine`)
- `@citation-evidence/evidence-anchor`
- `@source/*` (PDF ingestion + local `viewer-url` policy)
They may not import from binder- or umbrella-app-owned code. These edges are
enforced by `eslint-plugin-boundaries`.