Skip to content

feat: smooth sprites option (cleanEdge upscaling) - #1023

Open
jimhigson wants to merge 2 commits into
e2e-remove-retriesfrom
claude/pixel-art-isometric-scaler-wd26kf
Open

feat: smooth sprites option (cleanEdge upscaling)#1023
jimhigson wants to merge 2 commits into
e2e-remove-retriesfrom
claude/pixel-art-isometric-scaler-wd26kf

Conversation

@jimhigson

@jimhigson jimhigson commented Jul 19, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings July 19, 2026 13:33
@netlify

netlify Bot commented Jul 19, 2026

Copy link
Copy Markdown

Deploy Preview for blockstack ready!

Name Link
🔨 Latest commit 6ff0ceb
🔍 Latest deploy log https://app.netlify.com/projects/blockstack/deploys/6a833ad47213d900085d16a8
😎 Deploy Preview https://deploy-preview-1023--blockstack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

github-actions Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

📡 real network cost to ready

True wire bytes from cold cache to performance.mark, network settled.

PR vs main · v26.0.0-68-g0fb20d38f vs production · v26.0.0 vs v25.0.0
📋 to menu 290.5 kB +1.7 kB
📈 +0.6%
was 288.8 kB
-6.0 kB
📉 -2.0%
was 296.6 kB
✅ -22.1 kB
📉 -7.1%
was 312.6 kB
🎮 to game 664.4 kB +1.6 kB
📈 +0.2%
was 662.8 kB
+8.3 kB
📈 +1.3%
was 656.1 kB
+5.5 kB
📈 +0.8%
was 658.9 kB
Σ 954.9 kB +3.3 kB
📈 +0.3%
was 951.7 kB
+2.2 kB
📈 +0.2%
was 952.7 kB
-16.6 kB
📉 -1.7%
was 971.5 kB
🗺️ open map 10.9 kB 🤷 ±0 B
±0.0%
was 10.9 kB
🔍 +603 B
📈 +5.7%
was 10.3 kB
Σ 965.8 kB +3.3 kB
📈 +0.3%
was 962.5 kB
+2.8 kB
📈 +0.3%
was 963.0 kB
✨ turn smoothing on 8.6 kB
total (game) 974.5 kB
🔄 cold restart — editor
🛠️ editor 1.14 MB +1.9 kB
📈 +0.2%
was 1.14 MB
+4.1 kB
📈 +0.4%
was 1.14 MB
-7.1 kB
📉 -0.6%
was 1.15 MB

runs varied by up to 46 B (h2 header-compression noise, within the 512 B tolerance) - the minimum is reported

vs main · v26.0.0-68-g0fb20d38f

📋 to menu: 11 file(s) changed, 51 identical
file PR main delta
/assets/appClock.js 🆕 1.0 kB +1.0 kB
/assets/store.js 140.7 kB 141.6 kB -904 B (-0.6%)
/assets/useUniversalKeys.js 🆕 523 B +523 B
/assets/maxCleanEdgeBakeFactor.js 🆕 476 B +476 B
/assets/App.js 12.5 kB 12.1 kB +396 B (+3.2%)
/assets/uiFont.js 🆕 310 B +310 B
/assets/IdleTracker.js 🗑️ 299 B -299 B
/assets/unitVectors.js 🗑️ 221 B -221 B
/assets/upscaleSelectors.js 247 B 114 B 🆘 +133 B (+116.7%)
/assets/isInPlaytestMode.js 🆕 124 B +124 B
/assets/spritesToppy.js 🆕 114 B +114 B
🎮 to game: 3 file(s) changed, 75 identical
file PR main delta
/assets/gameMain.js 26.0 kB 24.7 kB 🔍 +1.3 kB (+5.4%)
/assets/installAppTickerAsPixiShared.js 🆕 208 B +208 B
/assets/gameColours.js 28.6 kB 28.6 kB +85 B (+0.3%)

🗺️ open map: no per-file changes (5 files identical)

🛠️ editor: 5 file(s) changed, 24 identical
file PR main delta
/editor/assets/index.js 206.8 kB 205.8 kB +1019 B (+0.5%)
/editor/assets/editor.api2.js 693.5 kB 692.8 kB +638 B (+0.1%)
/editor/assets/RoomEditingArea.js 11.9 kB 11.7 kB +160 B (+1.3%)
/editor/assets/index.css 17.0 kB 16.9 kB +144 B (+0.8%)
/editor/assets/LevelEditor.js 43.0 kB 43.0 kB -52 B (-0.1%)

vs production · v26.0.0

