@@ -73,6 +73,39 @@ describe("ACP event ledger", () => {
7373 ) . resolves . toEqual ( { complete : false , events : [ ] } ) ;
7474 } ) ;
7575
76+ it ( "falls back for non-finite event retention options" , async ( ) => {
77+ const ledger = createInMemoryAcpEventLedger ( { maxEventsPerSession : Number . NaN } ) ;
78+ await ledger . startSession ( {
79+ sessionId : "session-1" ,
80+ sessionKey : "agent:main:work" ,
81+ cwd : "/work" ,
82+ complete : true ,
83+ } ) ;
84+ await ledger . recordUpdate ( {
85+ sessionId : "session-1" ,
86+ sessionKey : "agent:main:work" ,
87+ update : {
88+ sessionUpdate : "agent_message_chunk" ,
89+ content : { type : "text" , text : "First" } ,
90+ } ,
91+ } ) ;
92+ await ledger . recordUpdate ( {
93+ sessionId : "session-1" ,
94+ sessionKey : "agent:main:work" ,
95+ update : {
96+ sessionUpdate : "agent_message_chunk" ,
97+ content : { type : "text" , text : "Second" } ,
98+ } ,
99+ } ) ;
100+
101+ await expect (
102+ ledger . readReplay ( { sessionId : "session-1" , sessionKey : "agent:main:work" } ) ,
103+ ) . resolves . toMatchObject ( {
104+ complete : true ,
105+ events : [ { seq : 1 } , { seq : 2 } ] ,
106+ } ) ;
107+ } ) ;
108+
76109 it ( "persists file-backed replay state across ledger instances" , async ( ) => {
77110 await withTempDir ( { prefix : "openclaw-acp-ledger-" } , async ( dir ) => {
78111 const filePath = path . join ( dir , "acp" , "event-ledger.json" ) ;
0 commit comments