Chrome extension (MV3, vanilla JS) that watches WhatsApp Web and votes on newly arriving polls in the currently open chat using 1-based index selection.
- Arms/disarms from popup UI.
- Input:
primaryIndex(required, integer >= 1)secondaryIndex(optional, integer >= 1)
- One-pass selection logic:
- Try primary index.
- Fallback to secondary index if primary missing.
- Skip if neither index exists.
- New-poll-only behavior after arm (historical content ignored).
- Single-attempt semantics per poll key (dedupe protection).
- Operates when WhatsApp tab is visible.
- Armed state persists across reload; indexes do not.
- Open Chrome and visit
chrome://extensions. - Enable Developer mode.
- Click Load unpacked and select this project folder.
- Open
https://web.whatsapp.com/. - Open extension popup, enter indexes, click Arm / Update.
- State: Armed/Disarmed (+ index required state).
- Result: Last outcome code (
primary_voted, etc.).- UI may show
armed_waiting_pollwhile armed and waiting for the first new poll.
- UI may show
- Latency: Last measured detect-to-click dispatch latency.
- Focus/Visibility: Current eligibility state.
- Detailed checklist:
docs/manual-smoke-test.md - Quick helper:
scripts/smoke-helper.sh