📋 to menu: 44 file(s) changed, 21 identical
file PR production delta
/assets/App.js 12.5 kB 19.9 kB 🎉 -7.5 kB (-37.5%)
/assets/index.css 13.6 kB 15.2 kB 👏 -1.6 kB (-10.4%)
/assets/Switch.js 🗑️ 1.4 kB -1.4 kB
/assets/sprites.webp 61.1 kB 62.5 kB -1.3 kB (-2.1%)
/assets/Button.js 🗑️ 1.1 kB -1.1 kB
/assets/CurrentKeyAssignments.js 🆕 1.1 kB +1.1 kB
/assets/appClock.js 🆕 1.0 kB +1.0 kB
/assets/blockstack-head-over-heels.woff2 4.1 kB 4.9 kB 👏 -896 B (-17.7%)
/assets/MainMenuHeading.js 🆕 847 B +847 B
/assets/Tip.js 🗑️ 702 B -702 B
/assets/dialogClasses.js 🆕 549 B +549 B
/assets/useUniversalKeys.js 🆕 523 B +523 B
/assets/maxCleanEdgeBakeFactor.js 🆕 476 B +476 B
/assets/Spinner.js 🆕 396 B +396 B
/assets/index.js 16.2 kB 15.8 kB +394 B (+2.4%)
/assets/Border.js 🆕 393 B +393 B
/assets/useFacingTowardsPointer.js 🆕 336 B +336 B
/assets/PlayAudio.js 🆕 319 B +319 B
/assets/uiFont.js 🆕 310 B +310 B
/assets/ColourCycleText.js 🆕 304 B +304 B
/assets/cn.js 🆕 273 B +273 B
/assets/package.js 🆕 249 B +249 B
/assets/GameApiContext.js 🆕 238 B +238 B
/assets/MenuItems.js 1.4 kB 1.6 kB 👏 -237 B (-14.1%)
/assets/playableTailwindSpriteClassname.js 698 B 908 B 🎉 -210 B (-23.1%)
/assets/unitVectors.js 🗑️ 203 B -203 B
/assets/mitt.js 🆕 193 B +193 B
/assets/useDispatchActionCallback.js 159 B 345 B 🏆 -186 B (-53.9%)
/assets/DialogPortal.js 🆕 183 B +183 B
/assets/gameInfo.js 🆕 180 B +180 B
/assets/cycleSpritesOptionThunk.js 🆕 137 B +137 B
/assets/upscaleSelectors.js 247 B 112 B 🆘 +135 B (+120.5%)
/assets/isInPlaytestMode.js 🆕 124 B +124 B
/assets/MenuItemSeparator.js 🗑️ 122 B -122 B
/assets/needRefreshDialogColourClasses.js 🆕 118 B +118 B
/assets/mainMenuDialogColourClasses.js 🆕 116 B +116 B
/assets/spritesToppy.js 🆕 114 B +114 B
/assets/markdownDialogColourClasses.js 🆕 112 B +112 B
/assets/sureWantEditorDialogColourClasses.js 🆕 108 B +108 B
/assets/quitGameConfirmDialogColourClasses.js 🆕 106 B +106 B
/assets/offerReincarnationDialogColourClasses.js 🆕 100 B +100 B
/assets/mapDialogColourClasses.js 🆕 94 B +94 B
/assets/store.js 140.7 kB 140.8 kB -89 B (-0.1%)
/assets/proclaimEmperorDialogColourClasses.js 🆕 72 B +72 B
🎮 to game: 8 file(s) changed, 72 identical
file PR production delta
/assets/gameColours.js 🆕 28.6 kB +28.6 kB
/assets/RoomRenderer.js 🗑️ 24.3 kB -24.3 kB
/assets/gameMain.js 26.0 kB 24.3 kB 🔍 +1.7 kB (+7.1%)
/assets/cheatRoomIdFromUrlHash.js 21.2 kB 20.1 kB 🔍 +1.0 kB (+5.2%)
/assets/palette.js 🆕 1.0 kB +1.0 kB
/assets/voronoiLut.js 🗑️ 1.0 kB -1.0 kB
/assets/swopPlayablesIfInput.js 2.1 kB 1.1 kB 🆘 +935 B (+80.1%)
/assets/installAppTickerAsPixiShared.js 🆕 208 B +208 B
🗺️ open map: 2 file(s) changed, 3 identical
file PR production delta
/assets/Tip.js 🆕 525 B +525 B
/assets/MapDialog.js 9.0 kB 8.9 kB +79 B (+0.9%)
🛠️ editor: 13 file(s) changed, 19 identical
file PR production delta
/editor/assets/index.js 206.8 kB 198.7 kB +8.1 kB (+4.1%)
/editor/assets/levelEditorSelectorHooks.js 🗑️ 4.8 kB -4.8 kB
/editor/assets/getMovableVector.js 🆕 4.6 kB +4.6 kB
/editor/assets/index.css 17.0 kB 18.5 kB ✅ -1.5 kB (-8.0%)
/editor/assets/sprites.webp 61.2 kB 62.5 kB -1.3 kB (-2.1%)
/editor/assets/blockstack-head-over-heels.woff2 4.1 kB 4.9 kB 👏 -896 B (-17.7%)
/editor/assets/ajv.js 29.6 kB 30.2 kB -678 B (-2.2%)
/editor/assets/RoomEditingArea.js 11.9 kB 11.5 kB +383 B (+3.2%)
/editor/assets/getMovableVector.css 🆕 247 B +247 B
/editor/assets/levelEditorSelectorHooks.css 🗑️ 224 B -224 B
/editor/assets/editor.api2.js 693.5 kB 693.4 kB +86 B (+0.0%)
/editor/assets/twClass.js 🗑️ 62 B -62 B
/editor/assets/LevelEditor.js 43.0 kB 42.9 kB +58 B (+0.1%)

