Skip to content

feat(frontend): Make Home about the work, and the overview about the agent - #5772

Closed
ardaerzin wants to merge 2 commits into
pkg/entity-ui-agentfrom
oss/home-overview
Closed

feat(frontend): Make Home about the work, and the overview about the agent#5772
ardaerzin wants to merge 2 commits into
pkg/entity-ui-agentfrom
oss/home-overview

Conversation

@ardaerzin

Copy link
Copy Markdown
Contributor

Context

First app lane of the sessions/agents UX stack. Home was a document about making agents; the agent overview was a variant table. The rework makes Home answer "what needs me" and the overview describe the agent itself. The gate for this lane: no logic in the pages; every list rule, row derivation and grouping comes from the packages below.

Changes

  • Home (StripHome) becomes a workspace: a task composer that starts a session (attachments are collected but not yet consumed; that is the top lane), the sessions and automation-runs columns bounded and grouped by @agenta/sessions, the agents roster and usage as rail cards, next triggers, and a page-level New agent action.
  • The agent overview gets configuration (built on the playground panel's own primitives), files, sessions and next triggers on the shared section language, with column-level scrolling.
  • Cross-page sections move up to components/ for reuse: UsageSummary, NextTriggers, SeedAttachments, AgentCard (now an adapter over @agenta/entity-ui/agent), NewAgentButton.
  • Session rows can open on their agent's playground from anywhere (sessionOpenTarget + pendingSessionOpen).

Tests / notes

  • @agenta/oss tsc on this lane shows exactly one error: the triggerBoundAgentId import in the lane below, which entities/trigger-helpers (targets main) resolves. Nothing else.
  • sessionOpenTarget and agentName carry unit tests.

What to QA

  • Open Home: the hero line holds New agent, the main column shows sessions needing attention, automation runs group separately, and the rail holds templates, agents, usage and next triggers.
  • Open an agent's overview: configuration summarises the revision (Instructions row shows the brief), files list the agent's mounts, sessions match Home's limit, and the composer starts a session.
  • Regression: pinning a session moves the row without reloading the list, and the rail cards scroll inside their frame instead of squeezing.

@dosubot dosubot Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Aug 6, 2026
@vercel

vercel Bot commented Aug 6, 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 6, 2026 8:59pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 707a22eb-39af-4c93-bd96-018230316f71

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Redesigned the agent Home experience for first-time and returning users.
    • Start sessions with tasks, suggested templates, and file attachments.
    • Added session lists with pinning, statuses, automation runs, waiting activity, and session actions.
    • Added agent overview pages for configuration, files, usage, recent sessions, and triggers.
    • Added improved agent creation options and template list views.
  • Bug Fixes
    • Improved session navigation and prevented duplicate blank chat tabs.
  • Documentation
    • Added a Sessions UX planning document.

Walkthrough

This change adds session handoff, shared session actions, agent overview surfaces, a redesigned Home experience, and a Sessions UX plan. It also adds seed attachments, template list support, agent activity data, full-height layout requests, and a warning color token.

Changes

Agent UX surfaces

Layer / File(s) Summary
Session handoff and actions
web/oss/src/components/AgentChatSlice/..., web/oss/src/components/Drives/agentDrive.ts
Adds pending session handoff state, playground adoption, session creation seeds, shared rename/archive/delete/pin actions, and the agent mount query swap.
Session cards and lists
web/oss/src/components/pages/sessions/components/SessionListCard.tsx, web/oss/src/components/pages/agent-home/components/HomeSessionsSection.tsx, web/oss/src/components/pages/agent-home/components/HomeAutomationsSection.tsx
Adds scoped session cards and list cards with pinned rows, waiting counts, row actions, and automation/session sections.
Agent overview surfaces
web/oss/src/components/pages/overview/agent/..., web/oss/src/pages/.../overview/index.tsx, web/oss/src/components/Layout/Layout.tsx, web/oss/src/state/layout/fullHeight.ts, web/oss/tailwind.config.ts, web/oss/src/components/pages/agents/store.ts, web/oss/src/components/pages/app-management/store/appWorkflowStore.ts, web/oss/src/components/pages/observability/dashboard/AnalyticsDashboard.tsx
Adds agent overview cards, workflow classification routing, full-height layout handling, description plumbing, stacked dashboards, and the warning background token.
Home workspace and creation flows
web/oss/src/components/pages/agent-home/..., web/oss/src/components/TemplateStrip/..., web/oss/src/components/SeedAttachments/..., web/oss/src/components/AgentCard/..., docs/design/agenta-sessions-ux/plan.md
Adds first-run and returning-user Home layouts, task submission with attachments, template list mode, agent creation controls, agent activity displays, template example data, and the Sessions UX plan.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SessionListCard
  participant useOpenAgentSession
  participant pendingSessionOpenAtom
  participant AgentChatPanel
  participant session-adoption atom
  SessionListCard->>useOpenAgentSession: open session target
  useOpenAgentSession->>pendingSessionOpenAtom: store target
  useOpenAgentSession->>AgentChatPanel: navigate to playground
  AgentChatPanel->>pendingSessionOpenAtom: consume target
  AgentChatPanel->>session-adoption atom: adopt or create session
Loading

Possibly related PRs

  • Agenta-AI/agenta#4983: Both PRs modify AgentChatPanel.tsx to manage agent playground session tabs and session state, so they are directly related.
  • Agenta-AI/agenta#5076: The PRs are directly related, sharing and extending several onboarding files and components, including AgentChatPanel, firstRunSeed, agent-home templates, YourAgentsTable, Layout, and UsageSummary.
  • Agenta-AI/agenta#5429: The main PR directly implements the agent Overview redesign planned in retrieved PR #5429, adding the AgentOverview page and its sessions, triggers, configuration, files, and usage surfaces.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the primary frontend changes to Home and the agent overview.
Description check ✅ Passed The description directly explains the Home and agent overview rework, shared components, session navigation, testing, and QA scope.
Docstring Coverage ✅ Passed Docstring coverage is 90.00% which is sufficient. The required threshold is 60.00%.
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 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch oss/home-overview

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.

@dosubot dosubot Bot added the frontend label Aug 6, 2026
@ardaerzin

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
✅ 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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 14

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

118-121: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Shorten the design-rationale comments.

These comments explain visual intent over several lines. The guidelines limit in-code comments to one short line, with longer comments reserved for surprising constraints such as bugs, races, or ordering requirements. The flex-1 vs grow note at Lines 237-241 qualifies; these two do not.

As per coding guidelines: "Keep in-code comments to at most one short line; use longer comments only for genuinely surprising constraints such as bugs, races, or ordering requirements."

Also applies to: 137-141

Source: Coding guidelines

web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentRow.tsx (2)

48-79: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Memoize the dropdown menu configuration.

Dropdown receives a new menu object, item array, and icon elements on every AgentRow render. Build the menu with useMemo and depend on actions and record.

Source: Coding guidelines


9-17: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Shorten non-essential implementation comments.

These comments explain product history or layout preference. Reduce each to one short constraint-focused line, or move the rationale to PR documentation.

  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentRow.tsx#L9-L17: reduce the roster-layout rationale to one short constraint.
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentRow.tsx#L45-L46: remove or shorten the badge-placement rationale.
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentActivityCell.tsx#L7-L13: reduce the activity-column history to one short constraint.
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentActivityCell.tsx#L19-L20: reduce the empty-state rationale to one short line.
  • web/oss/src/components/pages/agent-home/assets/agentName.ts#L8-L15: remove the historical naming explanation.
  • web/oss/src/components/pages/agent-home/assets/agentName.ts#L34-L35: use one short truncation constraint.
  • web/oss/src/components/pages/agent-home/hooks/useAgentHomeActions.ts#L17-L20: reduce the handler-placement explanation.
  • web/oss/src/components/pages/agent-home/hooks/useAgentHomeActions.ts#L50-L52: remove the historical roster explanation.
  • web/oss/src/components/TemplateStrip/components/StripRow.tsx#L8-L14: reduce the rail-layout rationale to one short constraint.
  • web/oss/src/components/TemplateStrip/components/StripRow.tsx#L45-L46: remove or shorten the badge-layout rationale.

As per coding guidelines, “Keep in-code comments to at most one short line; use longer comments only for genuinely surprising constraints such as bugs, races, or ordering requirements.”

Source: Coding guidelines

web/oss/src/components/TemplateStrip/components/StripRow.tsx (1)

28-32: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use a supported semantic color token.

bg-[var(--ag-strip-selected-bg)] bypasses the approved theme-color sources. Replace it with a semantic Tailwind color utility or a supported var(--ag-color*) variable for the selected state.

Source: Coding guidelines

web/oss/src/components/pages/agent-home/components/HomeTaskComposer.tsx (1)

29-29: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove the unused composerRef.

composerRef is only forwarded to RichChatInput. No code in this file reads the handle. Drop the ref and the useRef import if nothing else needs them.

web/oss/src/components/pages/agent-home/components/HomeSessionsSection.tsx (1)

4-4: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Drop the unused default parameter.

React always calls a component with a props object, so = {} never applies. Remove it.

-const HomeSessionsSection = ({limit}: {limit?: number} = {}) => (
+const HomeSessionsSection = ({limit}: {limit?: number}) => (
web/oss/src/components/NewAgentButton/index.tsx (2)

23-26: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Encode the template key in the query string.

goCreate interpolates templateKey directly. Use encodeURIComponent so a key that contains &, =, or a space still round-trips through router.query.template. StripHome reads that param back and matches it against AGENT_TEMPLATES.

-        void router.push(
-            templateKey ? `${baseAppURL}?new=1&template=${templateKey}` : `${baseAppURL}?new=1`,
-        )
+        void router.push(
+            templateKey
+                ? `${baseAppURL}?new=1&template=${encodeURIComponent(templateKey)}`
+                : `${baseAppURL}?new=1`,
+        )

32-86: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Memoize the dropdown items.

The menu.items array holds JSX and is rebuilt on every render of NewAgentButton. Wrap it in useMemo keyed on baseAppURL, and wrap goCreate in useCallback.

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

Source: Coding guidelines

web/oss/src/components/pages/agent-home/StripHome.tsx (2)

74-79: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Extract the create-surface URL builder.

${baseAppURL}?new=1&template=${template.key} is built here, in web/oss/src/components/NewAgentButton/index.tsx at Line 25, and ${baseAppURL}?new=1 is built again in web/oss/src/components/pages/agent-home/components/YourAgentsTable/index.tsx. Three call sites now encode the same route contract that useAgentHomeVariants parses. Put a createAgentHref(baseAppURL, templateKey?) helper next to useAgentHomeVariants and call it from all three sites. That also gives the encoding fix one home.


136-145: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Shorten the layout rationale comments.

These four blocks run 5 to 10 lines each and describe layout intent rather than a constraint a reader could break. Reduce each to one line, or move the reasoning to the PR description.

As per coding guidelines: "Keep in-code comments to at most one short line; use longer comments only for genuinely surprising constraints such as bugs, races, or ordering requirements."

Also applies to: 168-174, 248-252, 260-264

Source: Coding guidelines

web/oss/src/components/TemplateStrip/index.tsx (1)

232-267: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

These isList branches are unreachable.

The list layout returns at Line 156. Below that point layout !== "list", so isList is always false. The ternary at Line 234 always picks "text-[14.5px]", and the guard at Line 239 always renders the inline tabs. showPager at Line 132 also always takes the non-list path. Remove the three dead isList checks so a later reader does not treat them as live behavior.

♻️ Proposed cleanup
-                <span
-                    className={`font-semibold text-[var(--ag-colorText)] ${
-                        isList ? "text-[13px]" : "text-[14.5px]"
-                    }`}
-                >
+                <span className="text-[14.5px] font-semibold text-[var(--ag-colorText)]">
                     {STRIP_COPY.label}
                 </span>
-                {isList ? null : (
-                    <div className="flex items-center">
+                <div className="flex items-center">

Close the block accordingly, and simplify Line 132:

-    const showPager = isList ? false : isGrid ? filtered.length > PAGE_SIZE : scrollPager.showPager
+    const showPager = isGrid ? filtered.length > PAGE_SIZE : scrollPager.showPager
web/oss/src/components/UsageSummary/index.tsx (2)

100-103: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

The collapsed strip still mounts the full dashboard.

HeightCollapse renders its children whether or not open is true. AnalyticsDashboard therefore loads its dynamic chunk and renders four WidgetCards with charts on every page that shows the rail, including Home and the agent overview. The default variant at Line 136 avoids this by gating on expanded.

Gate the child on expanded while keeping the collapse animation for the open transition.

♻️ Proposed fix
                 <HeightCollapse open={expanded}>
-                    <AnalyticsDashboard layout="stack" showTimeRangeSelector={false} />
+                    {expanded ? (
+                        <AnalyticsDashboard layout="stack" showTimeRangeSelector={false} />
+                    ) : null}
                 </HeightCollapse>

56-58: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Update the "2×2 grid" comment.

The stats array now holds two entries, so grid-cols-2 renders a single row of two cells. The comment describes four.

web/oss/src/components/AgentCard/index.tsx (1)

8-12: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Reduce the new narrative comments.

Replace these comments with one short constraint comment, or move the product rationale to design documentation.

  • web/oss/src/components/AgentCard/index.tsx#L8-L12: reduce the adapter rationale to one short constraint comment.
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/columns.tsx#L17-L24: remove the product-history rationale.
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/index.tsx#L40-L47: reduce the variant and roster rationale.
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/index.tsx#L127-L129: remove the visual-design rationale.
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/index.tsx#L159-L160: remove the icon-selection rationale.
  • web/oss/src/components/pages/agent-home/assets/constants.ts#L36-L38: remove the copy rationale.
  • web/oss/src/components/pages/agent-home/assets/templates.ts#L24-L31: move the future-population rationale to documentation.

As per coding guidelines, “Keep in-code comments to at most one short line; use longer comments only for genuinely surprising constraints such as bugs, races, or ordering requirements.”

Source: Coding guidelines


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 84c2bac4-7a2a-44d0-8510-23c91f3ee6e9

📥 Commits

Reviewing files that changed from the base of the PR and between 468dfc5 and 0e00cd5.

📒 Files selected for processing (47)
  • docs/design/agenta-sessions-ux/plan.md
  • web/oss/src/components/AgentCard/index.tsx
  • web/oss/src/components/AgentChatSlice/AgentChatPanel.tsx
  • web/oss/src/components/AgentChatSlice/assets/sessionOpenTarget.test.ts
  • web/oss/src/components/AgentChatSlice/assets/sessionOpenTarget.ts
  • web/oss/src/components/AgentChatSlice/hooks/useOpenAgentSession.ts
  • web/oss/src/components/AgentChatSlice/hooks/useSessionActions.tsx
  • web/oss/src/components/AgentChatSlice/hooks/useStartAgentSession.ts
  • web/oss/src/components/AgentChatSlice/state/firstRunSeed.ts
  • web/oss/src/components/AgentChatSlice/state/pendingSessionOpen.ts
  • web/oss/src/components/Drives/agentDrive.ts
  • web/oss/src/components/Layout/Layout.tsx
  • web/oss/src/components/NewAgentButton/index.tsx
  • web/oss/src/components/NextTriggers/index.tsx
  • web/oss/src/components/SeedAttachments/index.tsx
  • web/oss/src/components/TemplateStrip/components/StripRow.tsx
  • web/oss/src/components/TemplateStrip/index.tsx
  • web/oss/src/components/UsageSummary/index.tsx
  • web/oss/src/components/pages/agent-home/StripHome.tsx
  • web/oss/src/components/pages/agent-home/assets/agentName.test.ts
  • web/oss/src/components/pages/agent-home/assets/agentName.ts
  • web/oss/src/components/pages/agent-home/assets/constants.ts
  • web/oss/src/components/pages/agent-home/assets/templates.ts
  • web/oss/src/components/pages/agent-home/components/HomeAutomationsSection.tsx
  • web/oss/src/components/pages/agent-home/components/HomeSessionsSection.tsx
  • web/oss/src/components/pages/agent-home/components/HomeTaskComposer.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentActivityCell.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentRow.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/columns.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/index.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/useAgentActivity.ts
  • web/oss/src/components/pages/agent-home/hooks/useAgentHomeActions.ts
  • web/oss/src/components/pages/agent-home/hooks/useAgentHomeVariants.ts
  • web/oss/src/components/pages/agent-home/index.tsx
  • web/oss/src/components/pages/agents/store.ts
  • web/oss/src/components/pages/app-management/store/appWorkflowStore.ts
  • web/oss/src/components/pages/observability/dashboard/AnalyticsDashboard.tsx
  • web/oss/src/components/pages/overview/agent/AgentConfigurationCard.tsx
  • web/oss/src/components/pages/overview/agent/AgentFilesCard.tsx
  • web/oss/src/components/pages/overview/agent/AgentOverview.tsx
  • web/oss/src/components/pages/overview/agent/agentConfigSummary.test.ts
  • web/oss/src/components/pages/overview/agent/agentConfigSummary.ts
  • web/oss/src/components/pages/overview/agent/state.ts
  • web/oss/src/components/pages/sessions/components/SessionListCard.tsx
  • web/oss/src/pages/w/[workspace_id]/p/[project_id]/apps/[app_id]/overview/index.tsx
  • web/oss/src/state/layout/fullHeight.ts
  • web/oss/tailwind.config.ts

Comment thread docs/design/agenta-sessions-ux/plan.md Outdated
Comment thread web/oss/src/components/AgentChatSlice/AgentChatPanel.tsx
Comment thread web/oss/src/components/pages/agent-home/assets/agentName.test.ts
Comment thread web/oss/src/components/pages/agent-home/components/HomeTaskComposer.tsx Outdated
Comment thread web/oss/src/components/pages/agent-home/StripHome.tsx Outdated
Comment on lines +157 to +175
<Tooltip title={vm.isPinned ? "Unpin" : "Pin"}>
<span
role="button"
tabIndex={-1}
aria-label={vm.isPinned ? "Unpin session" : "Pin session"}
onClick={(event) => {
event.stopPropagation()
togglePin(vm.id)
}}
className={`shrink-0 text-colorTextTertiary ${
vm.isPinned ? "" : "opacity-0 group-hover:opacity-100"
}`}
>
<PushPinIcon
size={14}
weight={vm.isPinned ? "fill" : "regular"}
/>
</span>
</Tooltip>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Make the pin control keyboard reachable and move it out of the row button.

The pin control is a span with role="button" and tabIndex={-1}. Keyboard users cannot reach it, so pinning is impossible without a mouse. The control is also nested inside the row <button> (Line 113), which is invalid interactive nesting and can break assistive technology.

Render the row button and the pin control as siblings inside a wrapper, and give the pin control tabIndex={0} plus a key handler, or make it a real <button type="button">.

♿ Sketch of the structural fix
-                                <Tooltip title={vm.isPinned ? "Unpin" : "Pin"}>
-                                    <span
-                                        role="button"
-                                        tabIndex={-1}
+                                <Tooltip title={vm.isPinned ? "Unpin" : "Pin"}>
+                                    <button
+                                        type="button"
                                         aria-label={vm.isPinned ? "Unpin session" : "Pin session"}
                                         onClick={(event) => {
                                             event.stopPropagation()
                                             togglePin(vm.id)
                                         }}
-                                        className={`shrink-0 text-colorTextTertiary ${
+                                        className={`shrink-0 cursor-pointer border-0 bg-transparent p-0 text-colorTextTertiary ${
                                             vm.isPinned ? "" : "opacity-0 group-hover:opacity-100"
                                         }`}
                                     >
                                         <PushPinIcon
                                             size={14}
                                             weight={vm.isPinned ? "fill" : "regular"}
                                         />
-                                    </span>
+                                    </button>
                                 </Tooltip>

Note: a nested <button> is still invalid inside a <button>. Change the row element to a <div role="button"> wrapper with the title area as the clickable region, or lift the pin control to a sibling of the row button.

Comment thread web/oss/src/components/TemplateStrip/index.tsx
@ardaerzin

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

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.

@ardaerzin

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

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.

@ardaerzin

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
✅ 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.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
web/oss/src/components/pages/agent-home/components/HomeAutomationsSection.tsx (1)

3-20: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Reduce the new explanatory comments.

Keep only a short comment when the code needs context. Remove comments that restate component intent or prop behavior.

  • web/oss/src/components/pages/agent-home/components/HomeAutomationsSection.tsx#L3-L20: Replace the multi-line product and layout explanations with at most one short comment for the non-obvious trigger filter behavior.
  • web/oss/src/components/NextTriggers/index.tsx#L8-L11: Remove the adapter comment or reduce it to one short line.

As per coding guidelines, "Keep in-code comments to at most one short line; use longer comments only for genuinely surprising constraints such as bugs, races, or ordering requirements."

Source: Coding guidelines


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2e5fb835-3be1-4080-a5fe-d24e4c9e6f46

📥 Commits

Reviewing files that changed from the base of the PR and between f092df6 and 1ca64a0.

📒 Files selected for processing (47)
  • docs/design/agenta-sessions-ux/plan.md
  • web/oss/src/components/AgentCard/index.tsx
  • web/oss/src/components/AgentChatSlice/AgentChatPanel.tsx
  • web/oss/src/components/AgentChatSlice/assets/sessionOpenTarget.test.ts
  • web/oss/src/components/AgentChatSlice/assets/sessionOpenTarget.ts
  • web/oss/src/components/AgentChatSlice/hooks/useOpenAgentSession.ts
  • web/oss/src/components/AgentChatSlice/hooks/useSessionActions.tsx
  • web/oss/src/components/AgentChatSlice/hooks/useStartAgentSession.ts
  • web/oss/src/components/AgentChatSlice/state/firstRunSeed.ts
  • web/oss/src/components/AgentChatSlice/state/pendingSessionOpen.ts
  • web/oss/src/components/Drives/agentDrive.ts
  • web/oss/src/components/Layout/Layout.tsx
  • web/oss/src/components/NewAgentButton/index.tsx
  • web/oss/src/components/NextTriggers/index.tsx
  • web/oss/src/components/SeedAttachments/index.tsx
  • web/oss/src/components/TemplateStrip/components/StripRow.tsx
  • web/oss/src/components/TemplateStrip/index.tsx
  • web/oss/src/components/UsageSummary/index.tsx
  • web/oss/src/components/pages/agent-home/StripHome.tsx
  • web/oss/src/components/pages/agent-home/assets/agentName.test.ts
  • web/oss/src/components/pages/agent-home/assets/agentName.ts
  • web/oss/src/components/pages/agent-home/assets/constants.ts
  • web/oss/src/components/pages/agent-home/assets/templates.ts
  • web/oss/src/components/pages/agent-home/components/HomeAutomationsSection.tsx
  • web/oss/src/components/pages/agent-home/components/HomeSessionsSection.tsx
  • web/oss/src/components/pages/agent-home/components/HomeTaskComposer.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentActivityCell.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentRow.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/columns.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/index.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/useAgentActivity.ts
  • web/oss/src/components/pages/agent-home/hooks/useAgentHomeActions.ts
  • web/oss/src/components/pages/agent-home/hooks/useAgentHomeVariants.ts
  • web/oss/src/components/pages/agent-home/index.tsx
  • web/oss/src/components/pages/agents/store.ts
  • web/oss/src/components/pages/app-management/store/appWorkflowStore.ts
  • web/oss/src/components/pages/observability/dashboard/AnalyticsDashboard.tsx
  • web/oss/src/components/pages/overview/agent/AgentConfigurationCard.tsx
  • web/oss/src/components/pages/overview/agent/AgentFilesCard.tsx
  • web/oss/src/components/pages/overview/agent/AgentOverview.tsx
  • web/oss/src/components/pages/overview/agent/agentConfigSummary.test.ts
  • web/oss/src/components/pages/overview/agent/agentConfigSummary.ts
  • web/oss/src/components/pages/overview/agent/state.ts
  • web/oss/src/components/pages/sessions/components/SessionListCard.tsx
  • web/oss/src/pages/w/[workspace_id]/p/[project_id]/apps/[app_id]/overview/index.tsx
  • web/oss/src/state/layout/fullHeight.ts
  • web/oss/tailwind.config.ts
🚧 Files skipped from review as they are similar to previous changes (43)
  • web/oss/src/components/pages/overview/agent/state.ts
  • web/oss/src/components/pages/agents/store.ts
  • web/oss/src/components/AgentCard/index.tsx
  • web/oss/src/components/pages/agent-home/hooks/useAgentHomeVariants.ts
  • web/oss/src/components/pages/agent-home/assets/constants.ts
  • web/oss/src/components/pages/app-management/store/appWorkflowStore.ts
  • web/oss/src/components/pages/agent-home/hooks/useAgentHomeActions.ts
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/useAgentActivity.ts
  • web/oss/src/components/pages/agent-home/index.tsx
  • web/oss/src/components/pages/agent-home/assets/agentName.ts
  • web/oss/src/components/AgentChatSlice/assets/sessionOpenTarget.test.ts
  • web/oss/src/components/AgentChatSlice/hooks/useStartAgentSession.ts
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentActivityCell.tsx
  • web/oss/src/state/layout/fullHeight.ts
  • web/oss/src/components/AgentChatSlice/state/pendingSessionOpen.ts
  • web/oss/src/components/AgentChatSlice/assets/sessionOpenTarget.ts
  • web/oss/src/components/pages/observability/dashboard/AnalyticsDashboard.tsx
  • web/oss/src/components/TemplateStrip/components/StripRow.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/AgentRow.tsx
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/columns.tsx
  • web/oss/src/components/pages/overview/agent/AgentFilesCard.tsx
  • web/oss/src/components/AgentChatSlice/state/firstRunSeed.ts
  • web/oss/src/components/AgentChatSlice/AgentChatPanel.tsx
  • web/oss/src/components/pages/agent-home/assets/agentName.test.ts
  • web/oss/src/components/pages/agent-home/components/HomeTaskComposer.tsx
  • web/oss/src/components/UsageSummary/index.tsx
  • web/oss/tailwind.config.ts
  • web/oss/src/components/NewAgentButton/index.tsx
  • web/oss/src/components/pages/overview/agent/AgentOverview.tsx
  • web/oss/src/components/pages/overview/agent/agentConfigSummary.ts
  • web/oss/src/components/Layout/Layout.tsx
  • web/oss/src/components/pages/agent-home/assets/templates.ts
  • web/oss/src/components/AgentChatSlice/hooks/useSessionActions.tsx
  • web/oss/src/components/SeedAttachments/index.tsx
  • web/oss/src/components/pages/overview/agent/AgentConfigurationCard.tsx
  • web/oss/src/components/pages/overview/agent/agentConfigSummary.test.ts
  • web/oss/src/components/Drives/agentDrive.ts
  • web/oss/src/components/pages/agent-home/components/HomeSessionsSection.tsx
  • web/oss/src/components/pages/agent-home/StripHome.tsx
  • web/oss/src/components/pages/sessions/components/SessionListCard.tsx
  • web/oss/src/components/TemplateStrip/index.tsx
  • web/oss/src/components/AgentChatSlice/hooks/useOpenAgentSession.ts
  • web/oss/src/components/pages/agent-home/components/YourAgentsTable/index.tsx

Comment thread docs/design/agenta-sessions-ux/plan.md Outdated
Comment on lines +193 to +199
- `openAgentSession({sessionId, appId, title})` → `router.push(`${baseAppURL}/${appId}/playground`)`,
carrying the target through a small carrier atom (`pendingSessionOpenAtom`) because the
playground page mounts after navigation. Precedent: `agentFirstRunSeedAtom`
(`AgentChatSlice/state/firstRunSeed.ts`) solves the identical handoff.
- Consumed after the chat scope resolves → `adoptSessionAtomFamily(appId)({id, title})`, which
already handles the "this browser has never seen this session" case; records hydration then
fills the transcript.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== target doc excerpt =="
sed -n '180,210p' docs/design/agenta-sessions-ux/plan.md || true

echo
echo "== find identifier usages =="
rg -n "openAgentSession|pendingSessionOpenAtom|sessionOpenTarget|pendingSessionOpen|adoptSessionAtomFamily" . || true

echo
echo "== locate relevant files =="
git ls-files | rg 'firstRunSeed|session|Atom|Atoms|atoms' | head -200

Repository: Agenta-AI/agenta

Length of output: 19567


Use the actual session-opener APIs in the deep-link plan.

Update this section to call sessionOpenTarget(row) for the target, then dispatch pendingSessionOpenAtom before navigation; the plan should not expose openAgentSession(...) or pendingSessionOpenAtom unless those names are real exports.

Comment on lines +282 to +289
1. ~~**Origin stamp**~~ — pulled forward and built, because the list was otherwise shipping with
automation runs mixed into your own work. The dispatcher mints the session id, stamps
`tags["ag.origin"]`, and records it on the delivery; the query grows `origin` /
`exclude_origin`, and the list hides automations by default. Both dispatch compositions —
the in-process one in `routers.py` and the queue worker in `worker_queues.py` — build a
`SessionStreamsService`, so a trigger is stamped whichever path runs it.
2. ~~**Delivery → session link**~~ — built with the stamp above. Home's automation rows can now
resolve their session; wiring the click is the remaining FE step.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Make the backend checkpoint status consistent.

This section marks the origin stamp and delivery-to-session link as built. Earlier sections still state that no origin marker exists and that automation rows lack a session link at Lines 234 and 266-267. Update those sections or label them explicitly as pre-change facts. Keep one authoritative status for this contract.

…ut the agent

Home becomes a workspace: a task composer, the sessions and automation-runs columns, the agents roster and usage as rail cards, next triggers, and a page-level New agent action. The agent overview gets its configuration, files, sessions and triggers on the same section language. Cross-page sections (UsageSummary, NextTriggers, SeedAttachments, AgentCard, NewAgentButton) move up to components/ for reuse, all composing the packages below — no list or grouping logic lives in the pages.
…gents

The rail card rendered the whole roster, so a project with many agents pushed
the sessions below the fold. It now sorts by updatedAt (the query's descending
window follows creation) and shows five; the full list stays one click away
behind All agents.
@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Aug 9, 2026
@mmabrouk

mmabrouk commented Aug 9, 2026

Copy link
Copy Markdown
Member

Landed in release/v0.112.0 as part of the 0.112.0 release. The release branch now contains this work at commit ae71a92. Closing here since there is nothing left to merge.

@mmabrouk mmabrouk closed this Aug 9, 2026
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:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants