rehearsal 2026-10-20: 44 more screenshots off the browser container, gallery rebuilt; A4 browser spike result
gates / gates (push) Successful in 12m48s

This commit is contained in:
2026-10-20 23:16:20 +02:00
parent 0d4bfe7ca6
commit 16188df64c
46 changed files with 113 additions and 0 deletions
@@ -0,0 +1,36 @@
# A4 — the browser spike: a real browser for the household, with no browser on DooPlex (2026-10-20)
**Result: it works. Ready in ~12 minutes (09:39 → 09:51 UTC), well inside the 90-minute box.** Used for the rest of the run.
## What was built
- A throwaway LXC **9330 `rehearsal1020-browser`** on demo-hp (Tier 0): Debian 13, 2 cores, 4 GB, 24 GB on nvme-scratch.
- **Chromium 155.0.8059.79** (the Debian package) driven by **Playwright 1.52.0** (Python, `/opt/pw`).
- Two sizes: **phone 390×844** (scale 2, touch, an Android user agent) and **computer 1366×768**; two languages:
**hu-HU** and **en-US** (locale + `Accept-Language`), time zone Europe/Budapest.
- Tools (all in `../tools/`): `ui.py` (a JSON list of steps: go, click, fill from a secret, select, wait, screenshot),
`brun.sh` (run a command in the LXC; secrets travel on stdin through `envrun.py`, never on a command line),
`brpull.sh` (copy the screenshots off the LXC), `gallery.py` (builds `../screens/README.md`).
## What it was used for
The download page (B1), the bind page and its wrong tries (B2), the claim, the recovery-code ceremony, the family card,
every app's own install page (B3), Actual Budget's own import dialog (B4 — the one app with no usable API), the walk of
the dashboard on phone and computer (B4), the second drive (B6 #13), the English pass of 15 pages (B6 #16).
121 screenshots in `../screens/`.
## Limits — what this is NOT
- **The household's address has no DNS** (`tester4.test` is a reserved name): the LXC maps the box's names to its LAN
address in `/etc/hosts`, and TLS is not verified. A real household reaches the box through its own domain and a
real certificate; that leg is not covered.
- **Not a human click-through.** Playwright presses the same buttons and reads the same pages, but it does not get lost,
misread or give up. The stuck points (`../B10-stuck/`) are a reading of what a person would do, not a measurement.
- **Screenshots blank every text and password field for the photo** (and put the values back before any submit —
the 12:22 slip, when they did not, sent an empty Nextcloud form). Codes shown as text on a page were never
photographed. Before a commit, the pages that hold a password or a key (app settings, share password, security,
remote backup) were opened and looked at: they show only dots or blanks.
## Teardown
The LXC is removed in Part D with the rest (`../D-teardown/`).
@@ -76,6 +76,24 @@ Phone = 390×844, computer = 1366×768 (Chromium 155 + Playwright 1.52.0 in a th
| `b3-drives-5-init-confirm` | — | — | <img src="b3-apps/b3-drives-5-init-confirm-desktop-hu.png" width="260"> | — |
| `b3-family-1-security` | <img src="b3-apps/b3-family-1-security-phone-hu.png" width="140"> | — | — | — |
## b4-actual
| screen | phone HU | phone EN | computer HU | computer EN |
|---|---|---|---|---|
| `b4-actual-1-first-open` | — | — | <img src="b4-actual/b4-actual-1-first-open-desktop-hu.png" width="260"> | — |
| `b4-actual-2-now` | — | — | <img src="b4-actual/b4-actual-2-now-desktop-hu.png" width="260"> | — |
| `b4-actual-3-signed-in` | — | — | <img src="b4-actual/b4-actual-3-signed-in-desktop-hu.png" width="260"> | — |
| `b4-actual-4-budget` | — | — | <img src="b4-actual/b4-actual-4-budget-desktop-hu.png" width="260"> | — |
| `b4-actual-5-account-dialog` | — | — | <img src="b4-actual/b4-actual-5-account-dialog-desktop-hu.png" width="260"> | — |
| `b4-actual-6-account` | — | — | <img src="b4-actual/b4-actual-6-account-desktop-hu.png" width="260"> | — |
| `b4-actual-7-import-dialog` | — | — | <img src="b4-actual/b4-actual-7-import-dialog-desktop-hu.png" width="260"> | — |
| `b4-actual-8-after-import` | — | — | <img src="b4-actual/b4-actual-8-after-import-desktop-hu.png" width="260"> | — |
| `b4-actual-9-imported` | — | — | <img src="b4-actual/b4-actual-9-imported-desktop-hu.png" width="260"> | — |
| `b4-vault-1-signup` | — | — | <img src="b4-actual/b4-vault-1-signup-desktop-hu.png" width="260"> | — |
| `b4-vault-2-after-continue` | — | — | <img src="b4-actual/b4-vault-2-after-continue-desktop-hu.png" width="260"> | — |
| `b4-vault-3-master-filled` | — | — | <img src="b4-actual/b4-vault-3-master-filled-desktop-hu.png" width="260"> | — |
| `b4-vault-4-after-create` | — | — | <img src="b4-actual/b4-vault-4-after-create-desktop-hu.png" width="260"> | — |
## b4-immich
| screen | phone HU | phone EN | computer HU | computer EN |
@@ -86,6 +104,65 @@ Phone = 390×844, computer = 1366×768 (Chromium 155 + Playwright 1.52.0 in a th
| `b4-immich-3-signup-filled` | — | — | <img src="b4-immich/b4-immich-3-signup-filled-desktop-hu.png" width="260"> | — |
| `b4-immich-4-after-signup` | — | — | <img src="b4-immich/b4-immich-4-after-signup-desktop-hu.png" width="260"> | — |
## b4-share
| screen | phone HU | phone EN | computer HU | computer EN |
|---|---|---|---|---|
| `b4-share-1-sharing` | — | — | <img src="b4-share/b4-share-1-sharing-desktop-hu.png" width="260"> | — |
| `b4-share-2-after-setup` | — | — | <img src="b4-share/b4-share-2-after-setup-desktop-hu.png" width="260"> | — |
| `b4-share-3-enable-ticked` | — | — | <img src="b4-share/b4-share-3-enable-ticked-desktop-hu.png" width="260"> | — |
| `b4-share-4-after-enable` | — | — | <img src="b4-share/b4-share-4-after-enable-desktop-hu.png" width="260"> | — |
| `b4-share-5-after-password` | — | — | <img src="b4-share/b4-share-5-after-password-desktop-hu.png" width="260"> | — |
## b4-walk
| screen | phone HU | phone EN | computer HU | computer EN |
|---|---|---|---|---|
| `b4-walk-01-launcher` | <img src="b4-walk/b4-walk-01-launcher-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-01-launcher-desktop-hu.png" width="260"> | — |
| `b4-walk-02-dashboard` | <img src="b4-walk/b4-walk-02-dashboard-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-02-dashboard-desktop-hu.png" width="260"> | — |
| `b4-walk-10-immich-page` | <img src="b4-walk/b4-walk-10-immich-page-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-10-immich-page-desktop-hu.png" width="260"> | — |
| `b4-walk-10-paperless-ngx-page` | <img src="b4-walk/b4-walk-10-paperless-ngx-page-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-10-paperless-ngx-page-desktop-hu.png" width="260"> | — |
| `b4-walk-10-vaultwarden-page` | <img src="b4-walk/b4-walk-10-vaultwarden-page-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-10-vaultwarden-page-desktop-hu.png" width="260"> | — |
| `b4-walk-11-immich-utmutato` | <img src="b4-walk/b4-walk-11-immich-utmutato-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-11-immich-utmutato-desktop-hu.png" width="260"> | — |
| `b4-walk-11-paperless-ngx-utmutato` | <img src="b4-walk/b4-walk-11-paperless-ngx-utmutato-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-11-paperless-ngx-utmutato-desktop-hu.png" width="260"> | — |
| `b4-walk-11-vaultwarden-utmutato` | <img src="b4-walk/b4-walk-11-vaultwarden-utmutato-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-11-vaultwarden-utmutato-desktop-hu.png" width="260"> | — |
| `b4-walk-20-backups` | <img src="b4-walk/b4-walk-20-backups-phone-hu.png" width="140"> | — | <img src="b4-walk/b4-walk-20-backups-desktop-hu.png" width="260"> | — |
## b6-s13
| screen | phone HU | phone EN | computer HU | computer EN |
|---|---|---|---|---|
| `b6-s13-1-init-list` | — | — | <img src="b6-s13/b6-s13-1-init-list-desktop-hu.png" width="260"> | — |
| `b6-s13-2-init-done` | — | — | <img src="b6-s13/b6-s13-2-init-done-desktop-hu.png" width="260"> | — |
| `b6-s13-3-backups-offer` | — | — | <img src="b6-s13/b6-s13-3-backups-offer-desktop-hu.png" width="260"> | — |
## b6-s16-en
| screen | phone HU | phone EN | computer HU | computer EN |
|---|---|---|---|---|
| `b6-s16-en-00_` | — | — | — | <img src="b6-s16-en/b6-s16-en-00_-desktop-en.png" width="260"> |
| `b6-s16-en-01_dashboard` | — | — | — | <img src="b6-s16-en/b6-s16-en-01_dashboard-desktop-en.png" width="260"> |
| `b6-s16-en-02_apps` | — | — | — | <img src="b6-s16-en/b6-s16-en-02_apps-desktop-en.png" width="260"> |
| `b6-s16-en-03_apps_immich` | — | — | — | <img src="b6-s16-en/b6-s16-en-03_apps_immich-desktop-en.png" width="260"> |
| `b6-s16-en-04_apps_paperless-ngx` | — | — | — | <img src="b6-s16-en/b6-s16-en-04_apps_paperless-ngx-desktop-en.png" width="260"> |
| `b6-s16-en-05_storage` | — | — | — | <img src="b6-s16-en/b6-s16-en-05_storage-desktop-en.png" width="260"> |
| `b6-s16-en-06_backups` | — | — | — | <img src="b6-s16-en/b6-s16-en-06_backups-desktop-en.png" width="260"> |
| `b6-s16-en-07_backups_apps` | — | — | — | <img src="b6-s16-en/b6-s16-en-07_backups_apps-desktop-en.png" width="260"> |
| `b6-s16-en-08_backups_remote` | — | — | — | <img src="b6-s16-en/b6-s16-en-08_backups_remote-desktop-en.png" width="260"> |
| `b6-s16-en-09_backups_restore` | — | — | — | <img src="b6-s16-en/b6-s16-en-09_backups_restore-desktop-en.png" width="260"> |
| `b6-s16-en-10_sharing` | — | — | — | <img src="b6-s16-en/b6-s16-en-10_sharing-desktop-en.png" width="260"> |
| `b6-s16-en-11_settings_security` | — | — | — | <img src="b6-s16-en/b6-s16-en-11_settings_security-desktop-en.png" width="260"> |
| `b6-s16-en-12_settings_notifications` | — | — | — | <img src="b6-s16-en/b6-s16-en-12_settings_notifications-desktop-en.png" width="260"> |
| `b6-s16-en-13_monitoring` | — | — | — | <img src="b6-s16-en/b6-s16-en-13_monitoring-desktop-en.png" width="260"> |
| `b6-s16-en-14_system` | — | — | — | <img src="b6-s16-en/b6-s16-en-14_system-desktop-en.png" width="260"> |
## b6-s5
| screen | phone HU | phone EN | computer HU | computer EN |
|---|---|---|---|---|
| `b6-s5-1-after-failed-run` | <img src="b6-s5/b6-s5-1-after-failed-run-phone-hu.png" width="140"> | — | — | — |
| `b6-s5-2-overview` | <img src="b6-s5/b6-s5-2-overview-phone-hu.png" width="140"> | — | — | — |
## install
**01-boot.png**
Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 KiB