@@ -57,6 +57,10 @@ async def test_cmd_save_session_basic(self):
5757 {"role" : "user" , "content" : "Can you help me?" },
5858 ]
5959
60+ # Add a todo list
61+ todo_content = "Task 1\n Task 2"
62+ Path (".aider.todo.txt" ).write_text (todo_content , encoding = "utf-8" )
63+
6064 # Save session
6165 session_name = "test_session"
6266 commands .cmd_save_session (session_name )
@@ -69,7 +73,7 @@ async def test_cmd_save_session_basic(self):
6973 with open (session_file , "r" , encoding = "utf-8" ) as f :
7074 session_data = json .load (f )
7175
72- self .assertEqual (session_data ["version" ], "1.0" )
76+ self .assertEqual (session_data ["version" ], 1 )
7377 self .assertEqual (session_data ["session_name" ], session_name )
7478 self .assertEqual (session_data ["model" ], self .GPT35 .name )
7579 self .assertEqual (session_data ["edit_format" ], coder .edit_format )
@@ -87,11 +91,13 @@ async def test_cmd_save_session_basic(self):
8791
8892 # Verify settings
8993 settings = session_data ["settings" ]
90- self .assertEqual (settings ["root" ], coder .root )
9194 self .assertEqual (settings ["auto_commits" ], coder .auto_commits )
9295 self .assertEqual (settings ["auto_lint" ], coder .auto_lint )
9396 self .assertEqual (settings ["auto_test" ], coder .auto_test )
9497
98+ # Verify todo list persisted
99+ self .assertEqual (session_data ["todo_list" ], todo_content )
100+
95101 async def test_cmd_load_session_basic (self ):
96102 """Test basic session load functionality"""
97103 with GitTemporaryDirectory () as repo_dir :
@@ -113,7 +119,7 @@ async def test_cmd_load_session_basic(self):
113119
114120 # Create a session file manually
115121 session_data = {
116- "version" : "1.0" ,
122+ "version" : 1 ,
117123 "timestamp" : time .time (),
118124 "session_name" : "test_session" ,
119125 "model" : self .GPT35 .name ,
@@ -133,11 +139,11 @@ async def test_cmd_load_session_basic(self):
133139 "read_only_stubs" : [],
134140 },
135141 "settings" : {
136- "root" : str (repo_dir ),
137142 "auto_commits" : True ,
138143 "auto_lint" : False ,
139144 "auto_test" : False ,
140145 },
146+ "todo_list" : "Restored tasks\n - item" ,
141147 }
142148
143149 # Save session file
@@ -166,6 +172,11 @@ async def test_cmd_load_session_basic(self):
166172 self .assertEqual (coder .auto_lint , False )
167173 self .assertEqual (coder .auto_test , False )
168174
175+ # Verify todo list restored
176+ todo_file = Path (".aider.todo.txt" )
177+ self .assertTrue (todo_file .exists ())
178+ self .assertEqual (todo_file .read_text (encoding = "utf-8" ), session_data ["todo_list" ])
179+
169180 async def test_cmd_list_sessions_basic (self ):
170181 """Test basic session list functionality"""
171182 with GitTemporaryDirectory ():
@@ -176,7 +187,7 @@ async def test_cmd_list_sessions_basic(self):
176187 # Create multiple session files
177188 sessions_data = [
178189 {
179- "version" : "1.0" ,
190+ "version" : 1 ,
180191 "timestamp" : time .time () - 3600 , # 1 hour ago
181192 "session_name" : "session1" ,
182193 "model" : "gpt-3.5-turbo" ,
@@ -191,7 +202,7 @@ async def test_cmd_list_sessions_basic(self):
191202 },
192203 },
193204 {
194- "version" : "1.0" ,
205+ "version" : 1 ,
195206 "timestamp" : time .time (), # current time
196207 "session_name" : "session2" ,
197208 "model" : "gpt-4" ,
@@ -232,3 +243,18 @@ async def test_cmd_list_sessions_basic(self):
232243 self .assertIn ("session2" , output_text )
233244 self .assertIn ("gpt-3.5-turbo" , output_text )
234245 self .assertIn ("gpt-4" , output_text )
246+
247+ async def test_preserve_todo_list_deprecated (self ):
248+ """Ensure preserve-todo-list flag is deprecated and todo is cleared on startup"""
249+ with GitTemporaryDirectory ():
250+ todo_path = Path (".aider.todo.txt" )
251+ todo_path .write_text ("keep me" , encoding = "utf-8" )
252+
253+ io = InputOutput (pretty = False , fancy_input = False , yes = True )
254+ with mock .patch .object (io , "tool_warning" ) as mock_tool_warning :
255+ await Coder .create (self .GPT35 , None , io , preserve_todo_list = True )
256+
257+ self .assertFalse (todo_path .exists ())
258+ self .assertTrue (
259+ any ("deprecated" in call [0 ][0 ] for call in mock_tool_warning .call_args_list )
260+ )
0 commit comments