vs v25.0.0

📋 to menu: 51 file(s) changed, 17 identical
file PR v25.0.0 delta
/assets/Tooltip.js 🗑️ 14.4 kB -14.4 kB
/assets/App.js 12.5 kB 20.0 kB 🎉 -7.5 kB (-37.6%)
/assets/sprites.webp 61.1 kB 67.4 kB ✅ -6.3 kB (-9.3%)
/assets/store.js 140.7 kB 139.1 kB +1.6 kB (+1.2%)
/assets/Switch.js 🗑️ 1.4 kB -1.4 kB
/icon-192.png 🗑️ 1.3 kB -1.3 kB
/assets/Button.js 🗑️ 1.2 kB -1.2 kB
/assets/CurrentKeyAssignments.js 🆕 1.1 kB +1.1 kB
/assets/appClock.js 🆕 1.0 kB +1.0 kB
/assets/multilineTextClass.js 🗑️ 942 B -942 B
/assets/MainMenuHeading.js 🆕 847 B +847 B
/assets/dialogClasses.js 🆕 549 B +549 B
/assets/useUniversalKeys.js 🆕 523 B +523 B
/icon-192.webp 🆕 506 B +506 B
/assets/maxCleanEdgeBakeFactor.js 🆕 476 B +476 B
/assets/Spinner.js 🆕 396 B +396 B
/assets/Border.js 🆕 393 B +393 B
/assets/blockstack-head-over-heels.woff2 4.1 kB 3.7 kB ⚠️ +364 B (+9.6%)
/assets/useFacingTowardsPointer.js 🆕 336 B +336 B
/assets/PlayAudio.js 🆕 319 B +319 B
/assets/uiFont.js 🆕 310 B +310 B
/assets/ColourCycleText.js 🆕 304 B +304 B
/assets/index.js 16.2 kB 15.9 kB +296 B (+1.8%)
/assets/openExternalLink.js 397 B 104 B 🆘 +293 B (+281.7%)
/assets/cn.js 🆕 273 B +273 B
/assets/package.js 🆕 249 B +249 B
/assets/MenuItems.js 1.4 kB 1.6 kB 👏 -243 B (-14.4%)
/assets/GameApiContext.js 🆕 238 B +238 B
/assets/useDispatchActionCallback.js 159 B 376 B 🏆 -217 B (-57.7%)
/assets/unitVectors.js 🗑️ 202 B -202 B
/assets/playableTailwindSpriteClassname.js 698 B 899 B 🎉 -201 B (-22.4%)
/assets/mitt.js 🆕 193 B +193 B
/assets/DialogPortal.js 🆕 183 B +183 B
/assets/gameInfo.js 🆕 180 B +180 B
/assets/index.css 13.6 kB 13.8 kB -172 B (-1.2%)
/assets/cycleSpritesOptionThunk.js 🆕 137 B +137 B
/assets/upscaleSelectors.js 247 B 114 B 🆘 +133 B (+116.7%)
/assets/MenuItemSeparator.js 🗑️ 130 B -130 B
/assets/isInPlaytestMode.js 🆕 124 B +124 B
/assets/needRefreshDialogColourClasses.js 🆕 118 B +118 B
/assets/mainMenuDialogColourClasses.js 🆕 116 B +116 B
/assets/spritesToppy.js 🆕 114 B +114 B
/assets/markdownDialogColourClasses.js 🆕 112 B +112 B
/assets/sureWantEditorDialogColourClasses.js 🆕 108 B +108 B
/assets/quitGameConfirmDialogColourClasses.js 🆕 106 B +106 B
/assets/offerReincarnationDialogColourClasses.js 🆕 100 B +100 B
/assets/mapDialogColourClasses.js 🆕 94 B +94 B
/assets/BlockyMarkdown.js 2.1 kB 2.0 kB +84 B (+4.2%)
/assets/proclaimEmperorDialogColourClasses.js 🆕 72 B +72 B
/assets/twClass.js 🗑️ 62 B -62 B
/assets/DialogTitleBar.js 566 B 623 B ✅ -57 B (-9.1%)
🎮 to game: 12 file(s) changed, 70 identical
file PR v25.0.0 delta
/assets/gameColours.js 🆕 28.6 kB +28.6 kB
/assets/RoomRenderer.js 🗑️ 22.0 kB -22.0 kB
/assets/campaign.js 🗑️ 19.8 kB -19.8 kB
/assets/campaign.columnar.json 🆕 13.7 kB +13.7 kB
/assets/gameMain.js 26.0 kB 23.7 kB ⚠️ +2.4 kB (+10.0%)
/assets/cheatRoomIdFromUrlHash.js 21.2 kB 19.6 kB 🔍 +1.5 kB (+7.8%)
/assets/swopPlayablesIfInput.js 2.1 kB 1.0 kB 🆘 +1.0 kB (+101.7%)
/assets/palette.js 🆕 1.0 kB +1.0 kB
/assets/voronoiLut.js 🗑️ 1.0 kB -1.0 kB
/assets/RoomJson.js 🗑️ 258 B -258 B
/assets/installAppTickerAsPixiShared.js 🆕 208 B +208 B
/assets/campaign.columnar.js 🆕 98 B +98 B
🛠️ editor: 27 file(s) changed, 11 identical
file PR v25.0.0 delta
/editor/assets/Tooltip.js 🗑️ 22.3 kB -22.3 kB
/editor/assets/index.js 206.8 kB 193.9 kB 🔍 +12.9 kB (+6.6%)
/editor/assets/levelEditorSelectorHooks.js 🗑️ 8.3 kB -8.3 kB
/editor/assets/useTip.js 🆕 8.3 kB +8.3 kB
/editor/assets/sprites.webp 61.2 kB 67.4 kB ✅ -6.3 kB (-9.3%)
/editor/assets/getMovableVector.js 🆕 4.6 kB +4.6 kB
/editor/assets/LevelEditor.js 43.0 kB 38.4 kB ⚠️ +4.6 kB (+12.0%)
/editor/assets/RoomEditingArea.js 11.9 kB 10.4 kB ⚠️ +1.5 kB (+14.3%)
/editor/assets/ToolbarButton.js 🗑️ 1.5 kB -1.5 kB
/editor/assets/ajv.js 29.6 kB 30.3 kB -742 B (-2.4%)
/editor/assets/EditorMapRoomTooltipBehaviour.js 🗑️ 425 B -425 B
/editor/assets/RoomPreview.js 🗑️ 414 B -414 B
/editor/assets/index.css 17.0 kB 16.6 kB +407 B (+2.4%)
/editor/assets/blockstack-head-over-heels.woff2 4.1 kB 3.7 kB ⚠️ +364 B (+9.6%)
/editor/assets/getEnabledAuthProviders.js 🆕 296 B +296 B
/editor/assets/supabaseEnvironmentVariables.js 🆕 287 B +287 B
/editor/assets/useElementSize.js 🗑️ 287 B -287 B
/editor/assets/dist.js 🆕 261 B +261 B
/editor/assets/getMovableVector.css 🆕 247 B +247 B
/editor/assets/levelEditorSelectorHooks.css 🗑️ 247 B -247 B
/editor/assets/NonIdealState.js 🗑️ 237 B -237 B
/editor/assets/supabaseDb.js 35.0 kB 35.1 kB -196 B (-0.5%)
/editor/assets/JsonRoomEditor.js 11.7 kB 11.9 kB -157 B (-1.3%)
/editor/assets/editor.api2.js 693.5 kB 693.3 kB +153 B (+0.0%)
/editor/assets/EditorMapInsertButtonDecorator.js 1.3 kB 1.2 kB ⚠️ +148 B (+12.4%)
/editor/assets/room.schema.js 6.6 kB 6.7 kB -63 B (-0.9%)
/editor/assets/twClass.js 🗑️ 62 B -62 B

