feat: add agent session route#80
Conversation
WalkthroughRemoved per-agent session UI from the sidebar and moved session-creation control into a SessionCreate provider; introduced agent-scoped routes ( Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Sidebar
participant Router
participant AppLayout
participant SessionCreateProvider as SessionCreateCtx
participant AgentDetail
participant API
User->>Sidebar: Click agent row or New session
Sidebar->>Router: Navigate to /agents/$name
Router->>AppLayout: route change
AppLayout->>SessionCreateCtx: provide session-create context
User->>AgentDetail: Open /agents/$name
AgentDetail->>SessionCreateCtx: useSessionCreate()
User->>AgentDetail: Click "New session"
AgentDetail->>SessionCreateCtx: openForAgent(name)
SessionCreateCtx->>User: Show create dialog
User->>SessionCreateCtx: Submit create
SessionCreateCtx->>API: Create session (includes agent_name)
API-->>SessionCreateCtx: Return created session (id, agent_name)
SessionCreateCtx->>Router: Navigate to /agents/$name/sessions/$id
Router->>AgentDetail: Load nested session page
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (8)
web/src/systems/agent/components/stories/agent-info-panel.stories.tsx (1)
36-36: Prefer aninterfaceforFrameprops.Use a named interface for the component props instead of an inline object shape in the function signature.
♻️ Suggested refactor
+import type { ReactNode } from "react"; import type { Meta, StoryObj } from "@storybook/react-vite"; @@ -function Frame({ children }: { children: React.ReactNode }) { +interface FrameProps { + children: ReactNode; +} + +function Frame({ children }: FrameProps) {As per coding guidelines,
**/*.{ts,tsx}: Useinterfacefor defining object shapes in TypeScript instead oftypedeclarations.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/systems/agent/components/stories/agent-info-panel.stories.tsx` at line 36, Replace the inline prop type in the Frame component signature with a named interface: define an interface FrameProps { children: React.ReactNode } and update the component to use FrameProps in its parameter (function Frame({ children }: FrameProps)). Ensure the interface is exported if used elsewhere and adjust any imports/usage accordingly.web/src/systems/session/contexts/session-create-context.tsx (1)
12-18: Extract provider props into aninterface.The provider is fine functionally, but props should be modeled with a named interface instead of an inline object shape.
♻️ Suggested refactor
+import type { ReactNode } from "react"; import { createContext } from "react"; @@ +interface SessionCreateProviderProps { + value: SessionCreateContextValue; + children: ReactNode; +} + export function SessionCreateProvider({ value, children, -}: { - value: SessionCreateContextValue; - children: React.ReactNode; -}) { +}: SessionCreateProviderProps) { return <SessionCreateContext.Provider value={value}>{children}</SessionCreateContext.Provider>; }As per coding guidelines,
**/*.{ts,tsx}: Useinterfacefor defining object shapes in TypeScript instead oftypedeclarations.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/systems/session/contexts/session-create-context.tsx` around lines 12 - 18, Refactor the inline props object for the SessionCreateProvider function into a named interface: create an interface (e.g., SessionCreateProviderProps) that defines value: SessionCreateContextValue and children: React.ReactNode, then update the SessionCreateProvider signature to accept (props: SessionCreateProviderProps) or destructure ({ value, children }: SessionCreateProviderProps); ensure you reference the existing SessionCreateContextValue type and keep behavior unchanged.web/src/systems/agent/components/agent-stats-grid.tsx (1)
60-66: Share the failure predicate withsession-status.ts.This condition duplicates the stopped/failed classification from
web/src/systems/agent/lib/session-status.ts. If one side changes, the badge inAgentSessionsListand this counter will drift. A shared helper would keep both views consistent.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/systems/agent/components/agent-stats-grid.tsx` around lines 60 - 66, Extract the failure/stopped predicate into a shared function in web/src/systems/agent/lib/session-status.ts (e.g., export function isSessionFailed(session): boolean) that encapsulates the logic currently duplicated, then import and use that helper in web/src/systems/agent/components/agent-stats-grid.tsx (replace the inline if condition) and also update AgentSessionsList to call the same function so both views share the single source of truth.web/src/routes/_app/agents.$name.tsx (1)
18-25: This still fetches agent detail data on nested session routes.
useAgentDetailPage(name)runs before the child-route early return, so/agents/$name/sessions/$idstill pays for the agent + sessions queries even though this component renders only<Outlet />. The clean fix is to move the detail shell into an index child route and let this parent route stay as a layout route.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/routes/_app/agents`.$name.tsx around lines 18 - 25, AgentDetailPage currently calls useAgentDetailPage(name) before returning early for nested routes, causing unnecessary agent+sessions queries on child routes; fix by making this parent a pure layout route that only reads Route.useParams() and useChildMatches() and returns <Outlet /> without calling useAgentDetailPage, then move the existing "detail shell" UI and the useAgentDetailPage(name) call into a new index child route component (e.g., AgentDetailIndex or AgentDetailShell) and wire it as the index child so only the index route runs the agent queries while nested session routes render the parent layout without fetching.web/src/components/app-sidebar.test.tsx (1)
263-272: Make this route mock param-aware.The current stub keys only on
to, so settingmatchedRouteFuzzy["/agents/$name"] = truewould mark every agent row active. That makes this assertion non-discriminating for thenameparam handling you want to cover.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/components/app-sidebar.test.tsx` around lines 263 - 272, The test sets matchedRouteFuzzy["/agents/$name"] which is not param-aware and thus marks every agent active; update the stub to target the concrete agent route by using the agent's name (e.g., set matchedRouteFuzzy["/agents/<agentName>"] = true for the agent created in the test) so the assertion in the test ("highlights the agent row whose route is active...") actually verifies name-specific matching; change the assignment before calling renderSidebar (referencing matchedRouteFuzzy and the agent created in renderSidebar/makeProps) to use the specific agent route string.web/src/routes/_app/stories/-agents.$name.stories.tsx (2)
87-104: Consider adding aplayfunction to verify agent loading state.Similar to
SessionsLoading, theAgentLoadingstory would benefit from aplayfunction to verify the loading UI is rendered.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/routes/_app/stories/-agents`.$name.stories.tsx around lines 87 - 104, AgentLoading story lacks an automated check for the loading UI; add a play function to the AgentLoading export that mirrors SessionsLoading's approach: render via StorybookWorkspaceSetup, then use Testing Library queries (e.g., getByRole/getByText or findBy*) to assert loading indicators are present while the mocked /api/agents/:name delay is active; update the AgentLoading object to include a play async function that awaits the loading element and asserts its visibility to verify the loading state.
68-85: Consider adding aplayfunction to verify loading state.The
SessionsLoadingstory lacks aplayfunction assertion to verify the loading UI renders. While the infinite delay ensures the loading state persists, adding an assertion would make the test more explicit.🔧 Suggested addition
export const SessionsLoading: Story = { args: {}, parameters: { ...appRouteParameters(codexAgentRoute), ...storybookMswParameters({ session: [ http.get("/api/sessions", async () => { await delay("infinite"); return HttpResponse.json({ sessions: [] }); }), ], }), }, render: () => <StorybookWorkspaceSetup />, + tags: ["play-fn"], + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await expect(canvas.findByTestId("agent-sessions-loading")).resolves.toBeDefined(); + }, };🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/routes/_app/stories/-agents`.$name.stories.tsx around lines 68 - 85, The SessionsLoading story currently only simulates an infinite loading delay but lacks a play function to assert the loading UI; add a play method on the SessionsLoading export that mounts the rendered StorybookWorkspaceSetup and uses testing-library queries (e.g., within canvasElement via screen.getByText or getByRole) to assert the presence of the expected loading indicator text or spinner (match the app's loading label), ensuring the test explicitly verifies the loading state for SessionsLoading.web/src/systems/agent/components/agent-sessions-list.tsx (1)
162-177: Consider memoizingDate.now()for consistent relative time.
formatRelativeTimecallsDate.now()on each invocation (line 166). If multiple sessions render close together, they may get slightly different "now" values, causing inconsistent relative times within the same render pass. This is a minor visual inconsistency, not a bug.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/systems/agent/components/agent-sessions-list.tsx` around lines 162 - 177, The function formatRelativeTime currently calls Date.now() each time which can yield slightly different "now" values across renders; update formatRelativeTime to accept an optional now: number parameter (or a second overload) and use that instead of calling Date.now() internally, and then capture a single const now = Date.now() in the rendering scope (where sessions are mapped) and pass that shared now into each formatRelativeTime call so all session timestamps are computed against the same reference instant.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@web/src/routes/_app/agents`.$name.sessions.$id.tsx:
- Around line 125-136: The onDeleteSuccess handler uses the possibly-stale route
param name when navigating after deletion; change it to use the resolved agent
name from the session (e.g., session.agent_name ?? name) so the redirect is
canonical. Update the onDeleteSuccess in SessionPageContent's props to call
navigate({ to: "/agents/$name", params: { name: session.agent_name ?? name } })
(or compute a resolvedAgentName variable) to ensure consistent post-delete
routing.
In `@web/src/routes/_app/agents`.$name.tsx:
- Around line 79-85: AgentStatsGrid is currently rendered with page.sessions
even when session data is loading or errored, causing misleading
zero/placeholder metrics; update the render logic so AgentStatsGrid is only
shown when sessions are successfully loaded (i.e., !page.sessionsLoading &&
!page.sessionsError && page.sessions) or modify AgentStatsGrid to accept and
respect explicit loading/error props (e.g., sessionsLoading/sessionsError) and
render loading/error variants instead—mirror the same gating used by
AgentSessionsList (agentName, sessions, isLoading, isError) so the grid never
displays authoritative metrics while data is unresolved.
In `@web/src/systems/agent/components/stories/agent-sessions-list.stories.tsx`:
- Around line 13-33: codexSessionsWithFailure currently spreads codexSessions[0]
without checking its existence which will throw during module evaluation if
codexSessions no longer contains the expected fixture; update the construction
of codexSessionsWithFailure (and any use of codexSessions[0]) to either (a)
build the failure session from an explicit base fixture object (copy required
fields and override id/name/state/etc.) instead of spreading codexSessions[0],
or (b) first guard the lookup by checking that codexSessions &&
codexSessions.length > 0 and fall back to a safe default baseSession when
missing; adjust the identifier referenced (codexSessionsWithFailure,
codexSessions[0]) accordingly so the story never throws at import time.
- Around line 53-59: The Frame component uses React.ReactNode but
React/ReactNode isn't explicitly imported which breaks TypeScript with the
react-jsx runtime; update the top of the file to add an explicit type import
(e.g., import type { ReactNode } from "react") and then change the component
signature to use ReactNode ({ children }: { children: ReactNode }) — apply the
same explicit type import and replacement in other story files that use
React.ReactNode (e.g., tasks-kanban-board.stories.tsx,
tasks-list-panel.stories.tsx).
In `@web/src/systems/agent/components/stories/agent-stats-grid.stories.tsx`:
- Around line 45-63: The test fixture builds failedSessions by spreading
richSessions[0] without ensuring richSessions is non-empty, which can spread
undefined and crash; update the failedSessions construction (the failedSessions
constant that references richSessions[0]) to guard against an empty richSessions
– e.g., check richSessions.length and if empty use a safe fallback object (a
minimal session shape or the first item from sessionFixtures) or skip adding the
failure case so the fixture remains valid when no "codex-agent" sessions exist.
---
Nitpick comments:
In `@web/src/components/app-sidebar.test.tsx`:
- Around line 263-272: The test sets matchedRouteFuzzy["/agents/$name"] which is
not param-aware and thus marks every agent active; update the stub to target the
concrete agent route by using the agent's name (e.g., set
matchedRouteFuzzy["/agents/<agentName>"] = true for the agent created in the
test) so the assertion in the test ("highlights the agent row whose route is
active...") actually verifies name-specific matching; change the assignment
before calling renderSidebar (referencing matchedRouteFuzzy and the agent
created in renderSidebar/makeProps) to use the specific agent route string.
In `@web/src/routes/_app/agents`.$name.tsx:
- Around line 18-25: AgentDetailPage currently calls useAgentDetailPage(name)
before returning early for nested routes, causing unnecessary agent+sessions
queries on child routes; fix by making this parent a pure layout route that only
reads Route.useParams() and useChildMatches() and returns <Outlet /> without
calling useAgentDetailPage, then move the existing "detail shell" UI and the
useAgentDetailPage(name) call into a new index child route component (e.g.,
AgentDetailIndex or AgentDetailShell) and wire it as the index child so only the
index route runs the agent queries while nested session routes render the parent
layout without fetching.
In `@web/src/routes/_app/stories/-agents`.$name.stories.tsx:
- Around line 87-104: AgentLoading story lacks an automated check for the
loading UI; add a play function to the AgentLoading export that mirrors
SessionsLoading's approach: render via StorybookWorkspaceSetup, then use Testing
Library queries (e.g., getByRole/getByText or findBy*) to assert loading
indicators are present while the mocked /api/agents/:name delay is active;
update the AgentLoading object to include a play async function that awaits the
loading element and asserts its visibility to verify the loading state.
- Around line 68-85: The SessionsLoading story currently only simulates an
infinite loading delay but lacks a play function to assert the loading UI; add a
play method on the SessionsLoading export that mounts the rendered
StorybookWorkspaceSetup and uses testing-library queries (e.g., within
canvasElement via screen.getByText or getByRole) to assert the presence of the
expected loading indicator text or spinner (match the app's loading label),
ensuring the test explicitly verifies the loading state for SessionsLoading.
In `@web/src/systems/agent/components/agent-sessions-list.tsx`:
- Around line 162-177: The function formatRelativeTime currently calls
Date.now() each time which can yield slightly different "now" values across
renders; update formatRelativeTime to accept an optional now: number parameter
(or a second overload) and use that instead of calling Date.now() internally,
and then capture a single const now = Date.now() in the rendering scope (where
sessions are mapped) and pass that shared now into each formatRelativeTime call
so all session timestamps are computed against the same reference instant.
In `@web/src/systems/agent/components/agent-stats-grid.tsx`:
- Around line 60-66: Extract the failure/stopped predicate into a shared
function in web/src/systems/agent/lib/session-status.ts (e.g., export function
isSessionFailed(session): boolean) that encapsulates the logic currently
duplicated, then import and use that helper in
web/src/systems/agent/components/agent-stats-grid.tsx (replace the inline if
condition) and also update AgentSessionsList to call the same function so both
views share the single source of truth.
In `@web/src/systems/agent/components/stories/agent-info-panel.stories.tsx`:
- Line 36: Replace the inline prop type in the Frame component signature with a
named interface: define an interface FrameProps { children: React.ReactNode }
and update the component to use FrameProps in its parameter (function Frame({
children }: FrameProps)). Ensure the interface is exported if used elsewhere and
adjust any imports/usage accordingly.
In `@web/src/systems/session/contexts/session-create-context.tsx`:
- Around line 12-18: Refactor the inline props object for the
SessionCreateProvider function into a named interface: create an interface
(e.g., SessionCreateProviderProps) that defines value: SessionCreateContextValue
and children: React.ReactNode, then update the SessionCreateProvider signature
to accept (props: SessionCreateProviderProps) or destructure ({ value, children
}: SessionCreateProviderProps); ensure you reference the existing
SessionCreateContextValue type and keep behavior unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: c530d969-c64c-4143-8b69-1b37ce232304
📒 Files selected for processing (34)
web/src/components/app-sidebar.test.tsxweb/src/components/app-sidebar.tsxweb/src/components/stories/app-sidebar.stories.tsxweb/src/hooks/routes/use-agent-detail-page.tsweb/src/hooks/routes/use-app-layout.test.tsxweb/src/hooks/routes/use-app-layout.tsweb/src/hooks/use-sessions-by-agent.tsweb/src/routeTree.gen.tsweb/src/routes/-_app.test.tsxweb/src/routes/_app.tsxweb/src/routes/_app/-agents.$name.sessions.$id.test.tsxweb/src/routes/_app/agents.$name.sessions.$id.tsxweb/src/routes/_app/agents.$name.tsxweb/src/routes/_app/session.$id.tsxweb/src/routes/_app/stories/-agents.$name.sessions.$id.stories.tsxweb/src/routes/_app/stories/-agents.$name.stories.tsxweb/src/systems/agent/components/agent-info-panel.tsxweb/src/systems/agent/components/agent-page-header.tsxweb/src/systems/agent/components/agent-sessions-list.tsxweb/src/systems/agent/components/agent-stats-grid.tsxweb/src/systems/agent/components/stories/agent-info-panel.stories.tsxweb/src/systems/agent/components/stories/agent-page-header.stories.tsxweb/src/systems/agent/components/stories/agent-sessions-list.stories.tsxweb/src/systems/agent/components/stories/agent-stats-grid.stories.tsxweb/src/systems/agent/hooks/use-agent-sessions.tsweb/src/systems/agent/index.tsweb/src/systems/agent/lib/session-status.tsweb/src/systems/session/contexts/session-create-context.tsxweb/src/systems/session/hooks/use-session-create-dialog.test.tsxweb/src/systems/session/hooks/use-session-create-dialog.tsweb/src/systems/session/hooks/use-session-create.tsweb/src/systems/session/index.tsweb/src/systems/tasks/components/task-run-detail-header.tsxweb/src/systems/tasks/components/task-run-detail-panels.tsx
💤 Files with no reviewable changes (3)
- web/src/hooks/routes/use-app-layout.ts
- web/src/hooks/use-sessions-by-agent.ts
- web/src/components/stories/app-sidebar.stories.tsx
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (1)
web/src/storybook/web-storybook-stories-and-fixtures.test.tsx (1)
30-32: Avoid new deep cross-system imports for agent stories.Lines 30-32 reach into
@/systems/agent/components/stories/...internals from outside the agent system. Prefer importing through a public barrel (or an explicit@/systems/agent/storybookbarrel) to keep boundaries stable.As per coding guidelines, "Cross-system imports MUST only go through the public barrel (
@/systems/<domain>). Never reach into another system's internals".🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/storybook/web-storybook-stories-and-fixtures.test.tsx` around lines 30 - 32, The three deep imports importing "@/systems/agent/components/stories/agent-info-panel.stories", "@/systems/agent/components/stories/agent-sessions-list.stories", and "@/systems/agent/components/stories/agent-stats-grid.stories" violate the cross-system import rule; replace these with the public barrel export for the agent system (e.g., import the stories from "@/systems/agent" or the explicit "@/systems/agent/storybook" barrel) so external code only imports through the system’s public surface; update the import statements in web-storybook-stories-and-fixtures.test.tsx to reference the barrel that re-exports agent stories (or add such a barrel in the agent system if missing) and remove direct references to the internal components/stories paths.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@web/src/routes/_app/-agents`.$name.test.tsx:
- Around line 6-7: Replace the direct imports from internal mock modules with
the public system barrels: stop importing primaryAgentFixture from
"@/systems/agent/mocks" and primarySessionFixture from "@/systems/session/mocks"
and instead import those fixtures from their public barrels (e.g.,
"@/systems/agent" and "@/systems/session" or from the barrel export you add).
Update the import statements that reference primaryAgentFixture and
primarySessionFixture so they come from the respective public barrel exports; if
the fixtures aren’t yet re-exported from the public barrel, add re-exports for
primaryAgentFixture and primarySessionFixture in the systems' index barrel files
and then import them from those barrels.
In `@web/src/routes/_app/agents`.$name.sessions.$id.tsx:
- Around line 99-103: The redirect for a "Session not found" error inside the
useEffect should replace the history entry instead of pushing a new one; update
the navigate call in the useEffect (the branch that calls toast.error("Session
not found")) to include replace: true (i.e., navigate({ to: "/agents/$name",
params: { name }, replace: true })) so users can't hit Back into the broken
session URL—locate the useEffect handling error?.message.includes("not found")
and modify that navigate invocation.
In `@web/src/systems/agent/components/agent-sessions-list.test.tsx`:
- Around line 5-6: Tests are importing internal symbols directly
(primarySessionFixture and SessionPayload) from "@/systems/session/mocks" and
"@/systems/session/types"; update the test in agent-sessions-list.test.tsx to
import these symbols from the public barrel "@/systems/session" instead, and if
those exports are not yet re-exported from the barrel, add primarySessionFixture
and SessionPayload to the session module's public exports so the test can
consume them via "@/systems/session".
In `@web/src/systems/agent/components/agent-sessions-list.tsx`:
- Around line 68-124: The component AgentSessionRow uses ad-hoc Tailwind
utilities (w-[42%], text-[13px], text-[10px], text-[12px], tracking-[0.06em])
inside the TableHead and Link spans; replace those arbitrary sizes with the
design tokens from DESIGN.md / packages/ui/src/tokens.css (e.g., use
token-backed classes for widths, font sizes, tracking, and text color variables)
by updating the className values in AgentSessionRow (and the TableHead element)
to the corresponding token classes/vars (font-size token for the session title,
small-caps/mono token for provider and meta text, spacing tokens for gaps, and a
width token for the Session TableHead) so all sizing/typography references come
from the approved design tokens.
- Around line 145-148: formatDuration currently treats 0 as invalid because the
guard checks seconds <= 0, causing newly started sessions to show "—"; change
the validation in formatDuration to only reject negative or non-number values
(e.g., use seconds < 0 or explicitly test for negative numbers) or add a
special-case that returns "0s" when seconds === 0, so zero seconds render as
"0s" instead of "—" (update the function named formatDuration accordingly).
In `@web/src/systems/agent/components/agent-stats-grid.test.tsx`:
- Around line 4-6: The test is importing session internals directly
(primarySessionFixture, SessionPayload) instead of the public session barrel;
change the imports in agent-stats-grid.test.tsx to import these symbols from
"@/systems/session" (e.g. import { primarySessionFixture, type SessionPayload }
from "@/systems/session") and if those symbols are not currently re-exported by
the session barrel, add them to the session system's public index (re-export
primarySessionFixture and SessionPayload from the session module) so
cross-system imports use only the public barrel; keep the AgentStatsGrid import
as-is.
---
Nitpick comments:
In `@web/src/storybook/web-storybook-stories-and-fixtures.test.tsx`:
- Around line 30-32: The three deep imports importing
"@/systems/agent/components/stories/agent-info-panel.stories",
"@/systems/agent/components/stories/agent-sessions-list.stories", and
"@/systems/agent/components/stories/agent-stats-grid.stories" violate the
cross-system import rule; replace these with the public barrel export for the
agent system (e.g., import the stories from "@/systems/agent" or the explicit
"@/systems/agent/storybook" barrel) so external code only imports through the
system’s public surface; update the import statements in
web-storybook-stories-and-fixtures.test.tsx to reference the barrel that
re-exports agent stories (or add such a barrel in the agent system if missing)
and remove direct references to the internal components/stories paths.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 5cfdd11a-0344-4ef3-af35-c19bf6b84bbb
⛔ Files ignored due to path filters (34)
.compozy/tasks/qa-rounds/reviews-001/_meta.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_001.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_002.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_003.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_004.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_005.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_006.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_007.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_008.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_009.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_010.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_011.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_012.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_013.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_014.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_015.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_016.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_017.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_018.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_019.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_020.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_021.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_022.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_023.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_024.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_025.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_026.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_027.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_028.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_029.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_030.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_031.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_032.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-001/issue_033.mdis excluded by!**/*.md
📒 Files selected for processing (16)
web/src/components/app-sidebar.test.tsxweb/src/routes/_app/-agents.$name.sessions.$id.test.tsxweb/src/routes/_app/-agents.$name.test.tsxweb/src/routes/_app/agents.$name.sessions.$id.tsxweb/src/routes/_app/agents.$name.tsxweb/src/routes/_app/stories/-agents.$name.stories.tsxweb/src/storybook/web-storybook-stories-and-fixtures.test.tsxweb/src/systems/agent/components/agent-sessions-list.test.tsxweb/src/systems/agent/components/agent-sessions-list.tsxweb/src/systems/agent/components/agent-stats-grid.test.tsxweb/src/systems/agent/components/agent-stats-grid.tsxweb/src/systems/agent/components/stories/agent-info-panel.stories.tsxweb/src/systems/agent/components/stories/agent-sessions-list.stories.tsxweb/src/systems/agent/components/stories/agent-stats-grid.stories.tsxweb/src/systems/agent/lib/session-status.tsweb/src/systems/session/contexts/session-create-context.tsx
✅ Files skipped from review due to trivial changes (2)
- web/src/systems/session/contexts/session-create-context.tsx
- web/src/systems/agent/components/stories/agent-sessions-list.stories.tsx
🚧 Files skipped from review as they are similar to previous changes (6)
- web/src/routes/_app/-agents.$name.sessions.$id.test.tsx
- web/src/systems/agent/components/agent-stats-grid.tsx
- web/src/routes/_app/agents.$name.tsx
- web/src/routes/_app/stories/-agents.$name.stories.tsx
- web/src/systems/agent/components/stories/agent-stats-grid.stories.tsx
- web/src/components/app-sidebar.test.tsx
There was a problem hiding this comment.
🧹 Nitpick comments (1)
web/src/systems/agent/components/agent-sessions-list.tsx (1)
64-65: Avoid nested horizontal-scroll containers.
Tablealready provides anoverflow-x-autocontainer, so the outer wrapper adds a second scroll layer unnecessarily.♻️ Suggested simplification
- return ( - <div className="overflow-x-auto" data-testid="agent-sessions-table-wrapper"> - <Table data-testid="agent-sessions-table"> + return ( + <div data-testid="agent-sessions-table-wrapper"> + <Table data-testid="agent-sessions-table"> <TableHeader> <TableRow> <TableHead className="w-2/5">Session</TableHead> <TableHead>Status</TableHead> <TableHead className="text-right">Duration</TableHead> <TableHead className="text-right">Iterations</TableHead> <TableHead className="text-right">Last activity</TableHead> </TableRow> </TableHeader> <TableBody> {sessions.map(session => ( <AgentSessionRow key={session.id} agentName={agentName} session={session} now={now} /> ))} </TableBody> </Table> </div> );Also applies to: 65-81
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@web/src/systems/agent/components/agent-sessions-list.tsx` around lines 64 - 65, Remove the redundant outer horizontal-scroll container: delete the surrounding <div className="overflow-x-auto" data-testid="agent-sessions-table-wrapper"> and its closing tag so the Table component is the sole scroll container; if you need the data-testid for tests, move data-testid="agent-sessions-table-wrapper" (or keep tests pointing to agent-sessions-table) onto the Table element (the <Table> in agent-sessions-list.tsx) to avoid nested overflow-x-auto layers.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@web/src/systems/agent/components/agent-sessions-list.tsx`:
- Around line 64-65: Remove the redundant outer horizontal-scroll container:
delete the surrounding <div className="overflow-x-auto"
data-testid="agent-sessions-table-wrapper"> and its closing tag so the Table
component is the sole scroll container; if you need the data-testid for tests,
move data-testid="agent-sessions-table-wrapper" (or keep tests pointing to
agent-sessions-table) onto the Table element (the <Table> in
agent-sessions-list.tsx) to avoid nested overflow-x-auto layers.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 86ae2ff0-7ef7-4549-bee8-1e8463b4cd9f
⛔ Files ignored due to path filters (8)
.compozy/tasks/qa-rounds/reviews-002/_meta.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-002/issue_001.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-002/issue_002.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-002/issue_003.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-002/issue_004.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-002/issue_005.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-002/issue_006.mdis excluded by!**/*.md.compozy/tasks/qa-rounds/reviews-002/issue_007.mdis excluded by!**/*.md
📒 Files selected for processing (11)
packages/ui/src/tokens.cssweb/src/routes/_app/-agents.$name.sessions.$id.test.tsxweb/src/routes/_app/-agents.$name.test.tsxweb/src/routes/_app/agents.$name.sessions.$id.tsxweb/src/storybook/web-storybook-stories-and-fixtures.test.tsxweb/src/systems/agent/components/agent-sessions-list.test.tsxweb/src/systems/agent/components/agent-sessions-list.tsxweb/src/systems/agent/components/agent-stats-grid.test.tsxweb/src/systems/agent/storybook.tsweb/src/systems/agent/testing.tsweb/src/systems/session/testing.ts
✅ Files skipped from review due to trivial changes (2)
- web/src/systems/session/testing.ts
- web/src/systems/agent/testing.ts
🚧 Files skipped from review as they are similar to previous changes (5)
- web/src/systems/agent/components/agent-sessions-list.test.tsx
- web/src/storybook/web-storybook-stories-and-fixtures.test.tsx
- web/src/systems/agent/components/agent-stats-grid.test.tsx
- web/src/routes/_app/-agents.$name.sessions.$id.test.tsx
- web/src/routes/_app/agents.$name.sessions.$id.tsx
## Release v0.0.1 This PR prepares the release of version v0.0.1. ### Changelog ## 0.0.1 - 2026-05-26 ### Other Changes - Lessons learned ### ♻️ Refactoring - Project structure (#7) - Kb improvements (#12) - Rename spaces to channels (#17) - Add extensions gaps (#21) - Improve tool calls ui (#22) - Remove web app header - Module improvements (#29) - Memory improvements (#35) - Storybook for web and ui (#38) - Enable AGH network by default for new installs (#57) - Hermes adjustments (#69) - Badges design (#84) - Storybook scenario and logos gallery - Migrate typescript tests (#114) - Internal go packages (#120) - Ui patterns (#127) - Improve e2e tests (#130) - Ui redesign - Workspace isolation across runtime surfaces (#145) - Prod ready applies (#162) - Tool card ui (#164) - Alpha on logo - Prod ready features (#167) - Thread sheet (#202) ### 🎉 Features - Implement config foundation packages - Implement sqlite store package - Add ACP client package - Add session lifecycle manager - Implement observe package - Add daemon composition root - Add uds api server - Implement cli package - Add http api server - Add system design - Add foundation types, schemas, and layout shell for web client - Add daemon health polling and agent sidebar systems for web client - Add session system CRUD, streaming core, and session store for web client - Add chat view, messages, and composer tests for web client - Add tool cards and renderers for web client - Add file-backed memory store core - Scaffold memory session seams - Add memory dream consolidation service - Wire memory assembler into daemon - Add memory api and cli - New skills system (#1) - Add workspace entity (#5) - Add new skill capabilities (#8) - Web ui v2 (#9) - Improve hooks system (#10) - Session resilience (#11) - Add extensability (#13) - Add automation (#16) - Add channels (#14) - Add network implementation (#15) - Add network, bridges and automations web pages (#18) - Ext registry (#20) - Add core tasks (#19) - Bridge adapters (#23) - Add site (#26) - Add ext refac and sandbox (#25) - Settings ui (#37) - Tasks ui (#36) - Harness improvements (#44) - Agent capabilities (#49) - Redesign ui (#48) - Unify capability (#53) - Redesign network workspace (#59) - Add task deletion and split session delete from stop (#58) - Session provider selection (#60) - Production grade adjustments (#66) - Autonomous system (#75) - Add agent session route (#80) - Tools registry (#85) - Agents soul (#88) - Add network threads (#105) - Orchestration improvements (#106) - Memory v2 (#108) - Agent categories (#113) - Providers model (#118) - Add canonical AGH bundled skill (#143) - Onboarding and improvements (#198) - Onboarding and improvements (#201) ### 🐛 Bug Fixes - Review round - Review rounds - Resolve memory extensibility review batch - Embed web into daemon - Defaults agents - Acp integration (#4) - Lint errors - Prd folder - Remove orphan web actions and dead surfaces (#55) - Qa testing and fixes (#73) - New review rounds (#82) - Security audit (#90) - Release qa round (#95) - Add missing tools (#141) - New qa round (#147) - Advanced qa round (#149) - Homebrew tap - Final review round (#151) - Daemon healthy - Reasoning models (#158) - Lint errors (#160) - Review round (#168) - Release adjustments (#171) - Stabilize release ci fixtures - Stabilize release integration gate - Stabilize release verify gates - Stabilize release integration flows - Stabilize release verify gates - Stabilize main verify shutdown - Ignore stale acpmock cancel - Marketplace search focus and filtering (#193) - Website video - Workspace command select ### 📚 Documentation - Update agents.md - Update prd - Update skills - Update compozy tasks - Update compozy - Update compozy - Add new skills - Archive prd - Update prds - Update rfc - Update prds - Update prds - Add automation prd - Channels prd - Update prd - Update prd - New prds - Archive prds - Bridges adapters prd - Sandbox prd - Update - Archive prd - Update - Add new prd - New design - Update prd - Archive prds - Update prds - Tasks-ui prd tasks - Update prd - Update design docs - Agent capabilities prd - Improve site docs - Remove old design references - Udpate - Autonomous prd - Update skills - Blog design - Agent sould prd - Final qa plan - Update - Remove codex ledgers from gitignore - Remove not needed files - Udpate ledger - Update cy-codex-loop skill - Orchestration improves prd - Update prds - Orch improvs prd - Memv2 prd - Providers model prd - Update refacs prd - New design proposal - Update rules - Update skills - New blog posts (#173) - Format docs - Remove old design files - Remove old - Skeeper update ### 📦 Build System - Initial structure - Commitlint - Frontend base structure - Update vscode settings - Add subagents - Coderabbit - Prd and tooling - Bun lock - Lint tooling - Copy.md and tooling adjusts - Add repoclone rc - Upgrade skeeper to v0.2.0 - Update go.mod - Adopt task artifacts into skeeper - Sync codex plans with skeeper - Skeeper lock - Skeeper lock - New skills - Skeeper lock - Skeeper lock - Skeeper lock - Update deps and go - Regenerate daytona sidecar assets for go 1.26.3 - Fix cliff - Ignore docs on fmt - Build web assets before goreleaser - Extend release dry-run timeout ### 🔧 CI/CD - Lint errors - Fint release pr - Fix goreleaser ### 🧪 Testing - Add e2e tests (#27) - Qa rounds (#78) - Improve test suite (#138) - Harden daemon-served restart reloads - Harden daemon-served readiness waits - Stabilize dashboard focus assertion - Stabilize release integration gates - Stabilize release e2e markers - Stabilize release e2e flows Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
## Release v0.0.1 This PR prepares the release of version v0.0.1. ### Changelog ## 0.0.1 - 2026-05-26 ### Other Changes - Lessons learned ### ♻️ Refactoring - Project structure (#7) - Kb improvements (#12) - Rename spaces to channels (#17) - Add extensions gaps (#21) - Improve tool calls ui (#22) - Remove web app header - Module improvements (#29) - Memory improvements (#35) - Storybook for web and ui (#38) - Enable AGH network by default for new installs (#57) - Hermes adjustments (#69) - Badges design (#84) - Storybook scenario and logos gallery - Migrate typescript tests (#114) - Internal go packages (#120) - Ui patterns (#127) - Improve e2e tests (#130) - Ui redesign - Workspace isolation across runtime surfaces (#145) - Prod ready applies (#162) - Tool card ui (#164) - Alpha on logo - Prod ready features (#167) - Thread sheet (#202) ### 🎉 Features - Implement config foundation packages - Implement sqlite store package - Add ACP client package - Add session lifecycle manager - Implement observe package - Add daemon composition root - Add uds api server - Implement cli package - Add http api server - Add system design - Add foundation types, schemas, and layout shell for web client - Add daemon health polling and agent sidebar systems for web client - Add session system CRUD, streaming core, and session store for web client - Add chat view, messages, and composer tests for web client - Add tool cards and renderers for web client - Add file-backed memory store core - Scaffold memory session seams - Add memory dream consolidation service - Wire memory assembler into daemon - Add memory api and cli - New skills system (#1) - Add workspace entity (#5) - Add new skill capabilities (#8) - Web ui v2 (#9) - Improve hooks system (#10) - Session resilience (#11) - Add extensability (#13) - Add automation (#16) - Add channels (#14) - Add network implementation (#15) - Add network, bridges and automations web pages (#18) - Ext registry (#20) - Add core tasks (#19) - Bridge adapters (#23) - Add site (#26) - Add ext refac and sandbox (#25) - Settings ui (#37) - Tasks ui (#36) - Harness improvements (#44) - Agent capabilities (#49) - Redesign ui (#48) - Unify capability (#53) - Redesign network workspace (#59) - Add task deletion and split session delete from stop (#58) - Session provider selection (#60) - Production grade adjustments (#66) - Autonomous system (#75) - Add agent session route (#80) - Tools registry (#85) - Agents soul (#88) - Add network threads (#105) - Orchestration improvements (#106) - Memory v2 (#108) - Agent categories (#113) - Providers model (#118) - Add canonical AGH bundled skill (#143) - Onboarding and improvements (#198) - Onboarding and improvements (#201) ### 🐛 Bug Fixes - Review round - Review rounds - Resolve memory extensibility review batch - Embed web into daemon - Defaults agents - Acp integration (#4) - Lint errors - Prd folder - Remove orphan web actions and dead surfaces (#55) - Qa testing and fixes (#73) - New review rounds (#82) - Security audit (#90) - Release qa round (#95) - Add missing tools (#141) - New qa round (#147) - Advanced qa round (#149) - Homebrew tap - Final review round (#151) - Daemon healthy - Reasoning models (#158) - Lint errors (#160) - Review round (#168) - Release adjustments (#171) - Stabilize release ci fixtures - Stabilize release integration gate - Stabilize release verify gates - Stabilize release integration flows - Stabilize release verify gates - Stabilize main verify shutdown - Ignore stale acpmock cancel - Marketplace search focus and filtering (#193) - Website video - Workspace command select ### 📚 Documentation - Update agents.md - Update prd - Update skills - Update compozy tasks - Update compozy - Update compozy - Add new skills - Archive prd - Update prds - Update rfc - Update prds - Update prds - Add automation prd - Channels prd - Update prd - Update prd - New prds - Archive prds - Bridges adapters prd - Sandbox prd - Update - Archive prd - Update - Add new prd - New design - Update prd - Archive prds - Update prds - Tasks-ui prd tasks - Update prd - Update design docs - Agent capabilities prd - Improve site docs - Remove old design references - Udpate - Autonomous prd - Update skills - Blog design - Agent sould prd - Final qa plan - Update - Remove codex ledgers from gitignore - Remove not needed files - Udpate ledger - Update cy-codex-loop skill - Orchestration improves prd - Update prds - Orch improvs prd - Memv2 prd - Providers model prd - Update refacs prd - New design proposal - Update rules - Update skills - New blog posts (#173) - Format docs - Remove old design files - Remove old - Skeeper update ### 📦 Build System - Initial structure - Commitlint - Frontend base structure - Update vscode settings - Add subagents - Coderabbit - Prd and tooling - Bun lock - Lint tooling - Copy.md and tooling adjusts - Add repoclone rc - Upgrade skeeper to v0.2.0 - Update go.mod - Adopt task artifacts into skeeper - Sync codex plans with skeeper - Skeeper lock - Skeeper lock - New skills - Skeeper lock - Skeeper lock - Skeeper lock - Update deps and go - Regenerate daytona sidecar assets for go 1.26.3 - Fix cliff - Ignore docs on fmt - Build web assets before goreleaser - Extend release dry-run timeout ### 🔧 CI/CD - Lint errors - Fint release pr - Fix goreleaser - Fix release ### 🧪 Testing - Add e2e tests (#27) - Qa rounds (#78) - Improve test suite (#138) - Harden daemon-served restart reloads - Harden daemon-served readiness waits - Stabilize dashboard focus assertion - Stabilize release integration gates - Stabilize release e2e markers - Stabilize release e2e flows Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
## Release v0.0.2 This PR prepares the release of version v0.0.2. ### Changelog ## 0.0.2 - 2026-05-26 ### Other Changes - Lessons learned ### ♻️ Refactoring - Project structure (#7) - Kb improvements (#12) - Rename spaces to channels (#17) - Add extensions gaps (#21) - Improve tool calls ui (#22) - Remove web app header - Module improvements (#29) - Memory improvements (#35) - Storybook for web and ui (#38) - Enable AGH network by default for new installs (#57) - Hermes adjustments (#69) - Badges design (#84) - Storybook scenario and logos gallery - Migrate typescript tests (#114) - Internal go packages (#120) - Ui patterns (#127) - Improve e2e tests (#130) - Ui redesign - Workspace isolation across runtime surfaces (#145) - Prod ready applies (#162) - Tool card ui (#164) - Alpha on logo - Prod ready features (#167) - Thread sheet (#202) ### 🎉 Features - Implement config foundation packages - Implement sqlite store package - Add ACP client package - Add session lifecycle manager - Implement observe package - Add daemon composition root - Add uds api server - Implement cli package - Add http api server - Add system design - Add foundation types, schemas, and layout shell for web client - Add daemon health polling and agent sidebar systems for web client - Add session system CRUD, streaming core, and session store for web client - Add chat view, messages, and composer tests for web client - Add tool cards and renderers for web client - Add file-backed memory store core - Scaffold memory session seams - Add memory dream consolidation service - Wire memory assembler into daemon - Add memory api and cli - New skills system (#1) - Add workspace entity (#5) - Add new skill capabilities (#8) - Web ui v2 (#9) - Improve hooks system (#10) - Session resilience (#11) - Add extensability (#13) - Add automation (#16) - Add channels (#14) - Add network implementation (#15) - Add network, bridges and automations web pages (#18) - Ext registry (#20) - Add core tasks (#19) - Bridge adapters (#23) - Add site (#26) - Add ext refac and sandbox (#25) - Settings ui (#37) - Tasks ui (#36) - Harness improvements (#44) - Agent capabilities (#49) - Redesign ui (#48) - Unify capability (#53) - Redesign network workspace (#59) - Add task deletion and split session delete from stop (#58) - Session provider selection (#60) - Production grade adjustments (#66) - Autonomous system (#75) - Add agent session route (#80) - Tools registry (#85) - Agents soul (#88) - Add network threads (#105) - Orchestration improvements (#106) - Memory v2 (#108) - Agent categories (#113) - Providers model (#118) - Add canonical AGH bundled skill (#143) - Onboarding and improvements (#198) - Onboarding and improvements (#201) ### 🐛 Bug Fixes - Review round - Review rounds - Resolve memory extensibility review batch - Embed web into daemon - Defaults agents - Acp integration (#4) - Lint errors - Prd folder - Remove orphan web actions and dead surfaces (#55) - Qa testing and fixes (#73) - New review rounds (#82) - Security audit (#90) - Release qa round (#95) - Add missing tools (#141) - New qa round (#147) - Advanced qa round (#149) - Homebrew tap - Final review round (#151) - Daemon healthy - Reasoning models (#158) - Lint errors (#160) - Review round (#168) - Release adjustments (#171) - Stabilize release ci fixtures - Stabilize release integration gate - Stabilize release verify gates - Stabilize release integration flows - Stabilize release verify gates - Stabilize main verify shutdown - Ignore stale acpmock cancel - Marketplace search focus and filtering (#193) - Website video - Workspace command select ### 📚 Documentation - Update agents.md - Update prd - Update skills - Update compozy tasks - Update compozy - Update compozy - Add new skills - Archive prd - Update prds - Update rfc - Update prds - Update prds - Add automation prd - Channels prd - Update prd - Update prd - New prds - Archive prds - Bridges adapters prd - Sandbox prd - Update - Archive prd - Update - Add new prd - New design - Update prd - Archive prds - Update prds - Tasks-ui prd tasks - Update prd - Update design docs - Agent capabilities prd - Improve site docs - Remove old design references - Udpate - Autonomous prd - Update skills - Blog design - Agent sould prd - Final qa plan - Update - Remove codex ledgers from gitignore - Remove not needed files - Udpate ledger - Update cy-codex-loop skill - Orchestration improves prd - Update prds - Orch improvs prd - Memv2 prd - Providers model prd - Update refacs prd - New design proposal - Update rules - Update skills - New blog posts (#173) - Format docs - Remove old design files - Remove old - Skeeper update ### 📦 Build System - Initial structure - Commitlint - Frontend base structure - Update vscode settings - Add subagents - Coderabbit - Prd and tooling - Bun lock - Lint tooling - Copy.md and tooling adjusts - Add repoclone rc - Upgrade skeeper to v0.2.0 - Update go.mod - Adopt task artifacts into skeeper - Sync codex plans with skeeper - Skeeper lock - Skeeper lock - New skills - Skeeper lock - Skeeper lock - Skeeper lock - Update deps and go - Regenerate daytona sidecar assets for go 1.26.3 - Fix cliff - Ignore docs on fmt - Build web assets before goreleaser - Extend release dry-run timeout ### 🔧 CI/CD - Lint errors - Fint release pr - Fix goreleaser - Fix release - Fix release process ### 🧪 Testing - Add e2e tests (#27) - Qa rounds (#78) - Improve test suite (#138) - Harden daemon-served restart reloads - Harden daemon-served readiness waits - Stabilize dashboard focus assertion - Stabilize release integration gates - Stabilize release e2e markers - Stabilize release e2e flows - Improve suite speed Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
## Release v0.0.2 This PR prepares the release of version v0.0.2. ### Changelog ## 0.0.2 - 2026-05-26 ### Other Changes - Lessons learned ### ♻️ Refactoring - Project structure (#7) - Kb improvements (#12) - Rename spaces to channels (#17) - Add extensions gaps (#21) - Improve tool calls ui (#22) - Remove web app header - Module improvements (#29) - Memory improvements (#35) - Storybook for web and ui (#38) - Enable AGH network by default for new installs (#57) - Hermes adjustments (#69) - Badges design (#84) - Storybook scenario and logos gallery - Migrate typescript tests (#114) - Internal go packages (#120) - Ui patterns (#127) - Improve e2e tests (#130) - Ui redesign - Workspace isolation across runtime surfaces (#145) - Prod ready applies (#162) - Tool card ui (#164) - Alpha on logo - Prod ready features (#167) - Thread sheet (#202) ### 🎉 Features - Implement config foundation packages - Implement sqlite store package - Add ACP client package - Add session lifecycle manager - Implement observe package - Add daemon composition root - Add uds api server - Implement cli package - Add http api server - Add system design - Add foundation types, schemas, and layout shell for web client - Add daemon health polling and agent sidebar systems for web client - Add session system CRUD, streaming core, and session store for web client - Add chat view, messages, and composer tests for web client - Add tool cards and renderers for web client - Add file-backed memory store core - Scaffold memory session seams - Add memory dream consolidation service - Wire memory assembler into daemon - Add memory api and cli - New skills system (#1) - Add workspace entity (#5) - Add new skill capabilities (#8) - Web ui v2 (#9) - Improve hooks system (#10) - Session resilience (#11) - Add extensability (#13) - Add automation (#16) - Add channels (#14) - Add network implementation (#15) - Add network, bridges and automations web pages (#18) - Ext registry (#20) - Add core tasks (#19) - Bridge adapters (#23) - Add site (#26) - Add ext refac and sandbox (#25) - Settings ui (#37) - Tasks ui (#36) - Harness improvements (#44) - Agent capabilities (#49) - Redesign ui (#48) - Unify capability (#53) - Redesign network workspace (#59) - Add task deletion and split session delete from stop (#58) - Session provider selection (#60) - Production grade adjustments (#66) - Autonomous system (#75) - Add agent session route (#80) - Tools registry (#85) - Agents soul (#88) - Add network threads (#105) - Orchestration improvements (#106) - Memory v2 (#108) - Agent categories (#113) - Providers model (#118) - Add canonical AGH bundled skill (#143) - Onboarding and improvements (#198) - Onboarding and improvements (#201) ### 🐛 Bug Fixes - Review round - Review rounds - Resolve memory extensibility review batch - Embed web into daemon - Defaults agents - Acp integration (#4) - Lint errors - Prd folder - Remove orphan web actions and dead surfaces (#55) - Qa testing and fixes (#73) - New review rounds (#82) - Security audit (#90) - Release qa round (#95) - Add missing tools (#141) - New qa round (#147) - Advanced qa round (#149) - Homebrew tap - Final review round (#151) - Daemon healthy - Reasoning models (#158) - Lint errors (#160) - Review round (#168) - Release adjustments (#171) - Stabilize release ci fixtures - Stabilize release integration gate - Stabilize release verify gates - Stabilize release integration flows - Stabilize release verify gates - Stabilize main verify shutdown - Ignore stale acpmock cancel - Marketplace search focus and filtering (#193) - Website video - Workspace command select ### 📚 Documentation - Update agents.md - Update prd - Update skills - Update compozy tasks - Update compozy - Update compozy - Add new skills - Archive prd - Update prds - Update rfc - Update prds - Update prds - Add automation prd - Channels prd - Update prd - Update prd - New prds - Archive prds - Bridges adapters prd - Sandbox prd - Update - Archive prd - Update - Add new prd - New design - Update prd - Archive prds - Update prds - Tasks-ui prd tasks - Update prd - Update design docs - Agent capabilities prd - Improve site docs - Remove old design references - Udpate - Autonomous prd - Update skills - Blog design - Agent sould prd - Final qa plan - Update - Remove codex ledgers from gitignore - Remove not needed files - Udpate ledger - Update cy-codex-loop skill - Orchestration improves prd - Update prds - Orch improvs prd - Memv2 prd - Providers model prd - Update refacs prd - New design proposal - Update rules - Update skills - New blog posts (#173) - Format docs - Remove old design files - Remove old - Skeeper update ### 📦 Build System - Initial structure - Commitlint - Frontend base structure - Update vscode settings - Add subagents - Coderabbit - Prd and tooling - Bun lock - Lint tooling - Copy.md and tooling adjusts - Add repoclone rc - Upgrade skeeper to v0.2.0 - Update go.mod - Adopt task artifacts into skeeper - Sync codex plans with skeeper - Skeeper lock - Skeeper lock - New skills - Skeeper lock - Skeeper lock - Skeeper lock - Update deps and go - Regenerate daytona sidecar assets for go 1.26.3 - Fix cliff - Ignore docs on fmt - Build web assets before goreleaser - Extend release dry-run timeout ### 🔧 CI/CD - Lint errors - Fint release pr - Fix goreleaser - Fix release - Fix release process - Fix release sync - Decouple release dry-run npm auth - Persist web assets git auth ### 🧪 Testing - Add e2e tests (#27) - Qa rounds (#78) - Improve test suite (#138) - Harden daemon-served restart reloads - Harden daemon-served readiness waits - Stabilize dashboard focus assertion - Stabilize release integration gates - Stabilize release e2e markers - Stabilize release e2e flows - Improve suite speed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated web assets dependency to a newer version for improved stability and performance. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/compozy/agh/pull/211?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
## Release v0.0.2 This PR prepares the release of version v0.0.2. ### Changelog ## 0.0.2 - 2026-05-27 ### Other Changes - Lessons learned ### ♻️ Refactoring - Project structure (#7) - Kb improvements (#12) - Rename spaces to channels (#17) - Add extensions gaps (#21) - Improve tool calls ui (#22) - Remove web app header - Module improvements (#29) - Memory improvements (#35) - Storybook for web and ui (#38) - Enable AGH network by default for new installs (#57) - Hermes adjustments (#69) - Badges design (#84) - Storybook scenario and logos gallery - Migrate typescript tests (#114) - Internal go packages (#120) - Ui patterns (#127) - Improve e2e tests (#130) - Ui redesign - Workspace isolation across runtime surfaces (#145) - Prod ready applies (#162) - Tool card ui (#164) - Alpha on logo - Prod ready features (#167) - Thread sheet (#202) ### 🎉 Features - Implement config foundation packages - Implement sqlite store package - Add ACP client package - Add session lifecycle manager - Implement observe package - Add daemon composition root - Add uds api server - Implement cli package - Add http api server - Add system design - Add foundation types, schemas, and layout shell for web client - Add daemon health polling and agent sidebar systems for web client - Add session system CRUD, streaming core, and session store for web client - Add chat view, messages, and composer tests for web client - Add tool cards and renderers for web client - Add file-backed memory store core - Scaffold memory session seams - Add memory dream consolidation service - Wire memory assembler into daemon - Add memory api and cli - New skills system (#1) - Add workspace entity (#5) - Add new skill capabilities (#8) - Web ui v2 (#9) - Improve hooks system (#10) - Session resilience (#11) - Add extensability (#13) - Add automation (#16) - Add channels (#14) - Add network implementation (#15) - Add network, bridges and automations web pages (#18) - Ext registry (#20) - Add core tasks (#19) - Bridge adapters (#23) - Add site (#26) - Add ext refac and sandbox (#25) - Settings ui (#37) - Tasks ui (#36) - Harness improvements (#44) - Agent capabilities (#49) - Redesign ui (#48) - Unify capability (#53) - Redesign network workspace (#59) - Add task deletion and split session delete from stop (#58) - Session provider selection (#60) - Production grade adjustments (#66) - Autonomous system (#75) - Add agent session route (#80) - Tools registry (#85) - Agents soul (#88) - Add network threads (#105) - Orchestration improvements (#106) - Memory v2 (#108) - Agent categories (#113) - Providers model (#118) - Add canonical AGH bundled skill (#143) - Onboarding and improvements (#198) - Onboarding and improvements (#201) ### 🐛 Bug Fixes - Review round - Review rounds - Resolve memory extensibility review batch - Embed web into daemon - Defaults agents - Acp integration (#4) - Lint errors - Prd folder - Remove orphan web actions and dead surfaces (#55) - Qa testing and fixes (#73) - New review rounds (#82) - Security audit (#90) - Release qa round (#95) - Add missing tools (#141) - New qa round (#147) - Advanced qa round (#149) - Homebrew tap - Final review round (#151) - Daemon healthy - Reasoning models (#158) - Lint errors (#160) - Review round (#168) - Release adjustments (#171) - Stabilize release ci fixtures - Stabilize release integration gate - Stabilize release verify gates - Stabilize release integration flows - Stabilize release verify gates - Stabilize main verify shutdown - Ignore stale acpmock cancel - Marketplace search focus and filtering (#193) - Website video - Workspace command select ### 📚 Documentation - Update agents.md - Update prd - Update skills - Update compozy tasks - Update compozy - Update compozy - Add new skills - Archive prd - Update prds - Update rfc - Update prds - Update prds - Add automation prd - Channels prd - Update prd - Update prd - New prds - Archive prds - Bridges adapters prd - Sandbox prd - Update - Archive prd - Update - Add new prd - New design - Update prd - Archive prds - Update prds - Tasks-ui prd tasks - Update prd - Update design docs - Agent capabilities prd - Improve site docs - Remove old design references - Udpate - Autonomous prd - Update skills - Blog design - Agent sould prd - Final qa plan - Update - Remove codex ledgers from gitignore - Remove not needed files - Udpate ledger - Update cy-codex-loop skill - Orchestration improves prd - Update prds - Orch improvs prd - Memv2 prd - Providers model prd - Update refacs prd - New design proposal - Update rules - Update skills - New blog posts (#173) - Format docs - Remove old design files - Remove old - Skeeper update ### 📦 Build System - Initial structure - Commitlint - Frontend base structure - Update vscode settings - Add subagents - Coderabbit - Prd and tooling - Bun lock - Lint tooling - Copy.md and tooling adjusts - Add repoclone rc - Upgrade skeeper to v0.2.0 - Update go.mod - Adopt task artifacts into skeeper - Sync codex plans with skeeper - Skeeper lock - Skeeper lock - New skills - Skeeper lock - Skeeper lock - Skeeper lock - Update deps and go - Regenerate daytona sidecar assets for go 1.26.3 - Fix cliff - Ignore docs on fmt - Build web assets before goreleaser - Extend release dry-run timeout - Fix release dry-run token contract ### 🔧 CI/CD - Lint errors - Fint release pr - Fix goreleaser - Fix release - Fix release process - Fix release sync - Decouple release dry-run npm auth - Persist web assets git auth - Require npm auth before release merge ### 🧪 Testing - Add e2e tests (#27) - Qa rounds (#78) - Improve test suite (#138) - Harden daemon-served restart reloads - Harden daemon-served readiness waits - Stabilize dashboard focus assertion - Stabilize release integration gates - Stabilize release e2e markers - Stabilize release e2e flows - Improve suite speed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated dependencies to latest versions. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/compozy/agh/pull/214?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Summary by CodeRabbit
New Features
Refactor
Tests / Stories