Skip to main content

max / audiofiles

fix: restore workspace build against synckit-client ChangeEntry synckit-client gained a required `extra` field on ChangeEntry (a #[serde(flatten)] forward-compat capture); audiofiles-sync constructed ChangeEntry at 5 sites without it. Because audiofiles-sync is a default workspace member that browser and app depend on, the whole GUI app failed to build. Add `extra: Default::default()` at every construction site. cargo build --workspace green; tests pass; clippy clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-04 19:34 UTC
Commit: 860d7c7e2e788524516d730fd3696d4cdefaa257
Parent: 729d3dd
3 files changed, +5 insertions, -1 deletion
@@ -114,7 +114,7 @@ fn load_local_pending(conn: &Connection) -> Result<Vec<ChangeEntry>> {
114 114 let hlc = hlc_json
115 115 .and_then(|s| serde_json::from_str(&s).ok())
116 116 .unwrap_or_default();
117 - out.push(ChangeEntry { table, op, row_id, timestamp: ts, hlc, data });
117 + out.push(ChangeEntry { table, op, row_id, timestamp: ts, hlc, data, extra: Default::default() });
118 118 }
119 119 Ok(out)
120 120 }
@@ -422,6 +422,7 @@ mod tests {
422 422 timestamp: chrono::Utc::now(),
423 423 hlc,
424 424 data: Some(serde_json::json!({"sample_hash": "h1", "tag": "drums"})),
425 + extra: Default::default(),
425 426 }
426 427 }
427 428
@@ -273,6 +273,7 @@ mod tests {
273 273 timestamp: chrono::Utc::now(),
274 274 hlc: Default::default(),
275 275 data,
276 + extra: Default::default(),
276 277 }
277 278 }
278 279
@@ -1613,6 +1614,7 @@ mod tests {
1613 1614 timestamp: chrono::Utc::now(),
1614 1615 hlc: Default::default(),
1615 1616 data: data.and_then(|d| serde_json::from_str(&d).ok()),
1617 + extra: Default::default(),
1616 1618 })
1617 1619 .collect()
1618 1620 }
@@ -287,6 +287,7 @@ async fn push_one_batch(
287 287 timestamp: ts,
288 288 hlc,
289 289 data: parsed_data,
290 + extra: Default::default(),
290 291 })
291 292 })
292 293 .collect();