# V3 DSAR V1 Pipeline

This is the release evidence for `V3/V3_TODOS.md` §68: V3 DSAR data is packaged
through the existing V1 admin DSAR review pipeline with full coverage.

## Coverage

`buildV3SessionDsarExport` in `libs/v3/lilith-identity-bridge/src/index.ts`
requires a non-empty section for every durable V3 DSAR category before it emits
a V1 `generate_export_package` review action:

- `v3_avatar_history`
- `v3_voice_transcripts`
- `v3_attendance`
- `v3_signed_edition_holdings`
- `v3_recordings`
- `v3_pixel_streaming_sessions`
- `v3_consent_decisions`
- `v3_ticket_refund_credit_ledger`

The companion `buildV3SessionDsarV1PipelineCoverageReport` confirms that the
manifest, V1 review action, package category set, file count, and audit event
all agree before the gate is treated as passing.

## V1 Pipeline

The V1 admin privacy contract accepts the same category set in
`libs/contracts/src/common/admin-privacy.ts`. The seeded V1 admin request
`prv-dsar-eu-verify-03` in `apps/oshun/bff/src/admin/state.ts` carries all V3
categories, and `apps/oshun/admin/e2e/privacy-dsar-end-to-end.spec.ts` verifies
that the admin review panel generates an export package whose
`data-package-categories` attribute includes the complete V3 category list.

## Negative Control

The identity-bridge test
`refuses V3 DSAR packages that omit any required session-data section` removes a
V3 recording section and expects `missing-v3-session-data`. This prevents
incomplete V3 packages from reaching the V1 admin DSAR pipeline.

## Gate

Run `pnpm verify:v3 dsar-v1-pipeline`:

```bash
pnpm verify:v3 dsar-v1-pipeline
```

The verifier checks this document, the JSON evidence file, the V1 contract, the
BFF fixture, the admin parser and Playwright spec, the identity-bridge runtime
coverage report, the analytics manifest `v3-dsar-v1-pipeline.v1`, and the §68
checklist entry.
