Skip to content

v1.33.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 00:57
· 23 commits to main since this release
e7b3f79

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 import creates 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 export writes 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 --profile line that
    restores the overlap, instead of advice that cannot be followed.
  • dg import reports 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