rea/tests
Kaoru0822 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
..
acceptance refactor(binary): group session selection and snapshot ownership (#886) 2026-10-07 15:05:29 +08:00
boundary fix(artifacts): decode flat keyed-archive NIBs with data and shared references 2026-10-07 08:10:25 +00:00
composition refactor(binary): group session selection and snapshot ownership (#886) 2026-10-07 15:05:29 +08:00
conformance Merge pull request #870 from morluto/fix/keyed-archive-uid-named-keys 2026-10-06 23:03:09 -07:00
evaluation refactor(provider): declare deep capabilities from source (#892) 2026-10-07 15:41:50 +08:00
fixtures refactor(binary): group session selection and snapshot ownership (#886) 2026-10-07 15:05:29 +08:00
process-global fix(cli): fail when JSON input files cannot be parsed 2026-10-06 03:02:22 -07:00
support refactor(domain): split error taxonomy into thematic modules (#636) 2026-10-06 05:57:38 +08:00