From 7a90a4b4055e8b5877e1259c9c23aa36f1e0690f Mon Sep 17 00:00:00 2001 From: Afonso Jorge Ramos Date: Wed, 30 Sep 2026 16:58:03 +0200 Subject: [PATCH] chore(classmap): re-verify 1020092, 1020094, 1020097 and 1020098 on archived stock macOS builds The Internet Archive holds Spotify's ARM64 macOS installers for the exact builds these keys describe (1.2.92.148, 1.2.94.583, 1.2.97.270, 1.2.98.301). Each ran signed and unpatched through the full deep CDP run, 10/10 steps with 29 or 30 of 36 leaves observed. 1020084 notes that the archived 1.2.84.476 package has CSS identical to the 1.2.84.475 build it was verified on. --- 1020084/VERIFICATION.md | 1 + 1020092/META.json | 4 ++-- 1020092/VERIFICATION.md | 47 +++++++++++++++++++++++++++++++++++------ 1020094/META.json | 30 +++++++++++++------------- 1020094/VERIFICATION.md | 40 +++++++++++++++++++++++++++++++---- 1020097/META.json | 6 +++--- 1020097/VERIFICATION.md | 38 ++++++++++++++++++++++++++++++--- 1020098/META.json | 6 +++--- 1020098/VERIFICATION.md | 38 ++++++++++++++++++++++++++++++--- index.json | 10 ++++----- 10 files changed, 175 insertions(+), 45 deletions(-) diff --git a/1020084/VERIFICATION.md b/1020084/VERIFICATION.md index b2dbd78..ab6901a 100644 --- a/1020084/VERIFICATION.md +++ b/1020084/VERIFICATION.md @@ -10,6 +10,7 @@ Pipeline: derive(stock CSS -> 1020084) + static target-CSS verification + CDP e2 - Deep CDP verification observed 30/36 paths with 10/10 successful navigation steps. - Unresolved new misses remain usable but are marked unverified; stale paths stay blocked. - Replaces an earlier verification of this key, kept below under Earlier verification. +- Checked on 2026-09-30: the stock 1.2.84.476 package (archived by the Internet Archive from repository.spotify.com) has CSS byte-identical to this 1.2.84.475 build (CSS SHA-256 `24756a80b952a949…`), so the result also holds for the build this key was first verified on. - Kept the earlier live status of search_chips.wrapper, which this run didn't reach. ## Statistics at publication diff --git a/1020092/META.json b/1020092/META.json index 5b93571..7514fa1 100644 --- a/1020092/META.json +++ b/1020092/META.json @@ -9,7 +9,7 @@ "modal.track_credits.container": "verified_cdp", "modal.widget_generator.container": "verified_cdp", "search_box.container": "verified_cdp", - "search_chips.wrapper": "verified_static", + "search_chips.wrapper": "verified_cdp", "settings.button.wrapper": "verified_cdp", "settings.header.container": "verified_cdp", "settings.section.container": "verified_cdp", @@ -21,7 +21,7 @@ "key": null, "method": "derived" }, - "spotify_version": "1.2.92.147", + "spotify_version": "1.2.92.148", "stale_leaves": [ "main.topbar.left.button.icon.wrapper", "main.topbar.right.upgrade_button.wrapper", diff --git a/1020092/VERIFICATION.md b/1020092/VERIFICATION.md index a169237..bb902b6 100644 --- a/1020092/VERIFICATION.md +++ b/1020092/VERIFICATION.md @@ -1,4 +1,4 @@ -# Spotify 1.2.92.147 (1020092) +# Spotify 1.2.92.148 (1020092) Pipeline: derive(stock CSS -> 1020092) + static target-CSS verification + CDP e2e (deep). Published 2026-09-30. @@ -7,13 +7,46 @@ Pipeline: derive(stock CSS -> 1020092) + static target-CSS verification + CDP e2 - Classmap derived from the stock CSS. - Static verification found 32/36 paths in the target CSS. - CSS-only misses observed live by their stock class, which remain verified: 0. -- Deep CDP verification observed 25/36 paths with 10/10 successful navigation steps. +- Deep CDP verification observed 29/36 paths with 10/10 successful navigation steps. - Unresolved new misses remain usable but are marked unverified; stale paths stay blocked. - Derived from 1020040, which is no longer published. - Replaces an earlier verification of this key, kept below under Earlier verification. ## Statistics at publication +| Field | Value | +| --- | --- | +| leaves | 36 | +| static_present | 32 | +| verified_cdp | 29 | +| live_only | 0 | +| unresolved_missing | 4 | +| cdp_hit_rate | 0.8056 | +| overlay_entries | 3 | + +## Evidence + +- Classmap SHA-256: `7b0ec24ad5bf62b6d71279e6311dd36222938b63f6968e1719250596317b7812` +- Overlay SHA-256: `8c05d9ca347e4e13fb31013df4c42bdbf16046408b989afe4d0ea6a25037800e` +- Target CSS SHA-256: `3886e4c8961e0c187af7a9f9862a259d82a040b05ba25c57f234fb4a093436f2` +- CDP report generated: 2026-09-30T14:55:28.891Z + +## Earlier verification + +Pipeline: derive(stock CSS -> 1020092) + static target-CSS verification + CDP e2e (deep). Published 2026-09-30. + +### Notes + +- Classmap derived from the stock CSS. +- Static verification found 32/36 paths in the target CSS. +- CSS-only misses observed live by their stock class, which remain verified: 0. +- Deep CDP verification observed 25/36 paths with 10/10 successful navigation steps. +- Unresolved new misses remain usable but are marked unverified; stale paths stay blocked. +- Derived from 1020040, which is no longer published. +- Replaces an earlier verification of this key, kept below under Earlier verification. + +### Statistics at publication + | Field | Value | | --- | --- | | leaves | 36 | @@ -24,18 +57,18 @@ Pipeline: derive(stock CSS -> 1020092) + static target-CSS verification + CDP e2 | cdp_hit_rate | 0.6944 | | overlay_entries | 3 | -## Evidence +### Evidence - Classmap SHA-256: `7b0ec24ad5bf62b6d71279e6311dd36222938b63f6968e1719250596317b7812` - Overlay SHA-256: `8c05d9ca347e4e13fb31013df4c42bdbf16046408b989afe4d0ea6a25037800e` - Target CSS SHA-256: `3886e4c8961e0c187af7a9f9862a259d82a040b05ba25c57f234fb4a093436f2` - CDP report generated: 2026-09-30T13:36:40.937Z -## Earlier verification +### Earlier verification Pipeline: migrate(1020040 -> 1020092) + static verify + CDP e2e (deep) + manual DOM probe. -### Notes +#### Notes - CDP e2e (deep navigation: home/search/library/playlist/context menu/settings) verified 19 leaves by hashed-class DOM presence on a stock 1.2.92.148 client. - modal.track_credits.* remapped to trackCreditsModalV2 classes (Spotify replaced the V1 modal); V2 hashes verified in live DOM via View credits. @@ -45,7 +78,7 @@ Pipeline: migrate(1020040 -> 1020092) + static verify + CDP e2e (deep) + manual - main.topbar.left.button_t.wrapper remapped to main-globalNav-link-icon (_Bg_zSvFrEutyacG), live on the nav buttons custom navlinks clone. - Retired in 1.2.9x (kept stale, no candidate hash anywhere in the spa): topbar.left.button.icon.wrapper (icon span unclassed), topbar.right.upgrade_button.wrapper (no Upgrade button surface), settings.text_input (settings inputs are Encore form controls now). -### Statistics at publication +#### Statistics at publication | Field | Value | | --- | --- | @@ -58,7 +91,7 @@ Pipeline: migrate(1020040 -> 1020092) + static verify + CDP e2e (deep) + manual | threshold | 0.55 | | css_map_entries | 2585 | -### Migration guards +#### Migration guards - playbar!=actionBar - content!=closeBtn diff --git a/1020094/META.json b/1020094/META.json index 9969967..99e7ab1 100644 --- a/1020094/META.json +++ b/1020094/META.json @@ -2,19 +2,19 @@ "classmap_key": "1020094", "generated": "2026-07-21", "required_paths": { - "context_menu.menu_item": "verified", - "main.navbar.link.wrapper": "verified", - "main.playbar.buttons.button.wrapper": "verified", - "main.topbar.wrapper": "verified", - "modal.track_credits.container": "verified", - "modal.widget_generator.container": "verified", - "search_box.container": "verified", - "search_chips.wrapper": "verified", - "settings.button.wrapper": "unverified", - "settings.header.container": "verified", - "settings.section.container": "verified", - "sort_box.list.button": "verified", - "tracklist.column_header": "verified" + "context_menu.menu_item": "verified_cdp", + "main.navbar.link.wrapper": "verified_cdp", + "main.playbar.buttons.button.wrapper": "verified_cdp", + "main.topbar.wrapper": "verified_cdp", + "modal.track_credits.container": "verified_cdp", + "modal.widget_generator.container": "verified_cdp", + "search_box.container": "verified_cdp", + "search_chips.wrapper": "verified_cdp", + "settings.button.wrapper": "verified_cdp", + "settings.header.container": "verified_cdp", + "settings.section.container": "verified_cdp", + "sort_box.list.button": "verified_cdp", + "tracklist.column_header": "verified_cdp" }, "schema_version": 2, "source": { @@ -28,7 +28,7 @@ ], "status": "verified", "unverified_leaves": [ - "settings.button.wrapper" + "main.playbar.buttons.button.wrapper__indicator" ], - "verified_classmap_sha256": null + "verified_classmap_sha256": "dc5212855a7b460980548d296313bfaf76696d9f5a43aa456289990273eefec3" } diff --git a/1020094/VERIFICATION.md b/1020094/VERIFICATION.md index 7313413..1156251 100644 --- a/1020094/VERIFICATION.md +++ b/1020094/VERIFICATION.md @@ -1,9 +1,41 @@ # Spotify 1.2.94.583 (1020094) -Pipeline: migrate(1020092 -> 1020094) + static verify + CDP e2e (deep) on live 1.2.94.583. +Pipeline: derive(1020092 -> 1020094) + static target-CSS verification + CDP e2e (deep). Published 2026-09-30. ## Notes +- Classmap derived from 1020092. +- Static verification found 33/36 paths in the target CSS. +- CSS-only misses observed live by their stock class, which remain verified: 0. +- Deep CDP verification observed 30/36 paths with 10/10 successful navigation steps. +- Unresolved new misses remain usable but are marked unverified; stale paths stay blocked. +- Replaces an earlier verification of this key, kept below under Earlier verification. + +## Statistics at publication + +| Field | Value | +| --- | --- | +| leaves | 36 | +| static_present | 33 | +| verified_cdp | 30 | +| live_only | 0 | +| unresolved_missing | 3 | +| cdp_hit_rate | 0.8333 | +| overlay_entries | 4 | + +## Evidence + +- Classmap SHA-256: `dc5212855a7b460980548d296313bfaf76696d9f5a43aa456289990273eefec3` +- Overlay SHA-256: `63828d9b3b7ad07d4a8dda92a22706a491c12106e817c12f0b701e289fd07efc` +- Target CSS SHA-256: `1f06bd75d2a9e2fc0cf3287f8e536eb58543932f9a75d43f59b154a63d713d74` +- CDP report generated: 2026-09-30T14:55:43.139Z + +## Earlier verification + +Pipeline: migrate(1020092 -> 1020094) + static verify + CDP e2e (deep) on live 1.2.94.583. + +### Notes + - 27 of 28 good 1020092 leaves survived unchanged into 1.2.94 (identity); the only non-identity migrate hit was the known artist-artistDiscography-topBar false friend and was reverted to stale. - CDP e2e (deep navigation) on a live stock 1.2.94.583 client verified 20 leaves by hashed-class DOM presence, including the two settings fixes hand-mapped during 1020092 verification. - settings.button.wrapper is present in 1.2.94 CSS but was not rendered during navigation (proxy section requires settings scroll); left unverified. @@ -16,7 +48,7 @@ Pipeline: migrate(1020092 -> 1020094) + static verify + CDP e2e (deep) on live 1 - settings.text_input remapped to the Encore form control classes (e-10451-form-input e-10451-form-control encore-text-body-medium), CDP-verified on a live 1.2.94.583 settings page (Search locations input). Multi-class value; valid for className contexts, which is the leaf's only use. - The qnaFIKUJ9oUIkN97 overlay has pointer-events:none, an absolute three-column panel-gap grid, and black child backgrounds in the stock xpui-snapshot.css. It supplies the existing Flow theme main-layoutResizer-seam child-background rule. No visibility-state mapping is added because its element role has not been verified. -## Statistics at publication +### Statistics at publication | Field | Value | | --- | --- | @@ -30,14 +62,14 @@ Pipeline: migrate(1020092 -> 1020094) + static verify + CDP e2e (deep) on live 1 | css_map_entries | 2585 | | unverified | 1 | -## Migration guards +### Migration guards - playbar!=actionBar - content!=closeBtn - settings!=equalizer/NPV/actionBar - semantic-only requires target CSS presence (sem>=0.75) -## CSS overlay +### CSS overlay - File: css-map.json - Entries: 4 diff --git a/1020097/META.json b/1020097/META.json index 053c336..8b66763 100644 --- a/1020097/META.json +++ b/1020097/META.json @@ -6,8 +6,8 @@ "main.navbar.link.wrapper": "verified_cdp", "main.playbar.buttons.button.wrapper": "verified_cdp", "main.topbar.wrapper": "verified_cdp", - "modal.track_credits.container": "verified_static", - "modal.widget_generator.container": "verified_static", + "modal.track_credits.container": "verified_cdp", + "modal.widget_generator.container": "verified_cdp", "search_box.container": "verified_cdp", "search_chips.wrapper": "verified_cdp", "settings.button.wrapper": "verified_cdp", @@ -31,5 +31,5 @@ "main.playbar.buttons.button.wrapper__indicator", "settings.text_input" ], - "verified_classmap_sha256": null + "verified_classmap_sha256": "dc5212855a7b460980548d296313bfaf76696d9f5a43aa456289990273eefec3" } diff --git a/1020097/VERIFICATION.md b/1020097/VERIFICATION.md index 9506486..f1d581c 100644 --- a/1020097/VERIFICATION.md +++ b/1020097/VERIFICATION.md @@ -1,16 +1,48 @@ # Spotify 1.2.97.270 (1020097) -Pipeline: inherit(1020096 -> 1020097) + static target-CSS verification + CDP e2e (deep). +Pipeline: inherit(1020096 -> 1020097) + static target-CSS verification + CDP e2e (deep). Published 2026-09-30. ## Notes +- Classmap inherited byte-for-byte from 1020096; no migration guesses were accepted. +- Static verification found 32/36 paths in the target CSS. +- CSS-only misses observed live by their stock class, which remain verified: 0. +- Deep CDP verification observed 29/36 paths with 10/10 successful navigation steps. +- Unresolved new misses remain usable but are marked unverified; stale paths stay blocked. +- Replaces an earlier verification of this key, kept below under Earlier verification. + +## Statistics at publication + +| Field | Value | +| --- | --- | +| leaves | 36 | +| static_present | 32 | +| verified_cdp | 29 | +| live_only | 0 | +| unresolved_missing | 4 | +| cdp_hit_rate | 0.8056 | +| overlay_entries | 3 | + +## Evidence + +- Classmap SHA-256: `dc5212855a7b460980548d296313bfaf76696d9f5a43aa456289990273eefec3` +- Overlay SHA-256: `8c05d9ca347e4e13fb31013df4c42bdbf16046408b989afe4d0ea6a25037800e` +- Target CSS SHA-256: `15afbe4b3bb33606ab2e1ecaae17886f5fda182dcc2cbcade34906e32872112e` +- CDP report generated: 2026-09-30T14:55:57.755Z + +## Earlier verification + +Pipeline: inherit(1020096 -> 1020097) + static target-CSS verification + CDP e2e (deep). + +### Notes + - Classmap inherited byte-for-byte from 1020096; no migration guesses were accepted. - Static verification found 32/36 paths in the target CSS. - 0 CSS-only misses were observed live and remain verified. - Deep CDP verification observed 21/36 paths on the routes and transient surfaces exercised by the verifier. - Unresolved new misses remain usable but are marked unverified; inherited stale paths stay blocked. -## Statistics at publication +### Statistics at publication | Field | Value | | --- | --- | @@ -24,7 +56,7 @@ Pipeline: inherit(1020096 -> 1020097) + static target-CSS verification + CDP e2e | cdp_hit_rate | 0.5833 | | overlay_entries | 3 | -## Verification summary at publication +### Verification summary at publication - Needs manual check: 32 - Missing in CSS: 4 diff --git a/1020098/META.json b/1020098/META.json index 6326085..c0df015 100644 --- a/1020098/META.json +++ b/1020098/META.json @@ -6,8 +6,8 @@ "main.navbar.link.wrapper": "verified_cdp", "main.playbar.buttons.button.wrapper": "verified_cdp", "main.topbar.wrapper": "verified_cdp", - "modal.track_credits.container": "verified_static", - "modal.widget_generator.container": "verified_static", + "modal.track_credits.container": "verified_cdp", + "modal.widget_generator.container": "verified_cdp", "search_box.container": "verified_cdp", "search_chips.wrapper": "verified_cdp", "settings.button.wrapper": "verified_cdp", @@ -31,5 +31,5 @@ "main.playbar.buttons.button.wrapper__indicator", "settings.text_input" ], - "verified_classmap_sha256": null + "verified_classmap_sha256": "dc5212855a7b460980548d296313bfaf76696d9f5a43aa456289990273eefec3" } diff --git a/1020098/VERIFICATION.md b/1020098/VERIFICATION.md index cf2003e..0078124 100644 --- a/1020098/VERIFICATION.md +++ b/1020098/VERIFICATION.md @@ -1,16 +1,48 @@ # Spotify 1.2.98.301 (1020098) -Pipeline: inherit(1020097 -> 1020098) + static target-CSS verification + CDP e2e (deep). +Pipeline: inherit(1020097 -> 1020098) + static target-CSS verification + CDP e2e (deep). Published 2026-09-30. ## Notes +- Classmap inherited byte-for-byte from 1020097; no migration guesses were accepted. +- Static verification found 32/36 paths in the target CSS. +- CSS-only misses observed live by their stock class, which remain verified: 0. +- Deep CDP verification observed 29/36 paths with 10/10 successful navigation steps. +- Unresolved new misses remain usable but are marked unverified; stale paths stay blocked. +- Replaces an earlier verification of this key, kept below under Earlier verification. + +## Statistics at publication + +| Field | Value | +| --- | --- | +| leaves | 36 | +| static_present | 32 | +| verified_cdp | 29 | +| live_only | 0 | +| unresolved_missing | 4 | +| cdp_hit_rate | 0.8056 | +| overlay_entries | 3 | + +## Evidence + +- Classmap SHA-256: `dc5212855a7b460980548d296313bfaf76696d9f5a43aa456289990273eefec3` +- Overlay SHA-256: `8c05d9ca347e4e13fb31013df4c42bdbf16046408b989afe4d0ea6a25037800e` +- Target CSS SHA-256: `f80a3ac649a4b6ec0ea96e3670be9e4a25260306e85aecb13434bc998e01d2df` +- CDP report generated: 2026-09-30T14:56:12.221Z + +## Earlier verification + +Pipeline: inherit(1020097 -> 1020098) + static target-CSS verification + CDP e2e (deep). + +### Notes + - Classmap inherited byte-for-byte from 1020097; no migration guesses were accepted. - Static verification found 32/36 paths in the target CSS. - 0 CSS-only misses were observed live and remain verified. - Deep CDP verification observed 21/36 paths on the routes and transient surfaces exercised by the verifier. - Unresolved new misses remain usable but are marked unverified; inherited stale paths stay blocked. -## Statistics at publication +### Statistics at publication | Field | Value | | --- | --- | @@ -24,7 +56,7 @@ Pipeline: inherit(1020097 -> 1020098) + static target-CSS verification + CDP e2e | cdp_hit_rate | 0.5833 | | overlay_entries | 3 | -## Verification summary at publication +### Verification summary at publication - Needs manual check: 32 - Missing in CSS: 4 diff --git a/index.json b/index.json index 5adb41f..a652091 100644 --- a/index.json +++ b/index.json @@ -27,9 +27,9 @@ }, "meta": { "file": "META.json", - "sha256": "55c303d2b977ccf359e718f508c3784d34e82b392d380ed1b1e231f02140e043" + "sha256": "66ee0250ad8de296ddaa8d6ffe855aa4619bee9bddb59d0709b9019edf9aeb06" }, - "spotifyVersion": "1.2.92.147", + "spotifyVersion": "1.2.92.148", "status": "verified" }, "1020094": { @@ -43,7 +43,7 @@ }, "meta": { "file": "META.json", - "sha256": "1e0e0e0a68e08b54110055adc1f1a9e01e798620b5b7b0a9244c5fb3f439d36d" + "sha256": "d861681baec69cccec6a7fb6f35d051193fc8eb1cf3765faf407d0c0504f67d8" }, "spotifyVersion": "1.2.94.583", "status": "verified" @@ -91,7 +91,7 @@ }, "meta": { "file": "META.json", - "sha256": "8dfa71738326b1507d389f57b1501d24d3030b99f8f036bb65efef2828450b01" + "sha256": "979062ef9fb2c2779a369da8d9d908001328cff5bc62594b783232b84653a056" }, "spotifyVersion": "1.2.97.270", "status": "verified" @@ -107,7 +107,7 @@ }, "meta": { "file": "META.json", - "sha256": "d2aadb1c486736811930db20089b901683b06520146e0ad094844d452b92f247" + "sha256": "c90f11a6332d0f4ec3b0445241e349bd39fd98ee9c27f0eef56f62d9f93495c5" }, "spotifyVersion": "1.2.98.301", "status": "verified"