Live verification of the browser-extension stopgap (merged in #30, closed #29). This is the one check that can't be automated — it needs a human on a warm support.mozilla.org session, because that warm session is exactly what passes the Fastly challenge that blocks the automated browser (#26).
Test day: 2026-07-01, both products, questions + answers. We already have committed CSVs for that day to diff against:
2026/questions-thunderbird-desktop-2026-07-01.csv
2026/answers-thunderbird-desktop-2026-07-01.csv
2026/questions-thunderbird-android-2026-07-01.csv
2026/answers-thunderbird-android-2026-07-01.csv
Setup
Load the extension — Chromium:
Load the extension — Firefox (128+):
Warm the session (critical):
Run the fetch (repeat in BOTH browsers)
For Thunderbird Desktop:
For Thunderbird Android:
Import + diff (from the repo root)
# Desktop — write to a temp dir so committed CSVs are never clobbered
uv run python import_json.py ~/Downloads/aaq-thunderbird-2026-07-01.json \
--questions-out /tmp/q-desktop.csv --answers-out /tmp/a-desktop.csv
diff /tmp/q-desktop.csv 2026/questions-thunderbird-desktop-2026-07-01.csv
diff /tmp/a-desktop.csv 2026/answers-thunderbird-desktop-2026-07-01.csv
# Android
uv run python import_json.py ~/Downloads/aaq-thunderbird-android-2026-07-01.json \
--questions-out /tmp/q-android.csv --answers-out /tmp/a-android.csv
diff /tmp/q-android.csv 2026/questions-thunderbird-android-2026-07-01.csv
diff /tmp/a-android.csv 2026/answers-thunderbird-android-2026-07-01.csv
Pass criteria
Note on diffs: the committed 2026-07-01 data is frozen at ~2026-07-09 (the scraper has been blocked since). A fetch today may legitimately include edits / new answers / solved-flips made after the freeze, so a non-empty diff isn't necessarily a bug. Sanity-check any diff: new/changed rows = real updates (fine); reordered columns, changed escaping, altered joins, or wrong sort order = a format bug (not fine — comment here). git log --follow 2026/questions-thunderbird-desktop-2026-07-01.csv shows when it last changed.
Troubleshooting
non-JSON response (Fastly challenge / block?) → session not warm. Reload support.mozilla.org, clear the challenge, retry.
HTTP 429 → rate-limited; wait the Retry-After window and retry (the extension does not auto-wait).
Open a support.mozilla.org tab first → the active tab isn't on support.mozilla.org.
See extension/README.md for background.
Live verification of the browser-extension stopgap (merged in #30, closed #29). This is the one check that can't be automated — it needs a human on a warm support.mozilla.org session, because that warm session is exactly what passes the Fastly challenge that blocks the automated browser (#26).
Test day: 2026-07-01, both products, questions + answers. We already have committed CSVs for that day to diff against:
2026/questions-thunderbird-desktop-2026-07-01.csv2026/answers-thunderbird-desktop-2026-07-01.csv2026/questions-thunderbird-android-2026-07-01.csv2026/answers-thunderbird-android-2026-07-01.csvSetup
main(the extension lives inextension/, importer isimport_json.py).uv sync(import_json.py imports the existing modules).Load the extension — Chromium:
chrome://extensions→ enable Developer mode → Load unpacked → pick theextension/folder.Load the extension — Firefox (128+):
about:debugging#/runtime/this-firefox→ Load Temporary Add-on… → pickextension/manifest.json. (Unloads on restart; just re-load.)Warm the session (critical):
https://support.mozilla.org/and browse a page or two so the Fastly challenge clears for your session. If you see a challenge/interstitial, wait it out before continuing.Run the fetch (repeat in BOTH browsers)
For Thunderbird Desktop:
aaq-thunderbird-2026-07-01.jsonto Downloads.Done: N questions, M answers. If it instead showsnon-JSON response (Fastly challenge / block?)orHTTP 429, the session wasn't warm / you're rate-limited — see Troubleshooting.For Thunderbird Android:
aaq-thunderbird-android-2026-07-01.json.Import + diff (from the repo root)
Pass criteria
diffs are empty or any differences are explainable as real data changes since the day was last scraped, not format bugs (see note).thunderbird→thunderbird-desktopfilename mapping are correct.Troubleshooting
non-JSON response (Fastly challenge / block?)→ session not warm. Reload support.mozilla.org, clear the challenge, retry.HTTP 429→ rate-limited; wait the Retry-After window and retry (the extension does not auto-wait).Open a support.mozilla.org tab first→ the active tab isn't on support.mozilla.org.See
extension/README.mdfor background.