feat: add channel guest onboarding with community agents - #5541
feat: add channel guest onboarding with community agents#5541arieldiaz wants to merge 9 commits into
Conversation
459be2c to
fd03657
Compare
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
fd03657 to
b5d96e2
Compare
Signed-off-by: Ariel Diaz <me@arieldiaz.com>
b5d96e2 to
561e370
Compare
alm36918
left a comment
There was a problem hiding this comment.
Context: we're a second independent integrator hitting exactly the motivation described here. We run hosted Buzz communities for small Brazilian organizations, with our own agent roster (e.g. "Cira") provisioned server-side before the first human joins. Current behavior is actually worse for us than the trio leak: since our communities have no personas named Fizz, Honey or Bumble, the "Meet your starter team" stage filters listPersonas() down to nothing and renders an empty stage under that headline. Skipping the stage entirely for invite joins — as this PR does — is the right call, and simpler than making the stage dynamic. +1 on the approach.
Two questions from reading the diff against current main:
-
Second
team-introtransition looks unguarded.shouldProvisionLocalStarterTeamgates the profile-continue handler, but the profile-discovery effect (CommunityOnboardingFlow.tsx~L308–324 on main) also transitions: whengetProfile()reportshasProfileEvent, it firesupdate({ stage: "team-intro" }, transaction.id)directly. An invitee with an existing relay profile (profile reuse after #2155, re-onboarding scenarios like #3727, a second machine) would still land on team-intro through that path. Should that site apply the same policy — i.e.finish()instead ofteam-introwhen an invite code is present? -
WelcomeKickoffStagestill hardcodes the trio.STAGE_CHARACTERSrenders the Fizz/Honey/Bumble APNGs on the Welcome banner while waiting for the first agent message. On an invite join into a community with a custom roster, that first message comes from a different agent. Should this surface be gated by the same policy (or driven by the actual roster)? Possibly out of scope for this PR, but it's the same leak on an adjacent surface.
Happy to verify against our integration once this lands — the use case in the description matches ours 1:1.
Summary
Why
An invited Humanware OS member should enter the community they were invited to. The previous onboarding path treated every invited member like the creator of a new Buzz workspace, which leaked Buzz's generic starter agents into a community that already has Liv and Max.
Verification
pnpm typecheck