💾 total built size on disk

Every file in the built site, loaded or not, compressed as served.

PR vs main · v26.0.0-68-g0fb20d38f vs production · v26.0.0 vs v25.0.0
on disk 3.62 MB +21.9 kB
📈 +0.6%
was 3.60 MB
+107.8 kB
📈 +3.0%
was 3.52 MB
+61.1 kB
📈 +1.7%
was 3.56 MB

vs main · v26.0.0-68-g0fb20d38f

28 file(s) changed, 284 identical
file PR main delta
assets/blockstack-head-over-heels-smooth.woff2 🆕 5.1 kB +5.1 kB
editor/assets/blockstack-head-over-heels-smooth.woff2 🆕 5.1 kB +5.1 kB
editor/assets/bakeCleanEdgeTexture.js 🆕 2.9 kB +2.9 kB
assets/bakeCleanEdgeTexture.js 🆕 2.9 kB +2.9 kB
assets/gameMain.js 26.0 kB 24.7 kB 🔍 +1.3 kB (+5.3%)
editor/assets/index.js 206.6 kB 205.6 kB +1019 B (+0.5%)
assets/appClock.js 🆕 1015 B +1015 B
assets/store.js 140.6 kB 141.5 kB -904 B (-0.6%)
assets/useKeyboardShortcut.js 🗑️ 746 B -746 B
editor/assets/editor.api2.js 693.1 kB 692.4 kB +638 B (+0.1%)
assets/Switch.js 1.8 kB 1.2 kB 🚨 +588 B (+46.8%)
assets/useUniversalKeys.js 🆕 491 B +491 B
assets/bakeCleanEdgeImageBlob.js 🆕 472 B +472 B
assets/maxCleanEdgeBakeFactor.js 🆕 444 B +444 B
assets/App.js 12.4 kB 12.1 kB +396 B (+3.2%)
assets/uiFont.js 🆕 278 B +278 B
assets/IdleTracker.js 🗑️ 267 B -267 B
assets/SpritesPage.js 4.7 kB 4.5 kB +202 B (+4.3%)
assets/unitVectors.js 🗑️ 189 B -189 B
assets/installAppTickerAsPixiShared.js 🆕 176 B +176 B
editor/assets/index.css 17.0 kB 16.9 kB +144 B (+0.8%)
editor/assets/RoomEditingArea.js 11.8 kB 11.7 kB +137 B (+1.1%)
assets/upscaleSelectors.js 215 B 82 B 🆘 +133 B (+162.2%)
assets/isInPlaytestMode.js 🆕 92 B +92 B
sw.js 3.2 kB 3.1 kB +90 B (+2.8%)
assets/DisplayOptionsDialog.js 1.1 kB 1019 B 🔍 +88 B (+8.6%)
assets/gameColours.js 28.6 kB 28.5 kB +85 B (+0.3%)
assets/spritesToppy.js 🆕 82 B +82 B

