Skip to content

Expose ordinary chats without workspace headings - #3530

Merged
dr0uleau merged 6 commits into
mainfrom
nexus/expose-all-ordinary-chats-without-workspace-head-d0f236ff
Nov 14, 2026
Merged

dr0uleau merged 6 commits into
mainfrom
nexus/expose-all-ordinary-chats-without-workspace-head-d0f236ff

Conversation

@dr0uleau

@dr0uleau dr0uleau commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

Why

A Solo region plugin can include ordinary chats with ui.Chats, but including chats from named workspaces also adds their workspace headings and frames. A source that groups its own content by status or time cannot show those chats as a plain list without losing access to filed chats.

What

Add optional ui.ChatList for sources that compose workspaces. It shows filed and unfiled ordinary chats without workspace chrome. Menus, rename editors, pending saves, saved assignments, workspace order, and per-workspace pagination stay with the host.

How

Reuse the existing row portals. Focus recovery uses the row’s current layout, then surviving list rows and the region heading. The list ignores saved collapse state for display and preserves that state when the source returns to workspaces. Existing ui.Chats behavior is unchanged. Plugins can detect ui.ChatList and use ui.Chats({ all: true }) on older hosts.

Risk

The new API is inert unless a source uses it. Row focus and neighbor selection now account for the plain-list placement. The feature adds no relay reads or persistence writes.

Testing

The final head was checked in the actual shell with simulated data, using headless Chromium on macOS. Chromium checks cover filed and unfiled chats, Show more/Show less, row menus, rename/save, row identity across layouts, saved collapse state, and the older-host fallback. Visual inspection covers light and dark themes, narrow and wide widths, and 200% interface size.

The shipping review ran. The focus regression fails on the prior implementation and passes after the repair. The author approved the shown preview with “LGTM”. No separate hands-on human run was reported. The final browser check also covers keyboard row menus and Escape focus recovery. It reported no page errors. Native and real-relay validation are outside this presentation-only change. Browser cases added/removed: none; mounted component coverage owns the membership, pagination, and editor lifecycle contracts.

Existing ui.Chats({ all: true }) Optional ui.ChatList
Existing workspace headings and framed ordinary chats Plain host-owned ordinary chats

buzz-review-completed

Generated with Codex

dr0uleau and others added 6 commits November 13, 2026 16:41
Co-authored-by: Codex <[email protected]>
Signed-off-by: Daniel Rouleau <[email protected]>
Co-authored-by: Codex <[email protected]>
Signed-off-by: Daniel Rouleau <[email protected]>
Co-authored-by: Codex <[email protected]>
Signed-off-by: Daniel Rouleau <[email protected]>
Co-authored-by: Codex <[email protected]>
Signed-off-by: Daniel Rouleau <[email protected]>
@dr0uleau
dr0uleau marked this pull request as ready for review November 14, 2026 01:39
@dr0uleau
dr0uleau requested a review from a team as a code owner November 14, 2026 01:39
@dr0uleau
dr0uleau requested review from gilgtm and kazemek21 November 14, 2026 01:39

@gilgtm gilgtm 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 P0/P1 findings in the deep dual review at 337bfaf689aac46e92b93fdb786437708abaf348.

Posted by duel-review skill [driver: codex(high), mode: deep-dual, review synthesized by codex(high)]

@dr0uleau
dr0uleau requested a review from a team November 14, 2026 02:50
@dr0uleau
dr0uleau merged commit 4a87b5c into main Nov 14, 2026
66 checks passed
joahg added a commit to joahg/buzz-app that referenced this pull request Nov 14, 2026
* origin/main: (133 commits)
  Expose ordinary chats without workspace headings (block#3530)
  [2/2] feat(agents): offer Automatic (Recommended) in Create agent and Identity (block#3345)
  fix(solo): preserve and resume unsent chat drafts (block#3525)
  fix(builderlab): give refused app sign-ins and Identity links a route to Organization sign-in (block#3078)
  fix(agents): say why Import an agent can't import here, and link Manage plugins (block#3073)
  [1/2] feat(agents): add a recommended agent setup (core) (block#3344)
  test(browser): survive the live-stream restart a page-clock jump causes (block#3442)
  chore(renovate): hold rusqlite below 0.41 for mesh-llm (block#3438)
  test(browser): serve the diffs and CLI reload fixtures outside the navigation budget (block#3445)
  test(browser): play the draft clip at rate 0 instead of looping it before the Play click (block#3446)
  fix(status): reopen a status whose preset deadlines coincide as Today (block#3449)
  fix(messages): tolerate a cancelled reaction-name chunk load (block#3450)
  fix(pairing): tolerate /proc/net/tcp rows printed twice or missed (block#3451)
  test(browser): wait on the signal each test asserts in local-agent-activity and message-navigation (block#3444)
  Expose native channel headings to Solo sources (block#3523)
  test(browser-host): run the 100,000-channel broker scale check alone in the measurements lane (block#3447)
  fix(solo): keep every contributed destination action (block#3516)
  fix(identity): report an issuer that keeps rate-limiting an agent as a limit (block#2365)
  fix(identity): let a stuck at-launch sign-in copy its link (block#2453)
  fix(profiles): open avatar previews on hover in compact density (block#3510)
  ...

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

# Conflicts:
#	src/bundled/codex/prompt.test.ts
#	src/bundled/goose/runtime.ts
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