@@ -205,6 +205,50 @@ async def test_delete_directory_memory_url_strips_project_prefix(client, test_pr
205205 assert result ["failed_deletes" ] == 0
206206
207207
208+ @pytest .mark .asyncio
209+ async def test_delete_directory_memory_url_keeps_real_project_prefix_when_prefixes_disabled (
210+ client ,
211+ test_project ,
212+ config_manager ,
213+ ):
214+ """When project prefixes are disabled, resolved directory paths are already project-relative."""
215+ config = config_manager .load_config ()
216+ config .permalinks_include_project = False
217+ config_manager .save_config (config )
218+
219+ real_directory = f"{ test_project .name } /archive"
220+ await write_note (
221+ project = test_project .name ,
222+ title = "Delete Directory Real Project Prefix" ,
223+ directory = real_directory ,
224+ content = "# Delete Directory Real Project Prefix\n Delete target content." ,
225+ )
226+ await write_note (
227+ project = test_project .name ,
228+ title = "Keep Directory Decoy" ,
229+ directory = "archive" ,
230+ content = "# Keep Directory Decoy\n Decoy content." ,
231+ )
232+
233+ result = await delete_note (
234+ identifier = f"memory://{ test_project .name } /{ real_directory } " ,
235+ is_directory = True ,
236+ project = test_project .name ,
237+ output_format = "json" ,
238+ )
239+
240+ assert isinstance (result , dict )
241+ assert result ["deleted" ] is True
242+ assert result ["total_files" ] == 1
243+ assert result ["successful_deletes" ] == 1
244+ assert result ["failed_deletes" ] == 0
245+
246+ deleted = await read_note ("Delete Directory Real Project Prefix" , project = test_project .name )
247+ assert "Delete target content" not in deleted
248+ decoy = await read_note ("Keep Directory Decoy" , project = test_project .name )
249+ assert "Decoy content" in decoy
250+
251+
208252@pytest .mark .asyncio
209253async def test_delete_directory_workspace_memory_url_strips_route_prefix (client , test_project ):
210254 """Workspace-qualified memory:// directory deletes still hit project-relative files."""
0 commit comments