wangmiao0668000666
c155e4dbd8
fix(crabbox): preserve UTF-16 boundaries in CLI failure detail truncation ( #104612 )
...
* fix(crabbox): preserve UTF-16 boundaries in CLI failure detail truncation
commandDetail replaced raw .slice(0, MAX_ERROR_DETAIL_CHARS) with
truncateUtf16Safe on the whitespace-compressed error detail output.
A 511-code-unit prefix with an emoji at the boundary produces a lone
high surrogate (U+D83D) on current main; the shared surrogate-aware
helper backs the cut up to preserve well-formed UTF-16.
* fix(crabbox): add provider-path UTF-16 regression test for inspect boundary
The existing test exercised commandDetail directly; ClawSweeper's P1
requires proof through the real provider boundary. The new test calls
provider.inspect() with a CLI runner that returns 511 ASCII + emoji in
stderr, proving commandDetail → truncateUtf16Safe works through the
full inspect → commandError → commandDetail chain.
Co-Authored-By: Claude <noreply@anthropic.com >
* refactor(crabbox): keep error proof on provider path
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 12:50:47 -07:00
..
2026-07-11 04:00:49 +01:00
2026-07-11 00:12:08 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 10:25:14 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 00:55:06 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 12:10:22 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 11:19:12 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 10:25:14 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 12:50:47 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-09 22:31:07 +01:00
2026-07-11 01:09:51 -07:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 12:23:32 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 00:55:06 -07:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 11:44:34 -07:00
2026-07-11 10:50:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 13:48:13 -04:00
2026-07-11 04:00:28 -07:00
2026-07-11 03:57:16 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 12:03:11 -07:00
2026-07-11 01:35:25 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 01:09:51 -07:00
2026-07-11 01:09:51 -07:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 16:40:14 +08:00
2026-07-11 06:30:57 -07:00
2026-07-11 09:32:16 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 06:30:57 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 10:55:27 -07:00
2026-07-11 11:44:34 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 11:19:12 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 01:09:51 -07:00
2026-07-11 01:09:51 -07:00
2026-07-11 00:55:06 -07:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-10 22:02:34 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 10:25:14 -07:00
2026-07-10 21:59:32 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 09:00:56 -07:00
2026-07-11 01:09:51 -07:00
2026-07-11 06:30:57 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 12:11:36 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 06:30:57 -07:00
2026-07-11 04:00:49 +01:00
2026-07-10 06:47:56 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 11:11:31 -07:00
2026-07-11 03:38:54 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 12:33:44 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 10:25:14 -07:00
2026-07-11 10:32:54 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 13:44:21 +05:30
2026-07-11 04:00:49 +01:00
2026-06-29 15:41:26 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 12:03:11 -07:00
2026-07-11 04:00:49 +01:00
2026-06-24 19:08:22 -05:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 01:09:51 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 13:05:16 -04:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 11:11:31 -07:00
2026-07-11 10:16:18 -07:00
2026-07-11 03:30:23 -07:00
2026-07-11 09:32:16 -07:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 04:00:49 +01:00
2026-07-11 10:25:14 -07:00
2026-07-06 09:24:34 -07:00