From 6d36c654b094dbef823850e9a90047d8bafc1adc Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 1 May 2026 20:54:50 +0900 Subject: fix(registry): default missing composer.lock _readme to canonical text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Composer treats _readme as write-only metadata: Locker.php injects it on write but the loader never requires it. Mozart's deserializer was strict, so any composer.lock without _readme failed to parse — including most fixtures under composer/tests/.../installer/*.test. Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/mozart-registry/src/lockfile.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/mozart-registry/src/lockfile.rs b/crates/mozart-registry/src/lockfile.rs index eea9b29..64333e6 100644 --- a/crates/mozart-registry/src/lockfile.rs +++ b/crates/mozart-registry/src/lockfile.rs @@ -18,7 +18,7 @@ fn default_empty_object() -> serde_json::Value { /// Represents the content of a composer.lock file. #[derive(Debug, Clone, Serialize, Deserialize)] pub struct LockFile { - #[serde(rename = "_readme")] + #[serde(rename = "_readme", default = "LockFile::default_readme")] pub readme: Vec, #[serde(rename = "content-hash")] -- cgit v1.3.1