@@ -29,7 +29,16 @@ export namespace SessionSummary {
2929 )
3030
3131 async function summarizeSession ( input : { sessionID : string ; messages : MessageV2 . WithParts [ ] } ) {
32- const diffs = await computeDiff ( { messages : input . messages } )
32+ const files = new Set (
33+ input . messages
34+ . flatMap ( ( x ) => x . parts )
35+ . filter ( ( x ) => x . type === "patch" )
36+ . flatMap ( ( x ) => x . files ) ,
37+ )
38+ console . log ( files )
39+ const diffs = await computeDiff ( { messages : input . messages } ) . then ( ( x ) =>
40+ x . filter ( ( x ) => files . has ( x . file ) ) ,
41+ )
3342 await Session . update ( input . sessionID , ( draft ) => {
3443 draft . summary = {
3544 diffs,
@@ -39,7 +48,9 @@ export namespace SessionSummary {
3948
4049 async function summarizeMessage ( input : { messageID : string ; messages : MessageV2 . WithParts [ ] } ) {
4150 const messages = input . messages . filter (
42- ( m ) => m . info . id === input . messageID || ( m . info . role === "assistant" && m . info . parentID === input . messageID ) ,
51+ ( m ) =>
52+ m . info . id === input . messageID ||
53+ ( m . info . role === "assistant" && m . info . parentID === input . messageID ) ,
4354 )
4455 const msgWithParts = messages . find ( ( m ) => m . info . id === input . messageID ) !
4556 const userMsg = msgWithParts . info as MessageV2 . User
@@ -50,11 +61,14 @@ export namespace SessionSummary {
5061 }
5162 await Session . updateMessage ( userMsg )
5263
53- const assistantMsg = messages . find ( ( m ) => m . info . role === "assistant" ) ! . info as MessageV2 . Assistant
64+ const assistantMsg = messages . find ( ( m ) => m . info . role === "assistant" ) !
65+ . info as MessageV2 . Assistant
5466 const small = await Provider . getSmallModel ( assistantMsg . providerID )
5567 if ( ! small ) return
5668
57- const textPart = msgWithParts . parts . find ( ( p ) => p . type === "text" && ! p . synthetic ) as MessageV2 . TextPart
69+ const textPart = msgWithParts . parts . find (
70+ ( p ) => p . type === "text" && ! p . synthetic ,
71+ ) as MessageV2 . TextPart
5872 if ( textPart && ! userMsg . summary ?. title ) {
5973 const result = await generateText ( {
6074 maxOutputTokens : small . info . reasoning ? 1500 : 20 ,
@@ -81,7 +95,8 @@ export namespace SessionSummary {
8195 if (
8296 messages . some (
8397 ( m ) =>
84- m . info . role === "assistant" && m . parts . some ( ( p ) => p . type === "step-finish" && p . reason !== "tool-calls" ) ,
98+ m . info . role === "assistant" &&
99+ m . parts . some ( ( p ) => p . type === "step-finish" && p . reason !== "tool-calls" ) ,
85100 )
86101 ) {
87102 const result = await generateText ( {
@@ -114,7 +129,9 @@ export namespace SessionSummary {
114129 let all = await Session . messages ( input . sessionID )
115130 if ( input . messageID )
116131 all = all . filter (
117- ( x ) => x . info . id === input . messageID || ( x . info . role === "assistant" && x . info . parentID === input . messageID ) ,
132+ ( x ) =>
133+ x . info . id === input . messageID ||
134+ ( x . info . role === "assistant" && x . info . parentID === input . messageID ) ,
118135 )
119136
120137 return computeDiff ( {
0 commit comments