Skip to content

Clarify hosted deletion edge-case copy - #543

Merged
TheSentinel454 merged 4 commits into
mainfrom
elrond/community-delete-copy-nits
Oct 2, 2026
Merged

TheSentinel454 merged 4 commits into
mainfrom
elrond/community-delete-copy-nits

Conversation

@TheSentinel454

@TheSentinel454 TheSentinel454 commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Follow-up to #403. This fixes the four non-blocking copy and layout items from the #403 review. Behavior is unchanged: nothing new is sent, stored or removed.

Changes

  • A full npub stays inside the deletion dialog. The in-dialog error <span> gets min-w-0 wrap-anywhere, so a long npub wraps instead of running past the dialog edge. The page notice already wraps through the global paragraph rule.
  • unauthorized copy. The old text assumed an expired session. The identity endpoint also returns this code when the account isn't authorized for Buzz identities. New text: "This Builderlab account can't manage Buzz identities right now. Try signing in again."
  • "Refresh and try again." → "Try again." When another context cleared the blocked slot while the dialog was open, pressing Start deletion again sends the request right away, so a Refresh isn't needed.
  • Same identity, different origin. When the saved request belongs to the current identity but a different backend_origin, the notice and the final-confirmation error used to ask the user to switch to the identity they are already using. Both now say the request was saved from a different app address on this device and point to support. The dialog shows that next step too, since the modal hides the page notice.

Tests

  • Vitest: updated the three unauthorized assertions. The "Try again." test now presses Start deletion again and asserts exactly one POST whose body equals the stored request. Added two cases for the same-owner, other-origin envelope: the page notice, and the error at final confirmation.
  • Browser (tests/browser/settings.spec.mjs): added one journey. It inserts a foreign owner's envelope while the dialog is open, then asserts that the dialog doesn't overflow horizontally, and that the page notice doesn't either after Cancel. The notice check only guards against regressions, because the global paragraph rule already wraps it. This needs a browser because jsdom has no layout, so a lower layer can't prove the text stays inside the dialog.

Validation at 61cb168f

  • Full Vitest 6,736/6,736 and hosted-communities 145/145. pnpm check, lint, format:check and git diff --check against f869df84 all pass.
  • tests/browser/settings.spec.mjs in Chromium passes 8/8 with one worker and no retries.
  • Red on base: with production files from f869df84 and these tests, exactly the 6 changed Vitest cases fail, and the new journey fails at the dialog containment assertion.
  • Mutation: removing only the alert's wrap classes makes the new journey fail in Chromium.
  • WebKit wasn't run locally because the test host is missing WebKit's system libraries. The hosted browser-journey shards pass on both Chromium and WebKit.

What got simpler

Nothing structural. The diff is copy and two utility classes, plus one ternary to separate the other-origin case. No new state or concepts.

Not covered

These are unchanged from #403: the live backend, the packaged native app, and a real two-tab race.

Elrond added 2 commits October 2, 2026 11:57
Contain a full npub inside the deletion dialog alert and blocked-owner
notice, explain unauthorized identity responses without assuming an
expired session, say "Try again." when a cleared slot can be retried
directly, and stop asking the same identity to switch to itself when a
pending request belongs to another origin.

Signed-off-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Signed-off-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
@TheSentinel454
TheSentinel454 marked this pull request as ready for review October 2, 2026 16:13
@TheSentinel454
TheSentinel454 requested review from a team, comp615 and wesbillman as code owners October 2, 2026 16:13
Elrond added 2 commits October 2, 2026 12:26
Name the other-origin case by what the code knows, give the dialog a
next step, pin that Start deletion sends after "Try again.", and drop
the notice wrap class and span check that guarded nothing.

Signed-off-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Signed-off-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No changes requested: this focused follow-up addresses the four #403 copy/layout nits without changing deletion admission or recovery behavior. Star Lord automated source review via Wes’s account, head 61cb168fff06be25ed7f3c3043972d0509adadbf against base f869df84ed24e3ca176e978c7476c0d0e088a44a. The added component cases cover both other-origin entry points and direct retry, and the browser case appropriately targets text containment. Source-only: no tests or app execution performed; the current-head CI/DCO snapshot passes, but live deletion, real cross-tab behavior, packaged-native support and human acceptance remain unverified.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

No blockers found; safe to approve this narrow copy/layout follow-up. Reviewed head 61cb168fff06be25ed7f3c3043972d0509adadbf against base f869df84ed24e3ca176e978c7476c0d0e088a44a.

The wording follows the existing owner/origin checks and direct-retry path. Deletion admission, persistence and recovery logic are unchanged. Component coverage checks retained recovery records, no unintended POST, and a single direct retry; the browser journey targets the actual overflow regression.

Validation: source review and clean git diff --check; existing current-head CI is green, including both JavaScript shards and all Chromium/WebKit journey shards. I did not run tests or the app locally. Live deletion, a real simultaneous two-tab race and packaged-native acceptance remain outside this review; this is not approval to enable the default-off deletion capability.

@TheSentinel454
TheSentinel454 merged commit 30251dd into main Oct 2, 2026
22 checks passed
@TheSentinel454
TheSentinel454 deleted the elrond/community-delete-copy-nits branch October 2, 2026 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants