# Record mode

Toggle **● Record** in the footer, do the flow manually, get the same step sequence as if the agent had driven it. While recording, the sub-toolbar lets you switch what the next click captures:

- **● Record** — record the click / fill / select as a Playwright step (default)
- **✓ Exists** — check the element appears: `expect(SEL).toBeVisible()`
- **¶ Says** — check the element's text matches: `expect(SEL).toHaveText("…")`
- **= Equals** — check an input / select / checkbox's current value

Check modes are one-shot — after the click commits the assertion, you snap back to Record. The same Save card downstream takes everything: actions and checks bake into the same `.spec.ts`. The downstream save path doesn't care whether the steps came from a human or from Claude.

## Starting URL is captured (v0.13)

When you press Record, Hover captures `window.location.href` as a synthetic `browser_navigate` step. That becomes the first `await page.goto(...)` in the saved spec, so Playwright opens the right page before replaying clicks.

Without this step, a fresh Playwright run started on `about:blank`, `getByRole(...)` resolved to nothing, and the first interaction timed out with `element(s) not found` — looked like a Hover bug, was really a missing initial `goto`. Agent-driven sessions never hit this because the agent calls `browser_navigate` itself; only manual Record needed the synthetic step.

## Reload before recording (v0.13, opt-in)

The replay always starts from a clean page load (because `page.goto` is the first step). But if you recorded from a page that already had accumulated state — logged-in, filled forms, todos already added — the replay can't reach that same starting state.

Open **Settings → Reload before recording** to flip on strict record/replay parity. When enabled:

1. Pressing **● Record** shows a `confirm()` dialog.
2. Click **OK** → the page reloads, the widget auto-resumes into recording mode after the reload, and you start from a fresh state.
3. Click **Cancel** → recording is aborted (you opted into the stricter mode; "no, don't reload" means "let me think," not "record anyway from dirty state").

Default is **off** because the common "I logged in, now record the post-login flow" case shouldn't force you to log in again. Flip it on when you want what the spec replays to exactly match what you recorded.
