@@ -213,6 +213,26 @@ const insertLegacyMessageV2Assistant = (sessionID: SessionIDType, parentID: Mess
213213 )
214214 } )
215215
216+ const insertLegacyMessageV2User = ( sessionID : SessionIDType ) =>
217+ Effect . sync ( ( ) => {
218+ Database . use ( ( db ) =>
219+ db
220+ . insert ( MessageTable )
221+ . values ( {
222+ id : MessageID . ascending ( ) ,
223+ session_id : sessionID ,
224+ time_created : 1 ,
225+ time_updated : 1 ,
226+ data : {
227+ role : "user" ,
228+ time : { created : 1 } ,
229+ model : { providerID : ProviderID . make ( "test" ) , modelID : ModelID . make ( "test" ) } ,
230+ } as NonNullable < ( typeof MessageTable . $inferInsert ) [ "data" ] > ,
231+ } )
232+ . run ( ) ,
233+ )
234+ } )
235+
216236const setLegacySummaryDiff = ( sessionID : SessionIDType ) =>
217237 Effect . gen ( function * ( ) {
218238 const { db } = yield * Database . Service
@@ -667,21 +687,34 @@ describe("session HttpApi", () => {
667687 )
668688
669689 it . instance (
670- "serves legacy assistant messages missing agent" ,
690+ "serves legacy messages missing agent" ,
671691 ( ) =>
672692 Effect . gen ( function * ( ) {
673693 const test = yield * TestInstance
674- const session = yield * createSession ( { title : "legacy assistant" } )
675- const message = yield * createTextMessage ( session . id , "hello" )
676- yield * insertLegacyMessageV2Assistant ( session . id , message . info . id )
694+ const userSession = yield * createSession ( { title : "legacy user" } )
695+ const assistantSession = yield * createSession ( { title : "legacy assistant" } )
696+ const message = yield * createTextMessage ( assistantSession . id , "hello" )
697+ yield * insertLegacyMessageV2User ( userSession . id )
698+ yield * insertLegacyMessageV2Assistant ( assistantSession . id , message . info . id )
677699
678- const response = yield * request ( `${ pathFor ( SessionPaths . messages , { sessionID : session . id } ) } ?limit=80` , {
679- headers : { "x-opencode-directory" : test . directory } ,
680- } )
700+ const headers = { "x-opencode-directory" : test . directory }
701+ const userResponse = yield * request (
702+ `${ pathFor ( SessionPaths . messages , { sessionID : userSession . id } ) } ?limit=80` ,
703+ { headers } ,
704+ )
705+ const assistantResponse = yield * request (
706+ `${ pathFor ( SessionPaths . messages , { sessionID : assistantSession . id } ) } ?limit=80` ,
707+ { headers } ,
708+ )
681709
682- expect ( response . status ) . toBe ( 200 )
710+ expect ( userResponse . status ) . toBe ( 200 )
711+ expect ( ( yield * json < MessageV2 . WithParts [ ] > ( userResponse ) ) [ 0 ] ?. info ) . toMatchObject ( {
712+ role : "user" ,
713+ agent : "build" ,
714+ } )
715+ expect ( assistantResponse . status ) . toBe ( 200 )
683716 expect (
684- ( yield * json < MessageV2 . WithParts [ ] > ( response ) ) . find ( ( item ) => item . info . role === "assistant" ) ?. info ,
717+ ( yield * json < MessageV2 . WithParts [ ] > ( assistantResponse ) ) . find ( ( item ) => item . info . role === "assistant" ) ?. info ,
685718 ) . toMatchObject ( {
686719 role : "assistant" ,
687720 agent : "build" ,
0 commit comments