fix: restore avatar presence controls and active-input sensing - #198
Merged
Merged
Conversation
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
added 3 commits
September 23, 2026 21:09
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
wesbillman
commented
Sep 24, 2026
wesbillman
left a comment
Collaborator
Author
There was a problem hiding this comment.
Carl, an automated reviewer, commenting via Wes’s GitHub account.
No actionable material defects found in the agreed contract. Reviewed head e9eb1548261cb36c1efeec6b43ef29481c006957 against base 12a957c238771545dee57e9b83f26171074578ec. This is a comment, not an approval. Another Carl session authored this implementation; Mordecai and Princess Donut supplied separate read-only state-machine and UI/accessibility reviews, which I reconciled with the integration paths.
- Verified saved intent before community acquisition, captured input/foreground activity, manual override, current-intent cancellation, Offline retry/no-renewal, broker/socket validation, profile-only demand, and reuse of existing DM profile/media ownership. No outstanding review threads existed at review time.
- One additional controlled-clock integration probe passed against exact-head production source plus a temporary test: a delayed obsolete signer cannot publish Online after Offline; a late Offline receipt cannot stop the replacement Automatic publisher; accepted Offline stops subsequent renewal. The socket, signer delay and Web Lock interface were fixtures, not a deployed-relay/native test. Existing hosted JavaScript validation passed 251 files / 2,600 tests on synthetic merge
5770dcc9aa996eb8d0edf0d9c7189089967e8eac(head merged withe9e557c5), not on the bare feature head. - Remaining gates/limits: Rust/tool integration and four browser shards were still running at the last check; browser measurements, JavaScript, security checks and DCO were green, Windows validation skipped. Finish existing CI and normal reviewer requirements before merge. Native WebView/OS activity, deployed cross-device behavior and full production-broker idle-to-publication integration remain explicitly unverified; no new blocker is inferred from those stated limits.
morgmart
pushed a commit
that referenced
this pull request
Sep 24, 2026
* origin/main: 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) Signed-off-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
morgmart
pushed a commit
that referenced
this pull request
Sep 24, 2026
…embers-dialog * morganm/channel-members-support: Preserve member-add recovery across dialog lifetimes 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) Signed-off-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz> # Conflicts: # src/shared/design-system/ui/Dialog.tsx
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restore the own-avatar status indicator and compact account menu with Automatic / Away / Appear offline and Settings. Capture editor input before bubbling stops, count foreground return as activity, remove presence from message/thread rows, and omit unavailable profile presence instead of displaying Unknown or inventing Offline.
Only protected edit is the previously authorized two-line communities/service.ts wiring. Combined production diff: 348 additions / 123 deletions, including the subsequently requested menu and DM work. Main through
12a957c2is integrated: retain the new community rail and reaction controls, remove the obsolete CommunitySwitcher fixture, and keep presence off MessageRow.Originating Buzz channel:
4a7aa498-1c58-4a1a-b568-f3845277ff5a, threadf5b1938186889172a76fa451f3db681f9e8cd6fcb45457d494eb69016a172c5d.Validation
Delivered head:
e9eb1548261cb36c1efeec6b43ef29481c006957.59ed509b: full Vitest, 250 files / 2,563 tests passed (112.71s, macOS arm64, two workers); all 17 affected/merge-seam browser files, 168/168 passed in Chromium/WebKit (3.9m). Includes Settings/menu focus, avatar preferences and reload, DM profile recovery/no presence queries, responsive layout/navigation, and reaction/message-action integration.Browser test accounting
Presence remains six cases per engine: replace the old byline snapshot journey with no-byline-render/no-demand plus explicit-profile observation; remove the obsolete 300-author byline/overflow journey; add one avatar preference/reload integration. Existing bounded-demand owner tests retain cap/priority coverage.
This UI follow-up adds zero browser cases: existing Settings coverage now exercises shared-menu arrow/Home/End navigation without accidental preference changes, Escape/outside/Shift+Tab dismissal and page-focus handoff at wide/narrow widths; existing DM-label recovery cases assert avatar recovery and no presence demand. Update Settings selectors across existing journeys from button to menuitem. The keyboard handoff failed in both engines before using the completed-close callback and passed afterward without weakening its focus assertion.
Browser-only justification: real app/broker/socket composition, storage and Web Locks across pages, native focus/keyboard/layout. Avatar image/sanitization/agent shape and count branches are tested in the colocated component test; status/failure matrices stay in owner tests.
Remaining gates and limits
GitHub reports this head MERGEABLE; DCO passes. Hosted CI and required human/code-owner review remain pending. No merge performed.
The browser evidence uses a real built frontend and production broker where specified, with modeled upstream and ephemeral identities. Native WebView/OS-wide idle, deployed capacity/cross-device availability and full production-broker browser idle -> publication are not certified. Broad hosted browser measurements and native/tool integration are left to CI; no release certification is implied.