fix(data): normalize a list working dir's trailing separator on write

A list working_dir stored as "C:\Dev\Tests\StaplerTracking\" broke every consumer
that puts it on a Windows command line: argv rules read \" as an escaped quote, so
the token never closes. "Open in terminal" passed wt.exe a starting directory of
C:\Dev\Tests\StaplerTracking" and it failed with 0x8007010b; the same data had
already corrupted the ConPTY list handler's arg list in August.

Paths.TrimTrailingSeparator is now the single helper (replacing the copies in
InteractiveLaunchSpecService and ClaudeHelpLauncher) and ListRepository applies it
on Add/Update, which covers every writer: UI create, repo import, hub UpdateList,
and MCP CreateList/UpdateList. OpenInTerminal also switches to ArgumentList so its
quoting is correct regardless of what's stored.
This commit is contained in:
mika kuns
2026-08-10 17:12:46 +02:00
parent 6d8cbacc9b
commit d451edd367
7 changed files with 150 additions and 18 deletions
@@ -178,5 +178,6 @@ public sealed class ClaudeHelpLauncher
private static string Quote(string value) => value.Contains(' ') ? $"\"{value}\"" : value;
private static string QuoteDirectory(string directory) => Quote(directory.TrimEnd('\\', '/'));
private static string QuoteDirectory(string directory) =>
Quote(ClaudeDo.Data.Paths.TrimTrailingSeparator(directory)!);
}