Tom Boucher
a731a45cd6
fix( #3116 ): strip trailing CR per line in parseFrontmatterStrict for CRLF WINDOWS.md ( #3137 )
...
* test(#3116 ): failing-first — parseLedger throws on CRLF WINDOWS.md
On repos with core.autocrlf=true (Windows default), .planning/WINDOWS.md
is checked out CRLF. The \n--- close-fence scan leaves the last frontmatter
line's CR attached, and the key:value regex's . doesn't match CR, so the
parser throws WINDOWS_LEDGER_MALFORMED on the last key.
* fix(#3116 ): strip trailing CR per line in parseFrontmatterStrict
The \n--- close-fence scan lands on the LF of the last frontmatter line's
CRLF, so yamlBody ends with a bare \r. split(/\r?\n/) strips CR from
interior lines but the last line's \r survives. The key:value regex fails
because . doesn't match CR.
Fix: strip \r per line (rawLine.replace(/\r$/, '')) rather than normalizing
raw — the writer round-trips raw byte-exact.
* chore(#3116 ): add changeset fragment
* chore(#3116 ): backfill changeset PR number 3137
---------
Co-authored-by: sim <sim@local>
2026-08-07 03:14:40 -04:00
..
2026-07-09 19:38:27 -04:00
2026-08-03 12:05:45 -04:00
2026-07-28 18:02:17 -04:00
2026-08-02 21:44:04 -04:00
2026-06-28 02:12:06 -04:00
2026-07-17 06:50:06 -04:00
2026-06-21 22:55:22 -04:00
2026-07-20 14:59:30 -04:00
2026-07-31 21:20:46 -04:00
2026-08-06 23:57:05 -04:00
2026-06-02 11:45:01 -04:00
2026-06-27 08:43:47 -04:00
2026-06-23 23:21:06 -04:00
2026-08-01 21:27:33 -04:00
2026-08-07 03:14:40 -04:00
2026-06-16 02:38:47 -04:00
2026-07-30 12:48:06 -04:00
2026-06-20 01:59:03 -04:00
2026-07-30 12:48:06 -04:00
2026-07-29 10:55:45 -04:00
2026-06-25 23:55:58 -04:00
2026-07-02 20:34:30 -04:00
2026-07-07 00:19:08 -04:00
2026-07-29 16:58:02 -04:00
2026-07-17 06:50:06 -04:00
2026-08-05 02:14:41 -04:00
2026-07-28 18:02:17 -04:00
2026-07-27 16:24:21 -04:00
2026-07-27 16:24:21 -04:00
2026-06-10 10:40:12 -04:00
2026-06-26 12:19:39 -04:00
2026-07-12 15:34:59 -04:00
2026-07-05 19:16:06 +00:00
2026-06-02 11:45:01 -04:00
2026-08-03 19:59:58 -04:00
2026-06-02 11:45:01 -04:00
2026-06-13 10:27:12 -04:00
2026-06-23 22:47:57 -04:00
2026-08-04 17:21:24 -04:00
2026-08-01 21:00:23 -04:00
2026-08-05 21:26:38 -04:00
2026-06-23 16:10:34 -04:00
2026-06-15 18:50:46 -04:00
2026-08-03 10:46:22 -04:00
2026-06-08 22:51:43 -04:00
2026-07-31 23:03:13 -04:00
2026-07-31 15:44:19 -04:00
2026-06-02 11:45:01 -04:00
2026-08-01 08:24:05 -04:00
2026-06-22 23:43:22 -04:00
2026-07-17 16:25:13 -04:00
2026-08-03 19:59:58 -04:00
2026-07-13 15:36:17 -04:00
2026-06-14 21:44:21 -04:00
2026-06-28 02:12:06 -04:00
2026-07-26 21:42:50 -04:00
2026-06-24 17:16:13 -04:00
2026-06-24 17:16:13 -04:00
2026-07-17 06:50:06 -04:00
2026-08-05 16:00:52 -04:00
2026-06-11 11:36:50 -04:00
2026-06-08 23:37:41 -04:00
2026-08-05 02:18:25 -04:00
2026-07-17 06:49:58 -04:00
2026-08-03 12:16:56 -04:00
2026-08-06 00:32:28 -04:00
2026-06-23 23:21:06 -04:00
2026-08-06 02:56:07 -04:00
2026-08-03 15:21:30 -04:00
2026-07-02 18:08:42 -04:00
2026-06-28 11:44:36 -04:00
2026-07-02 21:45:35 -04:00
2026-08-04 20:33:50 -04:00
2026-08-03 19:59:58 -04:00
2026-08-06 06:44:28 -04:00
2026-07-07 22:21:45 -04:00
2026-08-04 14:31:07 -04:00
2026-08-04 18:10:31 -04:00
2026-07-13 15:36:17 -04:00
2026-08-04 23:42:16 -04:00
2026-07-21 08:26:47 -04:00
2026-06-23 23:21:06 -04:00
2026-06-16 00:12:54 -04:00
2026-08-05 16:00:52 -04:00
2026-06-15 16:18:54 -04:00
2026-07-07 19:38:01 -04:00
2026-07-31 13:17:01 -04:00
2026-07-14 14:25:44 -04:00
2026-08-05 13:30:55 -04:00
2026-08-05 13:30:55 -04:00
2026-08-06 23:57:05 -04:00
2026-06-28 11:27:44 -04:00
2026-07-21 19:10:22 -04:00
2026-06-02 11:45:01 -04:00
2026-07-20 14:59:30 -04:00
2026-07-07 12:14:43 -04:00
2026-07-19 15:43:48 -04:00
2026-06-02 11:45:01 -04:00
2026-06-05 17:58:48 -04:00
2026-07-28 18:02:17 -04:00
2026-07-26 21:42:50 -04:00
2026-08-01 23:06:43 -04:00
2026-07-13 20:39:58 -04:00
2026-08-04 06:47:46 -04:00
2026-08-06 23:57:05 -04:00
2026-07-02 11:14:01 -04:00
2026-08-04 06:47:46 -04:00
2026-07-28 18:02:11 -04:00
2026-07-27 16:50:12 -04:00
2026-07-28 21:11:48 -04:00
2026-07-02 11:55:53 -04:00
2026-07-26 01:06:35 -04:00
2026-06-08 14:04:26 -04:00
2026-07-03 23:21:55 -04:00
2026-07-31 02:30:50 -04:00
2026-08-04 22:41:01 -04:00
2026-06-06 11:24:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-18 07:44:52 -04:00
2026-08-03 12:05:45 -04:00
2026-08-04 18:59:19 -04:00
2026-07-30 12:48:06 -04:00
2026-08-06 23:57:05 -04:00
2026-07-29 16:58:02 -04:00
2026-08-05 18:22:14 -04:00
2026-08-05 13:10:52 -04:00
2026-07-10 09:44:49 -04:00
2026-08-06 08:07:24 -04:00
2026-08-06 10:20:22 -04:00
2026-07-13 15:36:17 -04:00
2026-08-04 18:10:31 -04:00
2026-07-11 23:24:42 -04:00
2026-08-03 18:56:42 -04:00
2026-08-04 23:42:16 -04:00
2026-07-22 00:27:35 -04:00
2026-06-11 12:37:25 -04:00
2026-07-13 15:36:17 -04:00
2026-06-02 11:45:01 -04:00
2026-08-03 19:59:58 -04:00
2026-07-14 14:25:44 -04:00
2026-06-18 14:41:20 -04:00
2026-08-06 23:57:05 -04:00
2026-07-27 16:50:12 -04:00
2026-07-06 14:40:38 -04:00
2026-06-29 16:15:55 -04:00
2026-07-30 19:55:03 -04:00
2026-06-28 11:44:36 -04:00
2026-08-06 23:57:05 -04:00
2026-08-06 23:57:05 -04:00
2026-08-04 14:31:07 -04:00
2026-06-15 16:18:54 -04:00
2026-06-17 08:52:23 -04:00
2026-07-12 15:34:59 -04:00
2026-08-05 16:00:52 -04:00
2026-08-05 11:19:17 -04:00
2026-07-28 18:31:47 -04:00
2026-07-12 16:22:47 -04:00
2026-07-27 20:17:09 -04:00
2026-07-04 13:32:51 -04:00
2026-06-02 11:45:01 -04:00
2026-07-29 12:29:45 -04:00
2026-06-07 01:26:56 -04:00
2026-08-05 16:00:52 -04:00
2026-06-02 11:45:01 -04:00
2026-08-05 16:00:52 -04:00
2026-08-03 19:59:58 -04:00
2026-08-02 23:43:32 -04:00
2026-08-05 16:00:52 -04:00
2026-06-02 11:45:01 -04:00
2026-08-01 23:06:43 -04:00
2026-08-05 16:00:52 -04:00
2026-08-06 04:26:59 -04:00
2026-07-13 20:39:58 -04:00