# Step 2: ui-progress-resume

## Read First
- /AGENTS.md
- /PLAN.md
- /PROGRESS.md
- /docs/HARNESS.md
- /docs/IMPLEMENTATION_PLAN.md
- /docs/UI_GUIDE.md
- /phases/9-pyqt-thin-client/step1.md

## Task
Connect UI progress, cancellation, error summary, log opening, and resume controls to the core API.

The UI should show chunk success/failure and respect CUDA/auto runtime semantics.

## Sprint Contract
- Done means: UI can display progress events and expose resume behavior without corrupting generated Markdown.
- Hard thresholds: explicit CUDA failures are shown clearly; auto fallback warnings are visible; cancellation does not leave inconsistent runtime state.
- Files owned: UI modules, tests/manual verification notes, `PROGRESS.md`, phase index.
- Dependencies: PyQt shell and core runtime events.

## Acceptance Criteria
```powershell
python scripts\validate_workspace.py
```

## Verification
1. Run the acceptance command.
2. Record UI smoke test steps and screenshots only if the user asks for them.
3. Update `PROGRESS.md` and this phase index.

## Do Not
- Do not write logs into Markdown content.
- Do not silently fallback from explicit CUDA to CPU.
- Do not implement a separate UI-only resume system.
