docs(migration): #144 — Mozilla profiles.ini, and why NOT to restore a snapshot
All checks were successful
Check / eval (push) Successful in 3m45s

A real migration (2026-07-16) lost ~/.thunderbird/profiles.ini, so
Thunderbird made an empty profile and opened it while 30 GB of mail —
19 GB ImapMail, 64 account prefs — sat in the directory it had stopped
looking at. The fix was eight lines.

MIGRATION.md already warned about this class for Chromium extensions.
The Mozilla case gets its own bullet because it is the inverse failure
and the inverse danger: Chromium silently deletes extension data and
looks minor; Thunderbird loses nothing and looks catastrophic — so the
reflex it provokes, restoring a snapshot over a good profile, is the one
thing that can actually cost you mail. The bullet therefore leads with
`ls`/`du` ("a multi-GB dir = your data is fine"), then gives the working
profiles.ini shape and the Path=/Default= semantics.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 11:41:28 +01:00
parent 207b6f3c64
commit 02ec0f10cd
3 changed files with 52 additions and 44 deletions

View File

@@ -198,50 +198,6 @@ scaled splash — the LUKS prompt especially, since a passphrase box half off
the panel is the failure that matters. Pass = docked boot + shutdown centred
on both heads; undocked unchanged.
### 144. MIGRATION.md must warn about Mozilla `profiles.ini` — it reads as total data loss
Bernardo 2026-07-16: "it seems that I have lost all my thunderbird accounts and
emails!" — nothing was lost. `~/.thunderbird/bernardo` was intact the whole
time: **30 GB**, 64 account/identity prefs, 19 GB `ImapMail` + 9.7 GB `Mail`,
last used 2026-06-26. Only `profiles.ini` was gone, so on first launch after the
migration Thunderbird did what it always does with no profile list — created an
empty one (`wc966grk.default`, 16 MB) and pointed itself at it. Fixed by
rewriting `profiles.ini` to `Path=bernardo` + `Default=1` (old file kept as
`profiles.ini.bak-*`); Thunderbird reopened the real profile and went straight
into its Duo login. **Total fix: one 8-line file.**
This is the **same class** MIGRATION.md's "Browser profiles" bullet already
covers — a file Home Manager used to manage disappears, and the app reads its
own absence as "first run" — but that bullet only names Chromium extensions.
The Mozilla case deserves its own warning precisely because it is *louder and
less dangerous*: Chromium silently deletes extension data (real loss, looks
minor); Thunderbird touches nothing and merely looks away from 30 GB (no loss,
looks catastrophic). A user who believes the second one will go restore a
snapshot over a perfectly good profile — the recovery is the risk here.
Firefox on this box shows the same fingerprint, unreported because he browses in
Chromium: `~/.mozilla/firefox/profiles.ini` (Jul 12) points at
`u9p8fdhh.default` (101 MB, created at migration), while
`profiles.ini.hm-bak` — Home Manager's own backup, dated **Jun 2025** — points
at `lfr4aapb.default` (129 MB, last used 2025-09-07), and a third profile
`default` (290 MB) was last used 2026-03-02. So the pattern is Mozilla-family,
not Thunderbird-specific. **Do not repoint Firefox without asking Bernardo**
u9p8fdhh has been in use since Jul 14 and merging profiles is his call.
**What to write** (docs only, no code): in MIGRATION.md's Phase-0/browser
section — before first launch of any Mozilla app, check that
`~/.thunderbird/profiles.ini` and `~/.mozilla/firefox/profiles.ini` exist and
name your real profile directory; if an app opens empty, **do not restore a
snapshot** — `ls ~/.thunderbird` first, and if a fat profile dir is sitting
there, it is a one-file fix. Include the working `profiles.ini` shape and the
`Name=`/`Path=`/`Default=1` semantics.
**Root cause is unproven and probably not worth chasing:** zero HM generations
survive on disk to show whether HM ever managed that file (the Firefox
`.hm-bak` proves it did there, in 2025), and the snapshot check needs sudo. The
warning is worth writing either way — it costs nothing and it is the difference
between a one-line fix and a restore that overwrites good data.
### 143. Rofi keeps the selected *row number* when the search changes, so the highlight lands on an unrelated entry
Bernardo 2026-07-16, and his repro is exact: open the app menu, type `ca`, move