vs production · v26.0.0

90 file(s) changed, 225 identical
file PR production delta
assets/spritesDebug.webp 🆕 32.6 kB +32.6 kB
editor/assets/spritesDebug.webp 🆕 32.6 kB +32.6 kB
assets/gameColours.js 🆕 28.6 kB +28.6 kB
assets/RoomRenderer.js 🗑️ 24.2 kB -24.2 kB
editor/assets/index.js 206.6 kB 198.5 kB +8.1 kB (+4.1%)
assets/App.js 12.4 kB 19.9 kB 🎉 -7.5 kB (-37.5%)
assets/blockstack-head-over-heels-smooth.woff2 🆕 5.1 kB +5.1 kB
editor/assets/blockstack-head-over-heels-smooth.woff2 🆕 5.1 kB +5.1 kB
editor/assets/levelEditorSelectorHooks.js 🗑️ 4.8 kB -4.8 kB
editor/assets/getMovableVector.js 🆕 4.6 kB +4.6 kB
assets/ControlOptionsDialog.js 🆕 3.3 kB +3.3 kB
editor/assets/bakeCleanEdgeTexture.js 🆕 2.9 kB +2.9 kB
assets/bakeCleanEdgeTexture.js 🆕 2.9 kB +2.9 kB
assets/gameMain.js 26.0 kB 24.3 kB 🔍 +1.7 kB (+7.0%)
assets/index.css 13.6 kB 15.1 kB 👏 -1.6 kB (-10.4%)
editor/assets/index.css 17.0 kB 18.5 kB ✅ -1.5 kB (-8.0%)
assets/OptionsDialog.js 🆕 1.4 kB +1.4 kB
assets/sprites.webp 61.1 kB 62.4 kB -1.3 kB (-2.1%)
editor/assets/sprites.webp 61.1 kB 62.4 kB -1.3 kB (-2.1%)
assets/FrameTimingStats.js 🆕 1.2 kB +1.2 kB
assets/CommunityGamesDialog.js 🆕 1.2 kB +1.2 kB
assets/QuitGameConfirmDialog.js 🆕 1.1 kB +1.1 kB
assets/DisplayOptionsDialog.js 🆕 1.1 kB +1.1 kB
assets/CurrentKeyAssignments.js 🆕 1.1 kB +1.1 kB
assets/cheatRoomIdFromUrlHash.js 21.1 kB 20.1 kB 🔍 +1.0 kB (+5.2%)
assets/ScoreDialog.js 🆕 1.0 kB +1.0 kB
assets/enableDetailedFrameTimingLog.js 🆕 1.0 kB +1.0 kB
assets/appClock.js 🆕 1015 B +1015 B
assets/palette.js 🆕 997 B +997 B
assets/voronoiLut.js 🗑️ 993 B -993 B
assets/swopPlayablesIfInput.js 2.0 kB 1.1 kB 🆘 +935 B (+82.4%)
assets/blockstack-head-over-heels.woff2 4.0 kB 4.9 kB 👏 -896 B (-17.9%)
editor/assets/blockstack-head-over-heels.woff2 4.0 kB 4.9 kB 👏 -896 B (-17.9%)
assets/MainMenuHeading.js 🆕 815 B +815 B
assets/OfferReincarnationDialog.js 🆕 695 B +695 B
editor/assets/ajv.js 29.5 kB 30.2 kB -678 B (-2.2%)
assets/ProclaimEmperorDialog.js 🆕 675 B +675 B
assets/SureWantEditorDialog.js 🆕 674 B +674 B
sw.js 3.2 kB 2.6 kB 🚨 +672 B (+25.5%)
assets/AboutDialog.js 🆕 630 B +630 B
assets/SoundDialog.js 🆕 618 B +618 B
assets/Button.js 501 B 1.1 kB 🏆 -616 B (-55.1%)
assets/InstallDialog.js 🆕 572 B +572 B
assets/InputPresetDialog.js 🆕 567 B +567 B
assets/dialogClasses.js 🆕 517 B +517 B
assets/useUniversalKeys.js 🆕 491 B +491 B
assets/EmulatedResolutionDialog.js 🆕 489 B +489 B
assets/bakeCleanEdgeImageBlob.js 🆕 472 B +472 B
assets/Switch.js 1.8 kB 1.4 kB 🚨 +458 B (+33.0%)
assets/maxCleanEdgeBakeFactor.js 🆕 444 B +444 B
assets/index.js 16.2 kB 15.8 kB +385 B (+2.4%)
editor/assets/RoomEditingArea.js 11.8 kB 11.5 kB +383 B (+3.3%)
assets/Spinner.js 🆕 364 B +364 B
assets/Border.js 🆕 361 B +361 B
assets/useFacingTowardsPointer.js 🆕 304 B +304 B
assets/PlayAudio.js 🆕 287 B +287 B
assets/uiFont.js 🆕 278 B +278 B
assets/ColourCycleText.js 🆕 272 B +272 B
assets/Cheats.js 6.2 kB 6.0 kB +259 B (+4.2%)
assets/cn.js 🆕 241 B +241 B
assets/MenuItems.js 1.4 kB 1.6 kB 👏 -237 B (-14.4%)
assets/package.js 🆕 217 B +217 B
assets/playableTailwindSpriteClassname.js 666 B 876 B 🎉 -210 B (-24.0%)
assets/GameApiContext.js 🆕 206 B +206 B
assets/SpritesPage.js 4.7 kB 4.6 kB +196 B (+4.2%)
editor/assets/getMovableVector.css 🆕 192 B +192 B
editor/assets/levelEditorSelectorHooks.css 🗑️ 192 B -192 B
assets/useDispatchActionCallback.js 127 B 313 B 🏆 -186 B (-59.4%)
assets/Tip.js 493 B 670 B 🎉 -177 B (-26.4%)
assets/installAppTickerAsPixiShared.js 🆕 176 B +176 B
assets/unitVectors.js 🗑️ 171 B -171 B
assets/mitt.js 🆕 161 B +161 B
assets/DialogPortal.js 🆕 151 B +151 B
assets/gameInfo.js 🆕 148 B +148 B
assets/upscaleSelectors.js 215 B 80 B 🆘 +135 B (+168.8%)
assets/cycleSpritesOptionThunk.js 🆕 105 B +105 B
assets/isInPlaytestMode.js 🆕 92 B +92 B
assets/store.js 140.6 kB 140.7 kB -89 B (-0.1%)
assets/needRefreshDialogColourClasses.js 🆕 86 B +86 B
editor/assets/editor.api2.js 693.1 kB 693.0 kB +86 B (+0.0%)
assets/mainMenuDialogColourClasses.js 🆕 84 B +84 B
assets/spritesToppy.js 🆕 82 B +82 B
editor/assets/LevelEditor.js 42.9 kB 42.8 kB +81 B (+0.2%)
assets/markdownDialogColourClasses.js 🆕 80 B +80 B
assets/MapDialog.js 8.9 kB 8.8 kB +79 B (+0.9%)
assets/sureWantEditorDialogColourClasses.js 🆕 76 B +76 B
assets/quitGameConfirmDialogColourClasses.js 🆕 74 B +74 B
assets/offerReincarnationDialogColourClasses.js 🆕 68 B +68 B
assets/mapDialogColourClasses.js 🆕 62 B +62 B
assets/MarkdownDialog.js 681 B 625 B 🔍 +56 B (+9.0%)

