thePR0M3TH3AN and Claude Opus 5
81b0117c37
Fix: every TUI palette command taking a path was broken on Windows
...
The last two Windows failures were not POSIX-assuming tests. The tests were
right and the application was wrong.
`parse_palette_command` split its input with `shlex.split`, which defaults to
POSIX mode where a backslash is an ESCAPE character. On Windows that quietly
destroys every path a user types:
C:\Users\me\Temp\exports -> C:UsersmeTempexports
So doc-export, export-field, db-export, db-import, parent-seed-backup and
totp-export all wrote to a mangled relative path — or nowhere — and then
reported success. A user asking the TUI to export their vault on Windows got
a success message and no file. The two failing tests were reporting exactly
that, from the one platform that runs them.
Both palettes now share `split_palette_args`, which uses non-POSIX splitting
on Windows and strips the quotes that mode leaves on a quoted token, so paths
with spaces still work. v3 imports it from v2 rather than keeping its own
copy, since two parsers that must agree will eventually not.
The `windows` argument is an explicit parameter rather than a bare os.name
check, so both branches are tested from either platform — including a test
that pins what POSIX mode does to a Windows path, so anyone "simplifying"
this back to shlex.split sees precisely what they are restoring. That
parameter is the actual fix for the class of bug: the reason this survived is
that the Windows branch could only ever run on Windows.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected] >
Claude-Session: https://claude.ai/code/session_01Vtx94nXDmNgXEeThUZP4QN
2026-08-20 11:37:17 -04:00
..
2026-03-01 17:35:39 -05:00
2026-07-31 22:48:38 -04:00
2026-02-25 18:07:22 -05:00
2025-08-06 22:34:11 -04:00
2026-07-31 22:31:19 -04:00
2025-07-17 19:21:10 -04:00
2026-02-28 22:35:07 -05:00
2026-03-02 12:28:24 -05:00
2026-02-18 03:39:55 +00:00
2026-02-18 03:39:55 +00:00
2026-02-23 16:33:57 -05:00
2025-08-05 19:46:14 -04:00
2026-02-23 16:33:57 -05:00
2026-08-19 12:22:19 -04:00
2025-08-02 16:26:52 -04:00
2026-02-23 14:35:40 -05:00
2026-08-20 10:37:35 -04:00
2025-08-20 21:00:12 -04:00
2025-08-05 12:24:53 -04:00
2025-08-06 21:33:16 -04:00
2026-03-01 02:59:43 +00:00
2025-08-20 22:15:35 -04:00
2026-03-01 01:31:08 -05:00
2025-07-17 19:21:10 -04:00
2026-07-31 22:48:38 -04:00
2025-07-17 19:21:10 -04:00
2026-02-26 03:16:39 +00:00
2026-02-25 18:23:40 -05:00
2026-02-23 14:35:40 -05:00
2025-07-17 19:21:10 -04:00
2026-03-02 09:03:53 -05:00
2026-03-01 17:35:39 -05:00
2026-02-26 17:13:53 +00:00
2026-07-31 22:31:19 -04:00
2026-07-31 22:31:19 -04:00
2025-08-05 18:51:36 -04:00
2026-03-01 23:04:25 +00:00
2026-07-31 22:31:19 -04:00
2026-03-01 23:04:25 +00:00
2026-07-31 22:48:38 -04:00
2025-08-11 19:35:03 -04:00
2026-03-01 15:43:43 -05:00
2025-08-05 18:51:36 -04:00
2026-03-02 12:28:24 -05:00
2026-07-31 22:31:19 -04:00
2025-08-22 09:10:06 -04:00
2025-08-05 18:51:36 -04:00
2025-08-05 18:51:36 -04:00
2025-08-05 22:18:26 -04:00
2025-08-03 09:37:59 -04:00
2026-02-25 18:15:51 -05:00
2026-08-20 10:23:08 -04:00
2025-08-02 16:26:52 -04:00
2026-03-01 17:35:39 -05:00
2026-08-19 12:22:19 -04:00
2025-08-11 19:35:03 -04:00
2025-07-17 19:21:10 -04:00
2026-08-19 12:22:19 -04:00
2026-08-19 08:58:12 -04:00
2026-03-03 21:22:19 -05:00
2026-03-01 17:35:39 -05:00
2025-08-06 22:01:28 -04:00
2026-07-31 22:31:19 -04:00
2025-08-03 20:32:03 -04:00
2025-08-03 07:54:07 -04:00
2025-08-06 09:58:44 -04:00
2025-08-02 21:38:16 -04:00
2025-07-17 19:21:10 -04:00
2026-08-19 12:22:19 -04:00
2026-03-01 15:43:43 -05:00
2026-03-01 15:43:43 -05:00
2025-07-17 19:21:10 -04:00
2025-08-12 09:41:37 -04:00
2026-03-01 15:43:43 -05:00
2026-02-25 18:15:51 -05:00
2025-07-17 19:21:10 -04:00
2025-07-05 13:40:29 -04:00
2025-07-05 13:15:13 -04:00
2026-02-25 18:23:40 -05:00
2025-07-01 00:13:08 -04:00
2026-02-26 19:15:19 +00:00
2026-02-18 03:39:55 +00:00
2026-03-01 17:35:39 -05:00
2026-02-16 18:09:48 +00:00
2026-02-18 04:05:16 +00:00
2026-08-14 21:16:24 -04:00
2025-08-05 12:56:33 -04:00
2025-08-05 12:40:39 -04:00
2026-02-27 03:32:38 +00:00
2025-08-20 18:36:19 -04:00
2025-08-18 19:12:55 -04:00
2025-08-06 21:45:21 -04:00
2026-02-26 15:45:55 -05:00
2025-06-29 14:51:17 -04:00
2025-07-18 15:39:19 -04:00
2026-03-05 23:26:05 -05:00
2026-03-05 21:52:39 -05:00
2026-03-05 23:26:05 -05:00
2026-03-05 23:26:05 -05:00
2025-07-17 19:21:10 -04:00
2025-08-03 09:37:59 -04:00
2026-02-25 18:07:22 -05:00
2025-08-23 12:05:58 -04:00
2026-03-01 18:33:11 -05:00
2025-08-04 15:01:40 -04:00
2026-07-31 22:48:38 -04:00
2026-02-25 18:15:51 -05:00
2025-08-19 09:53:46 -04:00
2025-08-20 17:57:50 -04:00
2025-07-03 14:11:21 -04:00
2025-08-01 10:38:40 -04:00
2026-02-25 19:24:01 +00:00
2026-03-01 15:43:43 -05:00
2025-07-17 19:21:10 -04:00
2025-08-11 16:05:14 -04:00
2026-03-01 15:43:43 -05:00
2025-08-20 19:43:45 -04:00
2025-08-20 19:43:45 -04:00
2026-07-31 22:48:38 -04:00
2026-02-26 17:26:00 +00:00
2025-08-18 19:12:55 -04:00
2026-03-01 15:43:43 -05:00
2025-08-05 20:34:26 -04:00
2025-08-18 21:12:32 -04:00
2025-07-17 19:21:10 -04:00
2026-08-19 12:22:19 -04:00
2025-08-20 18:36:19 -04:00
2026-08-19 12:22:19 -04:00
2025-07-17 19:21:10 -04:00
2026-02-18 03:39:51 +00:00
2025-07-17 19:21:10 -04:00
2025-07-31 15:47:24 -04:00
2026-08-19 12:22:19 -04:00
2026-02-18 03:39:51 +00:00
2025-08-02 16:26:52 -04:00
2025-07-18 08:25:07 -04:00
2025-07-17 19:21:10 -04:00
2026-08-19 12:22:19 -04:00
2026-02-18 04:05:16 +00:00
2026-08-19 12:22:19 -04:00
2026-02-18 03:39:55 +00:00
2026-02-16 17:21:45 +00:00
2025-07-12 09:04:48 -04:00
2025-07-14 17:24:08 -04:00
2025-07-12 09:04:48 -04:00
2025-07-12 09:04:48 -04:00
2026-08-19 09:10:16 -04:00
2025-08-04 14:46:21 -04:00
2026-03-01 15:43:43 -05:00
2025-07-31 13:06:12 -04:00
2025-07-17 19:21:10 -04:00
2026-02-18 03:39:55 +00:00
2026-07-31 22:48:38 -04:00
2025-08-20 22:15:35 -04:00
2025-08-20 19:43:45 -04:00
2025-08-11 19:35:03 -04:00
2025-07-17 19:21:10 -04:00
2025-08-10 20:59:04 -04:00
2025-07-17 19:21:10 -04:00
2026-02-18 03:39:55 +00:00
2026-03-01 17:35:39 -05:00
2026-03-01 03:09:02 +00:00
2026-07-31 22:48:38 -04:00
2026-02-18 03:39:55 +00:00
2025-08-01 10:38:40 -04:00
2026-02-25 21:22:39 -05:00
2026-03-02 19:04:11 +00:00
2026-02-18 03:39:55 +00:00
2026-03-01 03:09:02 +00:00
2026-03-01 17:35:39 -05:00
2026-03-01 01:24:33 -05:00
2026-03-02 10:11:56 -05:00
2025-08-06 19:49:46 -04:00
2026-03-02 10:11:56 -05:00
2025-07-18 08:25:07 -04:00
2025-08-20 22:15:35 -04:00
2026-03-01 17:35:39 -05:00
2026-03-01 17:35:39 -05:00
2025-08-12 09:41:37 -04:00
2026-08-19 12:22:19 -04:00
2026-03-03 21:56:55 -05:00
2025-08-12 09:41:37 -04:00
2025-08-12 09:41:37 -04:00
2025-08-12 09:41:37 -04:00
2025-08-12 09:41:37 -04:00
2025-08-20 22:15:35 -04:00
2026-03-03 07:40:34 -05:00
2026-08-19 08:58:12 -04:00
2026-03-01 01:31:08 -05:00
2025-08-20 22:15:35 -04:00
2025-08-11 19:35:03 -04:00
2026-07-31 22:48:38 -04:00
2026-08-14 21:16:24 -04:00
2026-02-26 21:36:11 -05:00
2026-02-25 19:18:54 -05:00
2026-02-18 03:39:55 +00:00
2025-08-20 19:11:24 -04:00
2025-07-18 17:02:05 -04:00
2025-08-05 23:05:11 -04:00
2025-08-06 20:04:32 -04:00
2026-02-25 19:18:54 -05:00
2026-02-18 04:05:16 +00:00
2025-08-05 21:53:23 -04:00
2025-08-02 16:26:52 -04:00
2025-08-06 19:23:56 -04:00
2026-07-31 22:31:19 -04:00
2026-03-01 17:35:39 -05:00
2025-08-20 22:15:35 -04:00
2025-08-03 09:37:59 -04:00
2025-08-20 19:43:45 -04:00
2026-03-03 21:56:55 -05:00
2025-08-22 10:01:14 -04:00
2025-07-17 19:21:10 -04:00
2026-08-20 10:37:35 -04:00
2026-07-31 16:27:23 -04:00
2026-03-02 12:28:24 -05:00
2025-07-17 19:21:10 -04:00
2026-03-01 17:35:39 -05:00
2025-08-20 22:15:35 -04:00
2026-02-27 00:14:18 +00:00
2025-08-05 13:13:31 -04:00
2026-02-18 03:39:55 +00:00
2025-08-02 16:26:52 -04:00
2026-02-25 21:22:39 -05:00
2025-08-05 20:34:26 -04:00
2026-08-14 16:41:04 -04:00
2026-02-16 18:09:48 +00:00
2025-07-17 19:21:10 -04:00
2026-07-31 22:31:19 -04:00
2026-07-31 22:31:19 -04:00
2026-08-20 11:37:17 -04:00
2026-07-31 22:31:19 -04:00
2026-03-01 16:39:35 -05:00
2026-03-03 21:22:19 -05:00
2026-08-20 11:09:26 -04:00
2026-08-20 09:19:58 -04:00
2026-08-20 11:21:57 -04:00
2026-07-31 22:31:19 -04:00
2026-08-18 13:36:46 -04:00
2026-03-01 02:59:43 +00:00
2025-07-17 19:21:10 -04:00
2025-07-17 19:21:10 -04:00
2025-07-18 17:38:07 -04:00
2025-08-12 08:48:19 -04:00
2026-02-18 03:39:55 +00:00