Skip to content

NEXUS-4163: Keep plugin-owned chat deletion in Solo - #2787

Merged
gilgtm merged 1 commit into
mainfrom
gil/nexus-4163-solo-lifecycle
Nov 11, 2026
Merged

gilgtm merged 1 commit into
mainfrom
gil/nexus-4163-solo-lifecycle

Conversation

@gilgtm

@gilgtm gilgtm commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Keeps plugin-owned chat deletion inside Solo (02f9c0277).

When a plugin's row leaves the roster after a delete, Solo keeps its successor navigation, and a newer visit the user already made wins.

Compared with the previous version of this PR

The commit is rebased onto the rebuilt stack. Its behavior is unchanged.

buzz-review-completed

Testing

Local runs on macOS, on the stack rebased onto main 9596cd3db:

  • The pushed heads differ from the tested adbdf424e chain only in tests/browser/solo-rename.spec.mjs. 02f9c0277 makes the new plugin-owned lifecycle test wait for the chat's row before filing it, after the hosted flake check caught it racing the roster load. With that fix, the full solo-rename.spec.mjs passed 180/180 at 02f9c0277 (10 repeats, Chromium and WebKit) and 120/120 at c99d0ce51 (5 repeats).
  • At this PR's head 12b06a7b1: pnpm check (Biome, TypeScript and the design checks) and the icon check passed. Vitest for the files the flake check selects for this PR: 349 passed.
  • At the stack tip adbdf424e: full Vitest, 20556 passed and 23 skipped (includes browser-host/channel-kit.test.mjs).
  • Browser journeys at the stack tip, Chromium and WebKit: the full tests/browser/solo-rename.spec.mjs, repeated 5 times, passed 120/120. The 34 other specs that the flake check relates to the stack, run once in each engine: 343 passed, 3 skipped by their own conditions. The full browser suite was not run locally.
  • The Nexus plugin's connected browser harness ran on the actual Buzz web shell and plugin UI, with a simulated relay and generated identities, before the rebase. Full run at host pin 049a9b57e (now 1fbd49c49), which includes this PR: 53 passed.

Native testing: Gil ran the native desktop app on this stack at adbdf424e, with the matching Nexus plugin build. Gil confirmed that these native-only paths passed:

Agent testing did not reach these paths: the agent ran no native app, no real relay and no real agent.

Known gaps

  • None specific to this PR.

Hosted or local failures that this stack does not cause:

  • tests/browser/typing.spec.mjs:290 ("a growing channel/thread composer lifts history with it at the bottom") intermittently fails with React error Add complete reaction toggles to the message menu #185 on main too. Locally it failed 12 of 12 runs at 9596cd3db and 9 of 12 at a later main commit.
  • On macOS, cargo test -p Buzz crashes the library test binary (SIGSEGV), and some host_command deadline tests fail. Both happen the same way at base 9596cd3db, before this stack. Hosted Linux CI is the reference for these.

Test changes

Titles are compared only in the test files each range changes. Tests that moved or were renamed are matched by title.

Removed by this PR's diff (0)
  • none
Added by this PR's diff (2)
  • src/features/channel-navigation/SoloRegions.test.tsx: %s of a plugin-owned chat preserves Solo and newer navigation (%s)
  • tests/browser/solo-rename.spec.mjs: deleting a plugin-owned chat keeps the shell in Solo
In the previous version of this PR, not carried over (0)
  • none

@gilgtm
gilgtm added this pull request to stack #2791 November 6, 2026 12:04
@gilgtm
gilgtm force-pushed the gil/nexus-4163-solo-lifecycle branch from 1701019 to 22c10ed Compare November 6, 2026 16:02
@gilgtm
gilgtm force-pushed the gil/nexus-4163-solo-lifecycle branch from 22c10ed to 2f98dee Compare November 10, 2026 03:00
@gilgtm
gilgtm removed this pull request from stack #2791 November 10, 2026 03:03
@gilgtm
gilgtm added this pull request to stack #3176 November 10, 2026 03:03
@gilgtm
gilgtm force-pushed the gil/nexus-4163-solo-lifecycle branch 2 times, most recently from 12b06a7 to 02f9c02 Compare November 10, 2026 06:17
@gilgtm
gilgtm marked this pull request as ready for review November 10, 2026 06:37
@gilgtm
gilgtm requested a review from a team as a code owner November 10, 2026 06:37

@dr0uleau dr0uleau left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 no P2 or higher findings in the completed review. manual browser, native, and real-relay checks remain unverified

@gilgtm
gilgtm force-pushed the gil/nexus-4163-solo-lifecycle branch from 02f9c02 to 3f32f67 Compare November 11, 2026 02:40
Base automatically changed from gil/nexus-4156-workspace-api to main November 11, 2026 03:08
Preserve Solo successor navigation and respect newer visits after a plugin row leaves the roster.