vs v25.0.0

128 file(s) changed, 202 identical
file PR v25.0.0 delta
assets/spritesDebug.webp 🆕 32.6 kB +32.6 kB
editor/assets/spritesDebug.webp 🆕 32.6 kB +32.6 kB
assets/gameColours.js 🆕 28.6 kB +28.6 kB
editor/assets/Tooltip.js 🗑️ 22.3 kB -22.3 kB
assets/RoomRenderer.js 🗑️ 22.0 kB -22.0 kB
assets/campaign.js 🗑️ 19.8 kB -19.8 kB
editor/assets/campaign.js 🗑️ 19.7 kB -19.7 kB
assets/Tooltip.js 🗑️ 14.4 kB -14.4 kB
assets/campaign.columnar.json 🆕 13.7 kB +13.7 kB
editor/assets/campaign.columnar.json 🆕 13.7 kB +13.7 kB
editor/assets/index.js 206.6 kB 193.7 kB 🔍 +12.9 kB (+6.6%)
editor/assets/levelEditorSelectorHooks.js 🗑️ 8.3 kB -8.3 kB
editor/assets/useTip.js 🆕 8.3 kB +8.3 kB
assets/App.js 12.4 kB 20.0 kB 🎉 -7.5 kB (-37.7%)
assets/spritesToppy.webp 60.8 kB 67.1 kB ✅ -6.3 kB (-9.4%)
editor/assets/spritesToppy.webp 60.8 kB 67.1 kB ✅ -6.3 kB (-9.4%)
assets/sprites.webp 61.1 kB 67.3 kB ✅ -6.3 kB (-9.3%)
editor/assets/sprites.webp 61.1 kB 67.3 kB ✅ -6.3 kB (-9.3%)
assets/blockstack-head-over-heels-smooth.woff2 🆕 5.1 kB +5.1 kB
editor/assets/blockstack-head-over-heels-smooth.woff2 🆕 5.1 kB +5.1 kB
editor/assets/LevelEditor.js 42.9 kB 38.3 kB ⚠️ +4.6 kB (+12.0%)
editor/assets/getMovableVector.js 🆕 4.6 kB +4.6 kB
assets/ControlOptionsDialog.js 🆕 3.3 kB +3.3 kB
editor/assets/bakeCleanEdgeTexture.js 🆕 2.9 kB +2.9 kB
assets/bakeCleanEdgeTexture.js 🆕 2.9 kB +2.9 kB
assets/gameMain.js 26.0 kB 23.6 kB ⚠️ +2.4 kB (+10.1%)
assets/store.js 140.6 kB 139.0 kB +1.6 kB (+1.2%)
assets/cheatRoomIdFromUrlHash.js 21.1 kB 19.6 kB 🔍 +1.5 kB (+7.8%)
editor/assets/RoomEditingArea.js 11.8 kB 10.4 kB ⚠️ +1.5 kB (+14.3%)
editor/assets/ToolbarButton.js 🗑️ 1.5 kB -1.5 kB
assets/OptionsDialog.js 🆕 1.4 kB +1.4 kB
editor/icon-192.png 🗑️ 1.2 kB -1.2 kB
icon-192.png 🗑️ 1.2 kB -1.2 kB
assets/FrameTimingStats.js 🆕 1.2 kB +1.2 kB
assets/CommunityGamesDialog.js 🆕 1.2 kB +1.2 kB
assets/QuitGameConfirmDialog.js 🆕 1.1 kB +1.1 kB
assets/DisplayOptionsDialog.js 🆕 1.1 kB +1.1 kB
assets/CurrentKeyAssignments.js 🆕 1.1 kB +1.1 kB
assets/swopPlayablesIfInput.js 2.0 kB 1010 B 🆘 +1.0 kB (+105.0%)
assets/ScoreDialog.js 🆕 1.0 kB +1.0 kB
assets/enableDetailedFrameTimingLog.js 🆕 1.0 kB +1.0 kB
assets/appClock.js 🆕 1015 B +1015 B
assets/palette.js 🆕 997 B +997 B
assets/voronoiLut.js 🗑️ 995 B -995 B
assets/multilineTextClass.js 🗑️ 910 B -910 B
editor/assets/encoder.js 🆕 875 B +875 B
assets/SanitiseForClassName.js 🆕 873 B +873 B
assets/MainMenuHeading.js 🆕 815 B +815 B
editor/assets/ajv.js 29.5 kB 30.3 kB -742 B (-2.4%)
assets/Button.js 501 B 1.2 kB 🏆 -708 B (-58.6%)
assets/OfferReincarnationDialog.js 🆕 695 B +695 B
assets/ProclaimEmperorDialog.js 🆕 675 B +675 B
assets/SureWantEditorDialog.js 🆕 674 B +674 B
sw.js 3.2 kB 2.6 kB 🚨 +657 B (+24.8%)
editor/icon-512.webp 🆕 640 B +640 B
icon-512.webp 🆕 640 B +640 B
assets/AboutDialog.js 🆕 630 B +630 B
assets/SoundDialog.js 🆕 618 B +618 B
assets/InstallDialog.js 🆕 572 B +572 B
assets/InputPresetDialog.js 🆕 567 B +567 B
assets/MapDialog.js 8.9 kB 8.4 kB 🔍 +534 B (+6.2%)
assets/dialogClasses.js 🆕 517 B +517 B
assets/Tip.js 🆕 493 B +493 B
assets/useUniversalKeys.js 🆕 491 B +491 B
assets/EmulatedResolutionDialog.js 🆕 489 B +489 B
assets/bakeCleanEdgeImageBlob.js 🆕 472 B +472 B
editor/icon-192.webp 🆕 466 B +466 B
icon-192.webp 🆕 466 B +466 B
assets/maxCleanEdgeBakeFactor.js 🆕 444 B +444 B
assets/Switch.js 1.8 kB 1.4 kB 🚨 +436 B (+30.9%)
editor/assets/index.css 17.0 kB 16.6 kB +407 B (+2.4%)
editor/assets/EditorMapRoomTooltipBehaviour.js 🗑️ 393 B -393 B
editor/assets/RoomPreview.js 🗑️ 382 B -382 B
assets/Spinner.js 🆕 364 B +364 B
assets/blockstack-head-over-heels.woff2 4.0 kB 3.7 kB ⚠️ +364 B (+9.7%)
editor/assets/blockstack-head-over-heels.woff2 4.0 kB 3.7 kB ⚠️ +364 B (+9.7%)
assets/Border.js 🆕 361 B +361 B
assets/MapRoomTooltipBehaviour.js 🗑️ 335 B -335 B
assets/useFacingTowardsPointer.js 🆕 304 B +304 B
assets/openExternalLink.js 365 B 72 B 🆘 +293 B (+406.9%)
assets/PlayAudio.js 🆕 287 B +287 B
assets/index.js 16.2 kB 15.9 kB +287 B (+1.8%)
assets/uiFont.js 🆕 278 B +278 B
assets/ColourCycleText.js 🆕 272 B +272 B
editor/assets/getEnabledAuthProviders.js 🆕 264 B +264 B
editor/assets/supabaseEnvironmentVariables.js 🆕 255 B +255 B
editor/assets/useElementSize.js 🗑️ 255 B -255 B
assets/MenuItems.js 1.4 kB 1.6 kB 👏 -243 B (-14.7%)
assets/cn.js 🆕 241 B +241 B
editor/assets/dist.js 🆕 229 B +229 B
assets/RoomJson.js 🗑️ 226 B -226 B
assets/package.js 🆕 217 B +217 B
assets/useDispatchActionCallback.js 127 B 344 B 🏆 -217 B (-63.1%)
assets/Select.js 3.5 kB 3.7 kB ✅ -210 B (-5.5%)
assets/GameApiContext.js 🆕 206 B +206 B
editor/assets/NonIdealState.js 🗑️ 205 B -205 B
assets/playableTailwindSpriteClassname.js 666 B 867 B 🎉 -201 B (-23.2%)
editor/assets/supabaseDb.js 34.9 kB 35.1 kB -196 B (-0.5%)
editor/assets/getMovableVector.css 🆕 192 B +192 B
editor/assets/levelEditorSelectorHooks.css 🗑️ 192 B -192 B
assets/installAppTickerAsPixiShared.js 🆕 176 B +176 B
assets/index.css 13.6 kB 13.7 kB -172 B (-1.2%)
assets/unitVectors.js 🗑️ 170 B -170 B
assets/Cheats.js 6.2 kB 6.1 kB +168 B (+2.7%)
assets/mitt.js 🆕 161 B +161 B
editor/assets/JsonRoomEditor.js 11.7 kB 11.8 kB -157 B (-1.3%)
editor/assets/editor.api2.js 693.1 kB 692.9 kB +153 B (+0.0%)
assets/DialogPortal.js 🆕 151 B +151 B
assets/gameInfo.js 🆕 148 B +148 B
editor/assets/EditorMapInsertButtonDecorator.js 1.3 kB 1.1 kB ⚠️ +148 B (+12.8%)
assets/upscaleSelectors.js 215 B 82 B 🆘 +133 B (+162.2%)
assets/cycleSpritesOptionThunk.js 🆕 105 B +105 B
assets/SpritesPage.js 4.7 kB 4.8 kB -99 B (-2.0%)
assets/isInPlaytestMode.js 🆕 92 B +92 B
assets/needRefreshDialogColourClasses.js 🆕 86 B +86 B
assets/BlockyMarkdown.js 2.0 kB 1.9 kB +84 B (+4.2%)
assets/mainMenuDialogColourClasses.js 🆕 84 B +84 B
assets/spritesToppy.js 🆕 82 B +82 B
assets/markdownDialogColourClasses.js 🆕 80 B +80 B
editor/assets/campaign.columnar.js 🆕 79 B +79 B
assets/sureWantEditorDialogColourClasses.js 🆕 76 B +76 B
assets/quitGameConfirmDialogColourClasses.js 🆕 74 B +74 B
assets/offerReincarnationDialogColourClasses.js 🆕 68 B +68 B
assets/campaign.columnar.js 🆕 66 B +66 B
editor/assets/room.schema.js 6.6 kB 6.6 kB -63 B (-0.9%)
assets/mapDialogColourClasses.js 🆕 62 B +62 B
assets/DialogTitleBar.js 534 B 591 B 👏 -57 B (-9.6%)
assets/MarkdownDialog.js 681 B 624 B 🔍 +57 B (+9.1%)

