From 8a87adf120d5057b06d0474b293fab079e1ce967 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 1 May 2026 22:02:32 +0900 Subject: fix(install): preserve LockedPackage extra_fields in installed.json Composer's InstalledFilesystemRepository::write() dumps the full package via ArrayDumper, so flags like `abandoned` and `default-branch` (which Mozart parks in LockedPackage::extra_fields) should round-trip from composer.lock into vendor/composer/installed.json. locked_to_installed_entry was zeroing the destination's extra_fields, silently stripping these flags every time installed.json got rewritten. Carry the extra_fields map across verbatim. The install-forces-reinstall-if-abandon-changes installer fixture is already exit-0 green at the harness layer; this aligns the actual end-state with Composer's EXPECT-INSTALLED so a future EXPECT-INSTALLED comparison won't re-flag this gap. Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/mozart/tests/installer.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'crates/mozart/tests') diff --git a/crates/mozart/tests/installer.rs b/crates/mozart/tests/installer.rs index 314771c..7af07b5 100644 --- a/crates/mozart/tests/installer.rs +++ b/crates/mozart/tests/installer.rs @@ -242,10 +242,7 @@ installer_fixture!( install_dev_using_dist, ignore = "mozart binary cannot yet run this fixture" ); -installer_fixture!( - install_forces_reinstall_if_abandon_changes, - ignore = "mozart binary cannot yet run this fixture" -); +installer_fixture!(install_forces_reinstall_if_abandon_changes); installer_fixture!( install_from_incomplete_lock, ignore = "mozart binary cannot yet run this fixture" -- cgit v1.3.1