Skip to content

remove relay field from invite link step - #2131

Merged
cynfria merged 1 commit into
mainfrom
remove-relay-invite-step
Jul 19, 2026
Merged

cynfria merged 1 commit into
mainfrom
remove-relay-invite-step

Conversation

@cynfria

@cynfria cynfria commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Why

The first-community Enter your invite link step treated arbitrary non-empty text as a relay-code fallback. That exposed a Relay URL field and enabled Next, even though the user had not entered an invite link.

What

  • Require a valid invite URL on the first-community invite step instead of falling back to the configured relay URL
  • Keep the relay URL field hidden for invalid input and keep Next disabled
  • Show a centered Please enter a valid invite link tip for non-empty invalid input
  • Reserve the tip row and fade its opacity so validation does not shift the invite container
  • Hide the inactive tip from the accessibility tree
  • Remove the obsolete defaultRelayUrl prop and local-relay fallback helper from WelcomeSetup
  • Add focused E2E coverage for invalid/valid transitions, exact tip presentation, accessibility state, and stable container position

Risk Assessment

Low — this is scoped to first-community invite-link validation and presentation. It does not change invite parsing, submission, relay communication, persistence, or navigation. Existing membership-recovery behavior remains unchanged.

References

  • pnpm exec biome check src/app/App.tsx src/features/communities/ui/WelcomeSetup.tsx src/features/onboarding/ui/InviteRedeemForm.tsx tests/e2e/onboarding.spec.ts
  • pnpm typecheck
  • pnpm build
  • pnpm exec playwright test tests/e2e/onboarding.spec.ts --grep "first-community choices expose npub and invite input"
  • Full pre-push suite passed

Generated with Peppermint Butler

Co-authored-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co>
@cynfria cynfria changed the title Validate onboarding invite links remove relay field from invite link step Jul 19, 2026

@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.

Reviewed exact head ea4ac15fcd0b2a0bfccc9450bc99f7ec663eca4f: no code-review blockers. The onboarding caller intentionally drops the default-relay bare-code fallback while shared-form callers that still pass defaultRelayUrl retain it; the focused E2E covers invalid-to-valid state, accessibility, and layout stability. The PR is still a draft, and Semgrep remains pending.

@cynfria
cynfria marked this pull request as ready for review July 19, 2026 18:20
@cynfria
cynfria requested a review from a team as a code owner July 19, 2026 18:20
@cynfria
cynfria merged commit 3881bff into main Jul 19, 2026
25 checks passed
@cynfria
cynfria deleted the remove-relay-invite-step branch July 19, 2026 18:26
BradGroux pushed a commit to BradGroux/buzz that referenced this pull request Aug 23, 2026
Signed-off-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co>
tucktuck101 pushed a commit to tucktuck101/buzz that referenced this pull request Sep 17, 2026
…k#2131)

Plans Feature block#2131 and its six child tasks (block#2137-block#2142).

The reading changed the plan's shape: roughly a third of the Feature is
already built. verify-claims/SKILL.md already carries the mandatory
framing, the isolation and withhold rules, the four verdicts, the
run-twice step and the accepted-cost note; screen-sensitive/SKILL.md
already documents the whole ATTRIBUTION/ROSTER_DATA/AMBIGUOUS protocol.

What is genuinely missing is narrower and more important: nothing in the
pack says what verifier stdout counts as which verdict, and neither
draft-page nor update-page wires the gate into its procedure at all -
update-page does not mention it once.

Three OPEN items are left for a human, not decided here.

Signed-off-by: test <test@example.com>
tucktuck101 pushed a commit to tucktuck101/buzz that referenced this pull request Sep 17, 2026
…lock#2131)

The phase table claimed Phase 1 was "Not started". It shipped on 2026-09-08 as
PR block#2106, hardened by PR block#2133 on 2026-09-09. Both rows now state what is true
and name the merged PRs.

Phase 1b reads BUILT, NOT MERGED -- deliberately not "shipped". Every criterion
in its own review gate has been demonstrated with transcripts under
launchpad/plans/evidence/, but the branch has not been reviewed, gated or opened
as a pull request, and the row says so rather than letting a demonstration read
as a merge. The second-pass re-dispatch observable is specified and wired, but a
full two-pass run over a finished page belongs to Phase 2, the first phase that
produces one; that is stated rather than implied.

Phases 2-7 still read "Not started", correctly.

Five decisions recorded, under the honesty convention the rest of the document
uses -- what was decided, why, and what it does NOT solve. Open questions items
1-9 all closed on 2026-09-04, so these are a new section rather than new items:

  10. the re-dispatch observable, and its named independence limitation
  11. the roster-names redact-plus-flag shape, and its accepted contract cost
  12. column offsets as candidate identity, now demonstrated rather than argued
  13. what a missing headless CLI demonstrates -- consequences, not absence
  14. the verdict goes last in the response grammar, from measurement

Section 6.7's mechanism row said stdout was "captured as the verdict". That is
no longer precise: the whole response is matched against a two-line grammar by
equality, and completion is judged separately from content, so a non-zero exit,
a timeout or a truncated response each block whatever the text said.

Verified after editing, per this document's own house rules: every local section
cross-reference resolves to a real heading; the three references that do not
(2b, 2d, 4a) are to verify-claims/SKILL.md and each names that file immediately
before the reference; all three mermaid diagrams still present.

Signed-off-by: Serina Mcfall <serina.mcfall@gmail.com>
tucktuck101 pushed a commit to tucktuck101/buzz that referenced this pull request Sep 17, 2026
…r-verify-claims

feature(the-professor): Phase 1b — the claim-verification gate and roster-name dispatch (block#2131)
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.

2 participants