fix #50: core Release optional sha (spec drift, reviewed)
Message
fix #50: core Release optional sha (spec drift, reviewed)
Diff
.forge/issues/edea1872-a649-47ee-945c-aec33bb02593/issue.md+11 −0
--- /dev/null+++ b/.forge/issues/edea1872-a649-47ee-945c-aec33bb02593/issue.md@@ -0,0 +1,11 @@1+---2+id: edea1872-a649-47ee-945c-aec33bb025933+title: core Release missing optional sha (spec drift)4+state: closed5+labels: []6+assignees: []7+milestone: null8+created: 2026-09-10T00:45:16.902330066Z9+updated: 2026-09-10T00:46:28.331266505Z10+---11+spec/schema.md §Release says Optional: title, sha. spec/fixtures/release.md contains sha: abc1234. CLI ReleaseRec has sha, but f0rge-core Release struct + KNOWN lacks sha, so parse_entity::<Release> warns unknown field sha. Repro: parse golden fixture via core. Fix: add optional sha to core Release + KNOWN.
crates/core/src/lib.rs+3 −1
--- a/crates/core/src/lib.rs+++ b/crates/core/src/lib.rs@@ -532,10 +532,12 @@ pub struct Release {532532 #[serde(default)]533533 pub title: Option<String>,534534 pub created: String,535+ #[serde(default)]536+ pub sha: Option<String>,535537 }536538 537539 impl Validate for Release {538- const KNOWN: &'static [&'static str] = &["version", "title", "created", "schema"];540+ const KNOWN: &'static [&'static str] = &["version", "title", "created", "sha", "schema"];539541 fn validate(&self, file: &str) -> Result<(), ForgeError> {540542 check_ts(&self.created, "created", file)?;541543 Ok(())