Skip to content

fix(frontend): restore the sessions toolbar layout, dropping the filters rail - #5833

Merged
mmabrouk merged 1 commit into
release/v0.112.0from
fix/sessions-page-design-revert
Aug 9, 2026
Merged

fix(frontend): restore the sessions toolbar layout, dropping the filters rail#5833
mmabrouk merged 1 commit into
release/v0.112.0from
fix/sessions-page-design-revert

Conversation

@mmabrouk

@mmabrouk mmabrouk commented Aug 9, 2026

Copy link
Copy Markdown
Member

What

The sessions page had grown a filters rail: a second sidebar inside the page, next to the app's own sidebar. This returns the page to the original toolbar design: one filter row above the session list.

This is a rewrite of the shell, not a git revert. All of the newer capabilities survive and keep binding to the same shared filter atoms in @agenta/sessions:

  • Search stays as the first control in the row (debounced, as before).
  • Agent picker stays app-injected (antd Select), hidden on the agent-scoped page as before.
  • Live / Waiting on you / All becomes a Segmented control; the waiting count rides in the label since a toolbar has no room for a separate badge.
  • Show automation runs and include archived keep their switches with their tooltips.

Code shape

  • SessionFiltersRail is deleted; a small SessionFiltersBar replaces it as the page-owned shell.
  • SessionStatusListControl (a vertical nav list, only usable in a rail) becomes SessionStatusControl, sized for a toolbar row. No remaining consumers of the old export (grep-verified).
  • No data, state, or API changes. UI only.

Verification

  • 21/21 unit tests pass in @agenta/sessions.
  • No remaining imports of the deleted rail or the old control name anywhere in web/.

@vercel

vercel Bot commented Aug 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agenta-documentation Ready Ready Preview Aug 9, 2026 7:19pm

Request Review

@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Aug 9, 2026
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added a top toolbar for searching and filtering sessions by status, mode, agent, and archived state.
    • Added segmented status filters for All, Live, and Waiting sessions, including the waiting-session count.
    • Expanded the session list to use the available page width with improved scrolling.
  • Style

    • Refined session group header spacing and toolbar presentation.

Walkthrough

The sessions page replaces the side filter rail with a top SessionFiltersBar. Shared controls now use a segmented status selector, optional search styling, and the renamed SessionStatusControl export.

Changes

Session filter toolbar

Layer / File(s) Summary
Update shared filter controls
web/packages/agenta-sessions-ui/src/controls/SessionFilterControls.tsx, web/packages/agenta-sessions-ui/src/index.ts
Search accepts an optional class name. Status selection uses All, Live, and Waiting segments. The public export is renamed to SessionStatusControl.
Integrate the toolbar into the sessions page
web/oss/src/components/pages/sessions/SessionsPage.tsx, web/oss/src/components/pages/sessions/components/SessionFiltersBar.tsx, web/packages/agenta-sessions-ui/src/SessionListStates.tsx
The page renders the toolbar above the session list. The toolbar supports search, status, mode, archived, and optional agent filters. Rail-specific spacing is removed.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SessionsPage
  participant SessionFiltersBar
  participant SessionFilterControls
  participant SessionList
  SessionsPage->>SessionFiltersBar: render toolbar
  SessionFiltersBar->>SessionFilterControls: render search and status controls
  SessionFilterControls->>SessionFiltersBar: return filter selections
  SessionFiltersBar->>SessionList: apply session filters
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes replacing the filters rail with the sessions toolbar layout.
Description check ✅ Passed The description accurately explains the toolbar redesign, retained filter capabilities, renamed controls, and reported verification.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/sessions-page-design-revert

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mmabrouk

mmabrouk commented Aug 9, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

…ers rail

The filters rail put a second sidebar inside the sessions page. Return to the
original toolbar design: one row above the list with search, the agent picker,
the live/waiting status choice (as a Segmented with the waiting count in its
label), the automation-runs mode switch and include-archived. All controls keep
binding to the shared filter atoms in @agenta/sessions, so nothing changes in
data or state; the rail's shell is deleted and the status control is resized
for a toolbar row.
@mmabrouk

mmabrouk commented Aug 9, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Railway Preview Environment

Status Destroyed (PR closed)

Updated at 2026-08-09T20:47:35.510Z

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🧹 Nitpick comments (1)
web/oss/src/components/pages/sessions/components/SessionFiltersBar.tsx (1)

40-43: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Memoize the Select options.

This mapping creates a new object array whenever filter state rerenders the toolbar. Memoize the array with agents as its dependency before passing it to Select.

As per coding guidelines, “Memoize inline arrays containing objects or JSX when passing them as props to avoid unnecessary rerenders.”

Proposed refactor
+import {useMemo} from "react"
+
 const SessionFiltersBar = ({waitingCount, hideAgentFilter}: Props) => {
     const {agentId, setAgentId} = useSessionFilters()
     const agents = useAtomValue(agentsWorkflowsAtom)
+    const agentOptions = useMemo(
+        () =>
+            agents.map((agent) => ({
+                value: agent.workflowId,
+                label: agent.name,
+            })),
+        [agents],
+    )

@@
-                    options={agents.map((agent) => ({
-                        value: agent.workflowId,
-                        label: agent.name,
-                    }))}
+                    options={agentOptions}

Source: Coding guidelines


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: bd7ba4a6-f165-4bd9-a5bd-bfe97b3af7bd

📥 Commits

Reviewing files that changed from the base of the PR and between 1188fb8 and c1b7e45.

📒 Files selected for processing (6)
  • web/oss/src/components/pages/sessions/SessionsPage.tsx
  • web/oss/src/components/pages/sessions/components/SessionFiltersBar.tsx
  • web/oss/src/components/pages/sessions/components/SessionFiltersRail.tsx
  • web/packages/agenta-sessions-ui/src/SessionListStates.tsx
  • web/packages/agenta-sessions-ui/src/controls/SessionFilterControls.tsx
  • web/packages/agenta-sessions-ui/src/index.ts
💤 Files with no reviewable changes (1)
  • web/oss/src/components/pages/sessions/components/SessionFiltersRail.tsx

@mmabrouk
mmabrouk merged commit dc39c05 into release/v0.112.0 Aug 9, 2026
68 of 69 checks passed
@mmabrouk mmabrouk added the lgtm This PR has been approved by a maintainer label Aug 10, 2026
ardaerzin added a commit that referenced this pull request Aug 18, 2026
…op app's

Ink bands down the content column: prod's filters bar occupies y 116–146, this
build's 128–158, with the `Sessions` title identical at 68–87 on both. The whole
12px is `SessionFiltersBar`'s own `pt-3`.

Not a dropped line — the page was rewritten in this lane (#5833) onto one shared
filters shell for desktop and mobile, and the shared bar pads for the screens
where it IS the header. This page's `PageLayout` already carries the title, so
that padding is pure double-spacing here. The page cancels the horizontal half
already (`!px-0`, with a comment saying why); `!pt-0` cancels the other half for
exactly the same reason, and mobile keeps both.

Re-measured after: 116–146 on both, light and dark. content-top 2.89% → 2.21%,
content 0.98% → 0.75%.

Left alone: the agent picker is 28px against prod's 26 — the kit SelectTrigger's
default height vs antd `size="small"`. 2px, and changing it would change every
surface including /m, where the taller target is deliberate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frontend lgtm This PR has been approved by a maintainer size:L This PR changes 100-499 lines, ignoring generated files. ui

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant