@@ -57,6 +57,7 @@ import {
5757 validateSessionsCompactionRestoreParams ,
5858 validateSessionsCreateParams ,
5959 validateSessionsDeleteParams ,
60+ validateSessionsDescribeParams ,
6061 validateSessionsListParams ,
6162 validateSessionsMessagesSubscribeParams ,
6263 validateSessionsMessagesUnsubscribeParams ,
@@ -76,6 +77,7 @@ import {
7677import { reactivateCompletedSubagentSession } from "../session-subagent-reactivation.js" ;
7778import {
7879 archiveFileOnDisk ,
80+ buildGatewaySessionRow ,
7981 listSessionsFromStoreAsync ,
8082 loadCombinedSessionStoreForGateway ,
8183 loadGatewaySessionRow ,
@@ -824,6 +826,34 @@ export const sessionsHandlers: GatewayRequestHandlers = {
824826
825827 respond ( true , { ts : Date . now ( ) , previews } satisfies SessionsPreviewResult , undefined ) ;
826828 } ,
829+ "sessions.describe" : ( { params, respond, context } ) => {
830+ if ( ! assertValidParams ( params , validateSessionsDescribeParams , "sessions.describe" , respond ) ) {
831+ return ;
832+ }
833+ const key = requireSessionKey ( params . key , respond ) ;
834+ if ( ! key ) {
835+ return ;
836+ }
837+ const cfg = context . getRuntimeConfig ( ) ;
838+ const { target, storePath } = resolveGatewaySessionTargetFromKey ( key , cfg ) ;
839+ const store = loadSessionStore ( storePath ) ;
840+ const entry = resolveFreshestSessionEntryFromStoreKeys ( store , target . storeKeys ) ;
841+ if ( ! entry ) {
842+ respond ( true , { session : null } , undefined ) ;
843+ return ;
844+ }
845+ const row = buildGatewaySessionRow ( {
846+ cfg,
847+ storePath,
848+ store,
849+ key : target . canonicalKey ,
850+ entry,
851+ includeDerivedTitles : params . includeDerivedTitles ,
852+ includeLastMessage : params . includeLastMessage ,
853+ transcriptUsageMaxBytes : 64 * 1024 ,
854+ } ) ;
855+ respond ( true , { session : row } , undefined ) ;
856+ } ,
827857 "sessions.resolve" : async ( { params, respond, context } ) => {
828858 if ( ! assertValidParams ( params , validateSessionsResolveParams , "sessions.resolve" , respond ) ) {
829859 return ;
0 commit comments