Co-authored-by: Codex <[email protected]>
Signed-off-by: Gil Birman <[email protected]>
@gilgtm
gilgtm force-pushed the gil/nexus-4163-solo-lifecycle branch from 3f32f67 to 472c262 Compare November 11, 2026 03:08
@gilgtm
gilgtm merged commit 4db05b3 into main Nov 11, 2026
68 checks passed
@gilgtm
gilgtm deleted the gil/nexus-4163-solo-lifecycle branch November 11, 2026 03:23
joahg added a commit to joahg/buzz-app that referenced this pull request Nov 11, 2026
* origin/main:
  feat(messages): let attachment renderers open files from the host file card (block#2239)
  feat(charts): bundle a Charts code-block renderer (block#3226)
  Expose native reply grouping through Conversation.ui (block#3245)
  NEXUS-4163: Keep plugin-owned chat deletion in Solo (block#2787)
  NEXUS-4156: Expose Solo Workspaces to plugin regions (block#2786)
  NEXUS-4022: Start region chats in the New Chat editor (block#2784)
  feat(link-previews): unfurl web links below messages by default (block#3225)
  fix(messages): keep names in literal Markdown as written when editing (block#2834)
  feat(plugins): fetch a packaged managed plugin policy from a URL (block#2504)

Signed-off-by: Joah Gerstenberg <[email protected]>

# Conflicts:
#	crates/plugin-manager/tests/management.rs
#	docs/plugin-architecture.md
bostonaholic added a commit that referenced this pull request Nov 11, 2026
…y-untagged-reactions

* origin/main: (324 commits)
  fix(github): show private-repo body images from signed links (#3252)
  NEXUS-4029: Preserve semantic chips in the core composer (#2303)
  Make plugin signature enforcement opt-in (#2212)
  NEXUS-4156: Add workspace Leads and choose a chat's workspace (#2788)
  feat(plugins): report conclusively retired update providers (#3263)
  feat(messages): let attachment renderers open files from the host file card (#2239)
  feat(charts): bundle a Charts code-block renderer (#3226)
  Expose native reply grouping through Conversation.ui (#3245)
  NEXUS-4163: Keep plugin-owned chat deletion in Solo (#2787)
  NEXUS-4156: Expose Solo Workspaces to plugin regions (#2786)
  NEXUS-4022: Start region chats in the New Chat editor (#2784)
  feat(link-previews): unfurl web links below messages by default (#3225)
  fix(messages): keep names in literal Markdown as written when editing (#2834)
  feat(plugins): fetch a packaged managed plugin policy from a URL (#2504)
  fix(goose): enable deferred tool loading for goose agents (#3227)
  fix(unread): preserve manual intent in captured explicit reads (#3228)
  NEXUS-4337: Expose retained plugin update reviews (#3075)
  feat(conversation): add a link preview slot below messages (#3219)
  feat(plugins): let link previews read a public page's preview fields (#3217)
  Let sidebar row plugins decorate ordinary Solo chats (#3222)
  ...
tlongwell-block added a commit that referenced this pull request Nov 11, 2026
* origin/main: (121 commits)
  Expose Solo region state before a component mounts (#3296)
  fix(builderlab): say a 401 was refused, not expired, and show each sign-in failure once (#3241)
  feat(agents): file new Solo chats in explicit personal workspaces (#2857)
  perf(css): limit broad style invalidation (#3267)
  Delay and fade in the Bestie badge celebration (#3292)
  fix(github): show private-repo body images from signed links (#3252)
  NEXUS-4029: Preserve semantic chips in the core composer (#2303)
  Make plugin signature enforcement opt-in (#2212)
  NEXUS-4156: Add workspace Leads and choose a chat's workspace (#2788)
  feat(plugins): report conclusively retired update providers (#3263)
  feat(messages): let attachment renderers open files from the host file card (#2239)
  feat(charts): bundle a Charts code-block renderer (#3226)
  Expose native reply grouping through Conversation.ui (#3245)
  NEXUS-4163: Keep plugin-owned chat deletion in Solo (#2787)
  NEXUS-4156: Expose Solo Workspaces to plugin regions (#2786)
  NEXUS-4022: Start region chats in the New Chat editor (#2784)
  feat(link-previews): unfurl web links below messages by default (#3225)
  fix(messages): keep names in literal Markdown as written when editing (#2834)
  feat(plugins): fetch a packaged managed plugin policy from a URL (#2504)
  fix(goose): enable deferred tool loading for goose agents (#3227)
  ...

Signed-off-by: Tyler Longwell <[email protected]>
Co-authored-by: Eva <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@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