Skip to content

feat: show roster-backed channels and managed instances in profiles - #188

Merged
wesbillman merged 8 commits into
mainfrom
am/profile-agent-channels
Sep 24, 2026
Merged

wesbillman merged 8 commits into
mainfrom
am/profile-agent-channels

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

What changed

  • Add Info and Channels tabs. The Channels tab lists classified stream/forum channels with exact roster membership, bounded to the viewer’s visible channels, and navigates through the scoped conversation route.
  • Show same-community native-managed agent instances on Info, with a link to agent controls.
  • Keep this PR read-only; admission is stacked in feat: add managed agents to channels from profiles #196.
  • Review fix: target the shared button label through CSS Modules :global and test that hidden, archived and DM memberships cannot cause a false unclassified empty state.

Verification

  • Head 2c546f9fd55609202cff2337cdeac1bad06e3bd6: production typecheck/build; 7 focused profile-channel tests; profile browser journeys in Chromium and WebKit (8/8, including appearance); pre-push TypeScript, related unit tests (31/31) and design-system guards passed locally.
  • Native instance links and live relay membership remain unverified in a running desktop host. Hosted CI and independent re-review pending.

Sample screenshot

Fictional Pinky agent with a robot illustration, captured from the source-level browser fixture at this head. Fixture transport only; no human profile photograph. The live-update toast was hidden for this illustration (not a product change). Image is attached to the PR, not committed to Git.

Synthetic Pinky agent profile channels, robot avatar

@kalvinnchau
kalvinnchau force-pushed the am/profile-agent-channels branch from 91ff62e to b265292 Compare September 23, 2026 23:23
@kalvinnchau kalvinnchau changed the title Show roster-backed channels and managed instances in profiles feat: show roster-backed channels and managed instances in profiles Sep 23, 2026
@kalvinnchau
kalvinnchau marked this pull request as ready for review September 24, 2026 01:26
@kalvinnchau
kalvinnchau requested review from a team, comp615 and wesbillman as code owners September 24, 2026 01:26
@kalvinnchau
kalvinnchau marked this pull request as draft September 24, 2026 01:44
@kalvinnchau
kalvinnchau force-pushed the am/profile-agent-channels branch from 5d901b3 to b462b0a Compare September 24, 2026 01:56
@kalvinnchau
kalvinnchau added this pull request to stack #197 September 24, 2026 02:40
@kalvinnchau
kalvinnchau marked this pull request as ready for review September 24, 2026 03:13
am added 7 commits September 23, 2026 20:15
Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.xyz>
Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.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.

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

Changes requested: one P2 keyboard-accessibility defect at 53f45b9e3cc869262398f11087ca6798cd7da94e (base/merge-base e9e557c5a78cacf84358a2b72897d798050b689a). The inline finding identifies the clipped channel-row focus treatment. Merge criterion: preserve the shared focus outline and add browser-level keyboard coverage for a single-row list and boundary rows.

Source-only review on Blox; no PR code executed and painted focus was not observed. Existing exact-head CI required, JavaScript, Rust/tool integration and Chromium/WebKit journeys passed. The added browser assertion checks channel text, not painted row focus. Native instance links and live-relay membership remain unverified in a running desktop host; Windows native validation was skipped.

Viewer-authorized roster handling, same-community exact native matches and scoped navigation were traced. Hint-gated instance loading is intentional, not a blocker. Retry flicker and minor fallback presentation differences are non-blocking. Admission changes in #196 are excluded.

