Store manifest entries as objects for forwards-compatibility
Assisted-by: Claude Opus 4.6 via Claude Code
diff --git a/Rakefile b/Rakefile
index ffbb4b5..11471a8 100644
--- a/Rakefile
+++ b/Rakefile
@@ -153,7 +153,7 @@ namespace :snapshots do
end
manifest = current_dir / "manifest.json"
- order = manifest.exist? ? JSON.parse(manifest.read) : []
+ order = manifest.exist? ? JSON.parse(manifest.read).map { |e| e["name"] } : []
baseline_images = baseline_dir.glob("*.png").map { |f| f.basename(".png").to_s }
current_images = current_dir.glob("*.png").map { |f| f.basename(".png").to_s }
all_names = order | current_images | baseline_images
@@ -196,7 +196,7 @@ namespace :snapshots do
css_sources.each_key { |src| cp src, output_path.dirname.to_s }
manifest = images_dir / "manifest.json"
- order = manifest.exist? ? JSON.parse(manifest.read) : []
+ order = manifest.exist? ? JSON.parse(manifest.read).map { |e| e["name"] } : []
all_pngs = images_dir.glob("*.png").map { |f| f.basename(".png").to_s }
names = order | all_pngs
diff --git a/lib/ketchup/snapshots.rb b/lib/ketchup/snapshots.rb
index cb11ec7..bd2c2c6 100644
--- a/lib/ketchup/snapshots.rb
+++ b/lib/ketchup/snapshots.rb
@@ -84,7 +84,8 @@ module Ketchup
snap("after-complete")
- (@output_dir / "manifest.json").write(JSON.pretty_generate(@names))
+ entries = @names.map { |name| { name: name } }
+ (@output_dir / "manifest.json").write(JSON.pretty_generate(entries))
end
def default_server(browser)