v1.33.0
feat(import): create the profiles a bundle names, and carry their names
Moving Brave to a new machine failed at the last step. The bundle named
"Profile 5", the new machine had only "Default", and the refusal advised
creating the profile in Brave first — which cannot be done. Chromium names
profile directories from a counter it keeps itself, so on a fresh install
there is no sequence of actions that produces "Profile 5". An import now
creates the profiles the machine lacks, under their real names.
dg importcreates and registers a profile the bundle names and the
destination does not have, instead of refusing. A profile that already
exists is never renamed — an import restores state into it and leaves its
name alone.dg exportwrites a fourth file beside the bundle,
<name>.profiles.json, holding each profile's directory, display name and
avatar. Copy the whole folder to the new machine, not just the .tar.zst.
Profile names live in Local State, which the denylist forbids any bundle to
carry, so without this file every profile arrived as "Person 2".- The refusal that remains — an older bundle with no sidecar — now names what
the bundle holds, what the machine has, and the--profileline that
restores the overlap, instead of advice that cannot be followed. dg importreports any profile it created, rather than leaving it to be
discovered at next launch.
ADR-0046 records the design. The denylist is unchanged in both directions: no
export packs Local State and no bundle member restores to it. What is new is
that an import may merge three named fields into the destination's own
registry, having copied nothing from the source — a display name and an
avatar id, not a machine's encryption key. That write is backed up and rolled
back like every other path an import touches, and still refuses while Brave
is running.
Behavior changes: an import that used to refuse a missing profile now creates
it, when the bundle has a registry sidecar beside it. A bundle exported before
this release has no sidecar and still refuses, with the better message.
Full Changelog: v1.32.0...v1.33.0