From f8023bb0e873edaeb711cef77d75b41774e34808 Mon Sep 17 00:00:00 2001 From: Harshil Vasoya Date: Tue, 22 Sep 2026 15:57:52 +0530 Subject: [PATCH 1/4] fix: Add load recent sessions button in Agent sessions --- .changeset/calm-sessions-return.md | 5 +++ .../src/atoms/agent-details/AgentSessions.tsx | 18 ++++++++-- .../src/atoms/agent-details/SessionsPage.tsx | 20 ++++++++++- .../src/atoms/agent-details/types.ts | 2 ++ .../test/atoms/SessionsPage.test.tsx | 33 +++++++++++++++++++ 5 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 .changeset/calm-sessions-return.md diff --git a/.changeset/calm-sessions-return.md b/.changeset/calm-sessions-return.md new file mode 100644 index 000000000..bf6ac5e9c --- /dev/null +++ b/.changeset/calm-sessions-return.md @@ -0,0 +1,5 @@ +--- +'@truefoundry/trueforge-ui': patch +--- + +Add an action to restore the recent 30-day session list from a timestamp-pinned session. diff --git a/packages/trueforge-ui/src/atoms/agent-details/AgentSessions.tsx b/packages/trueforge-ui/src/atoms/agent-details/AgentSessions.tsx index b951d5bb5..8774b8809 100644 --- a/packages/trueforge-ui/src/atoms/agent-details/AgentSessions.tsx +++ b/packages/trueforge-ui/src/atoms/agent-details/AgentSessions.tsx @@ -41,7 +41,13 @@ function entrySourceType(entry: SessionListEntry): 'schedule' | undefined { return 'sourceType' in entry && Reflect.get(entry, 'sourceType') === 'schedule' ? 'schedule' : undefined; } -export function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView }: AgentSessionsProps) { +export function AgentSessions({ + agentId, + startTimestamp, + endTimestamp, + shareView, + onLoadRecentSessions, +}: AgentSessionsProps) { const sessionsServer = useAgentSessionsServer(); const chatServer = useServer(); const toaster = useToasterOptional(); @@ -266,6 +272,7 @@ export function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView const resumeProps = resumeHref != null ? { resumeHref, resumeLabel } : shell != null ? { onResume: handleResume, resumeLabel } : {}; + const selectedCreatedAt = detailSession?.createdAt ?? selectedEntry?.createdAt; // Full empty only when nothing is selected — keep the detail pane for deep-linked sessionIds // (filters/time range can empty the list while share state still points at a session). @@ -293,6 +300,13 @@ export function AgentSessions({ agentId, startTimestamp, endTimestamp, shareView >