Comment on lines +78 to +81
.channelList {
overflow: hidden;
border: 1px solid var(--border-standard);
border-radius: var(--radius-card);

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.

[P2] Leave room for the channel buttons’ keyboard focus outline

The new list clips its full-width buttons without any inset: the <ul> has zero margin/padding and each row adds only a top border. Shared .buzz-button:focus-visible uses a 2px outline with a 2px outward offset (src/shared/design-system/styles/components.css:746-751). Consequently this overflow clip cuts off the outline at the list edges; a ready list with one channel loses both long horizontal segments as well as the side extrema. Curved pill-outline fragments can remain, so this is not a claim that every focus pixel disappears, but a keyboard user is left with a materially clipped treatment instead of the shared ring around the channel action. Exact perception and contrast still need browser observation.

Give the outline room inside the clipping boundary, or remove the clipping while retaining the intended card presentation. Add a painted-focus browser regression for a one-channel list and first/last rows; the current new journey only asserts #One text and will not catch this.

Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.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.

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

Focused re-review: no blocking findings at 99e6e936b62e040b297f6c2c68889115a1dbf284 (base/merge-base e9e557c5a78cacf84358a2b72897d798050b689a). The prior clipped-focus finding is addressed: list padding preserves the shared outline, and the new painted-pixel regression covers single, first and last rows. The only production change since reviewed head 53f45b9e3cc869262398f11087ca6798cd7da94e is that padding; no data or navigation contract changed.

Source-only Blox review with independent UI review. Existing exact-head CI required, JavaScript, Rust/tool integration and Chromium/WebKit journeys passed; logs explicitly show the new focus regression passing in both engines. No PR code or tests were executed for this review. One non-blocking separator-polish note is inline. The fixture supplies the host keyboard-modality attribute, so it proves painted clipping behavior, not full host tab-order/modality integration, corner pixels, or a theme/viewport matrix. Native instance links and live-relay membership remain unverified in a running desktop host; Windows native validation was skipped. Admission in #196 is outside this re-review.

</p>
)}
{!!channels.length && (
<ul className="m-0 list-none p-2">

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.

[P3, non-blocking] Consider omitting the first row’s divider

The added padding correctly fixes focus clipping, but .channelRow still gives every <li> a top border (Profiles.module.css:86-88). In a ready list without notes, the first/only row now has a detached horizontal separator 8px below the card’s top edge. This is cosmetic, not a renewed focus blocker. Restricting the border to .channelRow + .channelRow would keep separators between rows without adding one above the first.

@wesbillman
wesbillman merged commit ebebf39 into main Sep 24, 2026
12 checks passed
@wesbillman
wesbillman deleted the am/profile-agent-channels branch September 24, 2026 13:14
zrmarley added a commit that referenced this pull request Sep 24, 2026
…o-player-polish

* origin/main: (38 commits)
  Fix diff content fallback, keyboard scrolling and edit selection (#205)
  Standardize form controls and field feedback across Buzz (#174)
  Keep image review downloads and external opens distinct (#144)
  Verify media review comments (#166)
  Follow system appearance (#210)
  Add rich composer formatting and spoiler rendering (#203)
  feat: show roster-backed channels and managed instances in profiles (#188)
  Add new direct message flow (#156)
  Remove Home, start in Messages, and keep Channels enabled (#194)
  fix: restore avatar presence controls and active-input sensing (#198)
  Add legacy diff messages with inline and expanded viewing (#202)
  Edit the latest own message with Up in the existing composer (#192)
  Add complete reaction toggles to the message menu (#185)
  feat: add persistent community navigation rail (#191)
  test: add margin to warm-switch performance gate (#195)
  Add composer attachments and compatible media preparation (#183)
  Add reply and copying to the shared message menu (#182)
  fix: avoid idle workspace re-renders from activity and label churn (#186)
  feat: add devtools trace capture to web profiling (#180)
  Add optional channel templates, teams and personal group defaults (#181)
  ...

Signed-off-by: Zach Marley <zmarley@squareup.com>
zrmarley added a commit that referenced this pull request Sep 24, 2026
…-content-compat

* origin/main: (38 commits)
  Fix diff content fallback, keyboard scrolling and edit selection (#205)
  Standardize form controls and field feedback across Buzz (#174)
  Keep image review downloads and external opens distinct (#144)
  Verify media review comments (#166)
  Follow system appearance (#210)
  Add rich composer formatting and spoiler rendering (#203)
  feat: show roster-backed channels and managed instances in profiles (#188)
  Add new direct message flow (#156)
  Remove Home, start in Messages, and keep Channels enabled (#194)
  fix: restore avatar presence controls and active-input sensing (#198)
  Add legacy diff messages with inline and expanded viewing (#202)
  Edit the latest own message with Up in the existing composer (#192)
  Add complete reaction toggles to the message menu (#185)
  feat: add persistent community navigation rail (#191)
  test: add margin to warm-switch performance gate (#195)
  Add composer attachments and compatible media preparation (#183)
  Add reply and copying to the shared message menu (#182)
  fix: avoid idle workspace re-renders from activity and label churn (#186)
  feat: add devtools trace capture to web profiling (#180)
  Add optional channel templates, teams and personal group defaults (#181)
  ...

Signed-off-by: Zach Marley <zmarley@squareup.com>

# Conflicts:
#	docs/channels.md
morgmart pushed a commit that referenced this pull request Sep 24, 2026
…rs-support

* origin/main:
  Add Messages design gallery and tighten message layout (#158)
  Fix diff content fallback, keyboard scrolling and edit selection (#205)
  Standardize form controls and field feedback across Buzz (#174)
  Keep image review downloads and external opens distinct (#144)
  Verify media review comments (#166)
  Follow system appearance (#210)
  Add rich composer formatting and spoiler rendering (#203)
  feat: show roster-backed channels and managed instances in profiles (#188)
  Add new direct message flow (#156)

Signed-off-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
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