Skip to content

feat(ui): prototype static spaces sidebar - #4060

Draft
puemos wants to merge 7 commits into
mainfrom
posthog-code/static-spaces-sidebar
Draft

feat(ui): prototype static spaces sidebar#4060
puemos wants to merge 7 commits into
mainfrom
posthog-code/static-spaces-sidebar

Conversation

@puemos

@puemos puemos commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Problem

Prototype for a new sidebar design: get rid of the moving (sliding) sidenav and replace it with a single static nav where every space shows its tasks beneath it, and where spaces only appear once a user adds them to their sidebar (by adding an existing space or creating a new one) instead of listing all spaces by default.

Changes

  • Under the existing code-spaces-layout flag, ChannelsSidebar now renders a static SpacesSidebarNav instead of the 200%-width panes slider (the ChannelPanes track, swipe gesture, and route-scoping side effects are removed from the shell).
  • New SpacesSidebarNav: Home / Tasks / Inbox nav rows (Inbox has a "+" affordance), then every pinned (starred) space with its tasks expanded inline beneath it, an "Add space" menu (finding an existing space stars it; "New space" opens the create modal), and a pinned-agents placeholder section.
  • Pinning = starring: reuses the existing starred-channel shortcuts as the sidebar membership model — no backend changes. Expanded state per space is a persisted local store (spacesSidebarStore).
  • Space task rows reuse the existing useChannelItems + ChannelItemRow, so a space's tasks render identically to the old channel pane.

Screenshots to follow once run against a live backend.

How did you test this?

  • pnpm --filter @posthog/ui test — all 289 files / 2443 tests pass (rewrote ChannelsSidebar.test.tsx for the static nav; kept Archived-row and tracking coverage).
  • pnpm --filter @posthog/ui typecheck — clean.
  • pnpm biome check packages/ui/src — clean.

Automatic notifications

  • Publish to changelog?
  • Alert Sales and Marketing teams?

Created with PostHog Code

Generated-By: PostHog Code
Task-Id: 7698cad8-55a1-4e67-9657-91ce3e8f0a52
@trunk-io

trunk-io Bot commented Jul 31, 2026

Copy link
Copy Markdown

Merging to main in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

@github-actions

github-actions Bot commented Jul 31, 2026

Copy link
Copy Markdown

React Doctor found 1 issue in 1 file · 1 warning.

1 warning

src/features/canvas/components/SpacesSidebarNav.tsx

Reviewed by React Doctor for commit ab7f302.

puemos added 4 commits July 31, 2026 22:05
…ace toggle

Generated-By: PostHog Code
Task-Id: 7698cad8-55a1-4e67-9657-91ce3e8f0a52
Generated-By: PostHog Code
Task-Id: 7698cad8-55a1-4e67-9657-91ce3e8f0a52
Generated-By: PostHog Code
Task-Id: 7698cad8-55a1-4e67-9657-91ce3e8f0a52
… language

Drops the Home/Tasks/Inbox rows (the ChannelNav icon row already covers
them), replaces the per-space tab strip with the channel header's own
tabs, and makes space rows behave like the rest of the sidebar: the row
opens the space, the disclosure caret folds it, the star (hover-revealed)
pins. The All spaces list becomes a section-labelled directory whose rows
open the space instead of silently pinning it, with a New space entry and
the ChannelsFab restored so the static layout keeps a create affordance.

Generated-By: PostHog Code
Task-Id: 0331ac58-0a1c-4b4e-b884-2ff7d8e71986

puemos commented Jul 31, 2026

Copy link
Copy Markdown
Contributor Author

Pushed a design pass over the prototype (e9de196): removed the Home/Tasks/Inbox rows (the icon nav already covers them), dropped the per-space tab strip in favour of the channel header's existing tabs, made space rows open-on-click with a proper disclosure caret and hover-revealed pin star, turned All spaces into a section-labelled directory whose rows open the space (clicking used to silently pin), and restored a create path in this layout via the FAB plus a New space row. Details in the commit message; AllSpacesSection now has unit coverage.


Created with PostHog Code

puemos added 2 commits July 31, 2026 23:18
…rectory

Sidebar feedback round: a space row is now a single click target that
folds its task list (no separate caret hover zone); the hover gear on the
right opens the space in the main view, and #me's lock moves into that
same trailing well. The header regains a tab strip under the channels
layout (Feed, Context, Loops, Artifacts, Recents) as the breadcrumb's
trailing slot, since the sidebar no longer carries page links. A My-tasks
switch above the pinned list narrows every space's tasks to the viewer's
own via the exported core ownership rule. All spaces docks at the bottom,
sheds its cube for a caret aligned with the space rows, and opens upward
to a capped, scrollable height.

Generated-By: PostHog Code
Task-Id: 0331ac58-0a1c-4b4e-b884-2ff7d8e71986
…ce task windows

Sidebar feedback round three. The space header swaps its trailing button
strip for quill line tabs (Feed/Context/Loops/Artifacts/Recents) on their
own row under the space name, matching Inbox/Activity; the header bar
grows via min-height so single-row breadcrumbs are unchanged. Each
space's task list leads with a "New session" row, shows a five-row
scroll window with View all pinned below, and its task rows are
draggable into the Command Center with the same text/x-task-id payload
as the code sidebar. Pinned spaces reorder by dragging their header row
(dnd-kit sortable, #me fixed first, order persisted in the sidebar
store). The filter row is labeled "Spaces" and its switch explains
itself in a tooltip.

Generated-By: PostHog Code
Task-Id: 0331ac58-0a1c-4b4e-b884-2ff7d8e71986
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.

1 participant