📋 per-request breakdown (every url, size and timing) is in the run logs
measured by true-site-size

@jimhigson
jimhigson force-pushed the claude/pixel-art-isometric-scaler-wd26kf branch 6 times, most recently from 29918d1 to 160edd2 Compare July 30, 2026 20:47
@jimhigson
jimhigson force-pushed the claude/pixel-art-isometric-scaler-wd26kf branch 5 times, most recently from c13eb77 to 6116110 Compare August 7, 2026 21:05
@jimhigson
jimhigson force-pushed the claude/pixel-art-isometric-scaler-wd26kf branch 2 times, most recently from 750cb61 to 524cf7c Compare August 12, 2026 04:26
@jimhigson
jimhigson changed the base branch from main to e2e-remove-retries August 17, 2026 16:46
@jimhigson
jimhigson force-pushed the claude/pixel-art-isometric-scaler-wd26kf branch 2 times, most recently from 6ff0ceb to 0bbd1d3 Compare August 18, 2026 02:21
@jimhigson
jimhigson force-pushed the claude/pixel-art-isometric-scaler-wd26kf branch 2 times, most recently from 0199bda to 0da0fff Compare August 18, 2026 02:59
@jimhigson
jimhigson force-pushed the claude/pixel-art-isometric-scaler-wd26kf branch 3 times, most recently from bdf2bb4 to 9baeb9b Compare August 18, 2026 06:47
@jimhigson
jimhigson force-pushed the claude/pixel-art-isometric-scaler-wd26kf branch from 9baeb9b to cb6bdf0 Compare August 18, 2026 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants