Store manifest entries as objects for forwards-compatibility
Assisted-by: Claude Opus 4.6 via Claude Code
change qlvszwwnokyvsnvzulmqpvoktwytnmlk
commit 70cc5a1792cdd083d914aab4a6fe025bbead9831
author Alpha Chen <alpha@kejadlen.dev>
date
parent skwvkxrv
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)