Kaoru0822 and Claude Opus 5.5
2a4667bb79
fix(artifacts): decode flat keyed-archive NIBs with data and shared references
...
decode_interface_builder failed on every flat (keyed-archive) NIB that
holds plist data or dates. Archived colors keep their components as
data, so this covers nearly every AppKit NIB: XLD.app decoded 0 of 64.
The decoded Uint8Array and Date values failed JSON validation. They now
use the shared plist projection, which keeps them as explicit
$plist_type values.
Decoding those archives exposed a second failure. The keyed-archive
parser inlined every UID reference up to 16 levels for every object, so
an archive whose views reference their window, superview, and next key
view expanded exponentially. A 9 KB NIB took 3 s, and a 158 KB
MainMenu.nib did not finish. A reference now resolves to its string, or
to a stub naming the referenced object's archive UID, authored ID, and
class. The hierarchy walk visits each object once. The parser also reads
XML CF$UID references and treats UID 0 as nil.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-07 08:10:25 +00:00
..
2026-10-07 14:09:57 +08:00
2026-10-06 04:55:26 +08:00
2026-10-07 15:05:29 +08:00
2026-10-07 14:44:52 +08:00
2026-10-07 13:18:39 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-07 01:47:05 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:58:46 +08:00
2026-10-05 20:16:44 +08:00
2026-10-06 00:24:15 +08:00
2026-10-06 04:55:26 +08:00
2026-10-05 20:16:44 +08:00
2026-10-05 20:16:44 +08:00
2026-10-06 23:58:59 -07:00
2026-10-06 00:50:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 04:55:26 +08:00
2026-10-06 05:57:38 +08:00
2026-10-05 20:16:44 +08:00
2026-10-07 14:59:52 +08:00
2026-10-07 14:59:52 +08:00
2026-10-06 05:58:46 +08:00
2026-10-06 22:07:29 -07:00
2026-10-07 13:20:02 +08:00
2026-10-05 23:06:19 +08:00
2026-10-06 21:58:20 -07:00
2026-10-07 15:05:29 +08:00
2026-10-06 22:57:36 +08:00
2026-10-06 00:50:38 +08:00
2026-10-07 13:00:24 +08:00
2026-10-07 01:47:05 +08:00
2026-10-07 13:00:24 +08:00
2026-10-06 04:55:26 +08:00
2026-10-06 04:55:26 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 04:55:26 +08:00
2026-10-05 22:28:51 +08:00
2026-10-06 00:50:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-05 21:15:04 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-07 13:18:39 +08:00
2026-10-06 05:57:38 +08:00
2026-10-07 13:18:39 +08:00
2026-10-06 20:17:59 +08:00
2026-10-05 20:16:44 +08:00
2026-10-07 01:47:05 +08:00
2026-10-07 08:10:25 +00:00
2026-10-06 05:57:38 +08:00
2026-10-07 05:24:32 +08:00
2026-10-06 22:00:14 -07:00
2026-10-05 20:16:44 +08:00
2026-10-06 08:52:29 -07:00
2026-10-07 12:17:16 +08:00
2026-10-06 22:58:43 -07:00
2026-10-06 05:57:38 +08:00
2026-10-07 11:23:37 +08:00
2026-10-07 10:33:10 +08:00
2026-10-06 21:11:51 -07:00
2026-10-06 02:42:16 -07:00
2026-10-07 11:28:28 +08:00
2026-10-07 10:28:48 +08:00
2026-10-06 01:02:56 +08:00
2026-10-06 05:58:46 +08:00
2026-10-06 05:58:46 +08:00
2026-10-05 22:28:51 +08:00
2026-10-07 12:46:13 +08:00
2026-10-07 12:46:13 +08:00
2026-10-07 12:46:13 +08:00
2026-10-06 04:06:11 -07:00
2026-10-06 00:50:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 00:50:38 +08:00
2026-10-06 21:00:57 -07:00
2026-10-06 21:00:57 -07:00
2026-10-06 00:50:38 +08:00
2026-10-06 20:43:08 -07:00
2026-10-06 20:43:08 -07:00
2026-10-05 23:42:48 +08:00
2026-10-06 04:55:26 +08:00
2026-10-06 00:50:38 +08:00
2026-10-05 23:42:48 +08:00
2026-10-06 20:43:08 -07:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:58:46 +08:00
2026-10-06 05:58:46 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 00:50:38 +08:00
2026-10-05 22:54:17 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-07 10:33:10 +08:00
2026-10-07 10:33:10 +08:00
2026-10-07 11:45:17 +08:00
2026-10-07 04:20:53 +08:00
2026-10-05 21:15:04 +08:00
2026-10-06 05:57:38 +08:00
2026-10-06 05:57:38 +08:00
2026-10-05 21:15:04 +08:00
2026-10-06 05:58:46 +08:00
2026-10-06 05:58:46 +08:00
2026-10-05 21:15:04 +08:00
2026-10-06 05:58:46 +08:00
2026-10-06 00:50:38 +08:00
2026-10-05 21:15:04 +08:00
2026-10-06 01:43:45 -07:00
2026-10-05 21:15:04 +08:00
2026-10-07 04:20:53 +08:00
2026-10-07 04:20:53 +08:00
2026-10-06 01:22:45 -07:00
2026-10-06 01:22:45 -07:00
2026-10-06 05:58:46 +08:00
2026-10-05 20:16:44 +08:00
2026-10-05 20:16:44 +08:00
2026-10-05 21:15:04 +08:00
2026-10-07 10:56:06 +08:00
2026-10-07 10:49:23 +08:00
2026-10-07 10:33:10 +08:00
2026-10-06 05:57:38 +08:00
2026-10-07 04:02:10 +08:00
2026-10-07 10:33:10 +08:00
2026-10-06 05:58:46 +08:00
2026-10-07 04:02:10 +08:00
2026-10-06 16:18:42 +08:00
2026-10-07 15:05:29 +08:00
2026-10-06 05:00:32 +08:00
2026-10-06 05:00:32 +08:00
2026-10-05 22:13:22 -07:00
2026-10-06 05:00:32 +08:00
2026-10-07 13:00:24 +08:00
2026-10-06 05:00:32 +08:00
2026-10-06 21:58:20 -07:00
2026-10-06 05:00:32 +08:00
2026-10-07 13:00:24 +08:00
2026-10-06 05:00:32 +08:00
2026-10-06 16:53:33 +08:00
2026-10-06 16:53:33 +08:00
2026-10-06 22:57:36 +08:00
2026-10-06 05:00:32 +08:00
2026-10-06 05:58:46 +08:00
2026-10-06 14:15:59 +08:00
2026-10-06 21:58:20 -07:00
2026-10-05 23:06:19 +08:00
2026-10-06 00:50:38 +08:00
2026-10-06 21:58:20 -07:00
2026-10-06 05:58:46 +08:00
2026-10-07 14:59:52 +08:00
2026-10-07 14:59:52 +08:00
2026-10-07 14:59:52 +08:00
2026-10-07 05:24:32 +08:00
2026-10-06 16:53:33 +08:00