# DO-008 — UndoToast wiring gap (Phase 8 audit finding)

**Date:** 2026-06-29
**Status:** Locally binding via OSCR-

---

## Decision

The `UndoToast` component (in `app/src/ux/`) **exists** but is **not wired** to any save flow. This is a Phase 8 audit finding (per `AUDIT-PLAN-2026-06-28.md` §IX.3 and `AUDIT-PLAN-v2-2026-06-29.md` §XI).

## The gap

- `UndoToast` is exported from `app/src/ux/UndoToast.tsx`
- Per UX-1.1 invariant: `exports EmptyState, CompletenessMeter, UndoToast, HelpTooltip, PlainLanguageLabel, StandardsLibrary`
- Per audit: `UndoToast exists in UX but is not wired`

## Resolution path

To close the gap (Phase B2 deliverable):
1. Wire UndoToast into Blog editor's save flow (most visible)
2. Wire into Notes editor's save flow
3. Wire into Reports editor's save flow
4. Wire into Surveys editor's save flow
5. Add App-VP test: `vp/ux.test.ts UX-5.1: UndoToast wired into at least one save flow`

## Effect on invariant

Before: `UX-1.1` declared UndoToast was exported. Audit found it was unused.
After: `UX-5.1` (new) declares UndoToast is wired. Gap closed.

## Until resolved

`CompletenessMeter` is also unwired (similar gap). Both are tracked as Phase B2 deliverables.

## Cross-references

- `app/src/ux/UndoToast.tsx` (exists, unwired)
- `app/src/ux/CompletenessMeter.tsx` (exists, unwired)
- `pact/codex/ux.codex.md` (will be updated)
- `pact/platform/anti-drift.md` Rule 3 (No invention — do not add UndoToast where user didn't ask)

