feat(channels): suggest joined channels in the composer - #446
Merged
Merged
Conversation
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
wesbillman
marked this pull request as ready for review
September 30, 2026 02:06
wesbillman
commented
Sep 30, 2026
wesbillman
left a comment
Collaborator
Author
There was a problem hiding this comment.
No actionable source defects found in channel eligibility, stale-selection protection, escaped link insertion, prose-context gating, or composer lifecycle/focus handling.
Star Lord’s automated source review via Wes’s account; head 83ee83921636a9083e74715ee60809d12c6e4f0d, base 59e87ce5de792737a93d335ea345f7d829bc61ac. I executed no PR code or tests; the hosted snapshot shows CI required and DCO successful, but this is not runtime acceptance or approval. The documented final human recheck, native-desktop acceptance and dedicated previously-sent-message editing check remain outstanding; Retry-only Enter behavior remains the disclosed optional follow-up.
TheSentinel454
pushed a commit
that referenced
this pull request
Sep 30, 2026
* origin/main: (27 commits) Let plugin pages publish NIP-AR artifacts and embed the host thread view (#434) test(app): migrate entity-navigation test off removed buzz://open locator API (#463) Show agent activity in navigation (#423) test(browser): hold motion when it commits, not on its start event (#459) fix(navigation): ignore unknown query parameters on Buzz links and remove the buzz://open locator (#457) feat(design-system): distinguish controls on floating surfaces (#429) feat(native): add community extras and media preparation (#450) Clone inventory identities through reviewed text and fresh identity creation (#289) feat(communities): add right-click actions to the community rail (#400) fix(messages): keep a send reveal pending until its scroll runs (#454) fix(messages): reserve a stable scrollbar gutter on the channel feed (#451) fix(sidebar): list plugin pages as sidebar rows via an opt-in primary flag (#401) feat(channels): surface canvas content in channel settings (#426) fix(profiles): remove redundant presence status row (#394) test(browser): count live retries once the page handles startup controls (#443) feat(composer): host-owned resource links for the Projects picker (#445) feat: support native read state and recent channel activity (#444) feat(native): serve relay media and uploads in packaged builds (#433) feat(channels): suggest joined channels in the composer (#446) feat: support native agent activity, library, memories, and community resolution (#441) ... Signed-off-by: Codex <noreply@openai.com>
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
Add
#channelsuggestions through the Channels plugin and the existing composer completion host. The plugin owns channel eligibility, filtering, ranking and insertion; the host retains editor transactions, keyboard/IME handling, focus, positioning and stale-result protection. No new public plugin API or relay endpoint.PR #1234+ Enter sends.Validation
Checked clean head
83ee83921636a9083e74715ee60809d12c6e4f0d, rebased onto59e87ce5. The feature patch is unchanged from the independently reviewedf6096600(git range-diffequality).bin/pnpm exec vitest run: 451 files, 5,480 tests passed. The earlier run on the old base failed one profile-menu focus assertion; the upstream fix waits for focus, and the complete suite passes after rebase. No unrelated feature-branch fix added.bin/pnpm test:browser channel-completion.spec.mjs mentions.spec.mjs --project chromium --project webkit --no-deps: 10/10 passed. Covers real editor selection/undo, focus, portal and narrow-screen geometry, restored drafts, signed channel/thread content without recipient tags, formatted acceptance, no-match sending, and existing mention journeys.Test-layer accounting
Added one browser scenario, executed in both engines; removed none. It proves native editing/undo, focus, actual layout and plugin-to-send wiring that jsdom cannot establish. Eligibility, ranking, lifecycle, escaping and prose-context permutations stay in colocated Vitest tests. No tests were moved or replaced. No pre-feature failing browser run was recorded.
Local typing diagnostic
With 1,002 channels and a 10,000-character draft, 48 input-to-next-frame samples per case on the pre-rebase feature tree:
#generalZero added relay reads were observed. These are local diagnostic measurements, not a zero-cost claim or production latency guarantee; they were not repeated after the patch-preserving rebase.
Remaining gates and known limitation
Draft pending a human recheck of the final review-driven behavior changes, especially no-match sending and formatted insertion. The initial human try preceded those adjustments. To check: type
#, select with Enter/Tab, undo, repeat in a thread and bold/italic text, then type a nonmatchingPR #1234and verify Enter sends normally. Confirm private-channel labels and narrow-window placement.Hosted DCO Check passed at
83ee8392; CI is running. CI and required reviewer/code-owner approval remain merge gates. Native desktop build, the entire browser suite and dedicated channel-link insertion while editing a previously sent message were not exercised locally.Optional follow-up: if refreshing the channel list has failed and a query has no matches, the shared Retry-only menu captures Enter to retry rather than send. Escape dismisses it. This is documented, not silently treated as fixed.