From 04f604415dfe4145bed365dde6b5ce54960d49dd Mon Sep 17 00:00:00 2001 From: Afonso Jorge Ramos Date: Wed, 30 Sep 2026 13:53:29 +0200 Subject: [PATCH] chore(classmap): re-verify 1020099, 1030000 and 1030001 with full deep coverage The deep CDP run now opens the context menu, credits, embed and Settings. On unpatched clients it observes 32/36 leaves with 10/10 steps on each build. The modal and Settings section paths of the 1.3 keys move to verified_cdp, and 1020099 records its verified classmap digest. --- 1020099/META.json | 8 ++---- 1020099/VERIFICATION.md | 43 ++++++++++++++++++++++++---- 1030000/META.json | 6 ++-- 1030000/VERIFICATION.md | 63 +++++++++++++++++++++++++++++++---------- 1030001/META.json | 4 +-- 1030001/VERIFICATION.md | 48 +++++++++++++++++++++++++------ index.json | 6 ++-- 7 files changed, 137 insertions(+), 41 deletions(-) diff --git a/1020099/META.json b/1020099/META.json index 81f5e3d..4b4b2df 100644 --- a/1020099/META.json +++ b/1020099/META.json @@ -10,7 +10,7 @@ "modal.widget_generator.container": "verified_cdp", "search_box.container": "verified_cdp", "settings.button.wrapper": "verified_cdp", - "settings.header.container": "unverified", + "settings.header.container": "verified_static", "settings.section.container": "verified_cdp", "sort_box.list.button": "verified_cdp", "tracklist.column_header": "verified_cdp" @@ -25,8 +25,6 @@ "main.topbar.right.upgrade_button.wrapper" ], "status": "verified", - "unverified_leaves": [ - "settings.header.container" - ], - "verified_classmap_sha256": null + "unverified_leaves": [], + "verified_classmap_sha256": "dbbdd2c325bc6ff55b903867596e9371952320841248ad04997ee0ea7cf00fb7" } diff --git a/1020099/VERIFICATION.md b/1020099/VERIFICATION.md index 7a7a998..54f3a69 100644 --- a/1020099/VERIFICATION.md +++ b/1020099/VERIFICATION.md @@ -1,9 +1,42 @@ # Spotify 1.2.99.317 (1020099) -Pipeline: runtime CDP extraction (Spotify --remote-debugging-port=9222) + live DOM/CSS verification + static xpui CSS cross-check. +Pipeline: derive(1020097 -> 1020099) + static target-CSS verification + CDP e2e (deep). Published 2026-09-30. ## Notes +- Classmap derived from 1020097. +- Static verification found 36/36 paths in the target CSS. +- CSS-only misses observed live by their stock class, which remain verified: 0. +- Deep CDP verification observed 32/36 paths with 10/10 successful navigation steps. +- Unresolved new misses remain usable but are marked unverified; stale paths stay blocked. +- Marked stale although observed live: main.topbar.right.upgrade_button.wrapper. +- Replaces an earlier verification of this key, kept below under Earlier verification. + +## Statistics at publication + +| Field | Value | +| --- | --- | +| leaves | 36 | +| static_present | 36 | +| verified_cdp | 32 | +| live_only | 0 | +| unresolved_missing | 0 | +| cdp_hit_rate | 0.8889 | +| overlay_entries | 2 | + +## Evidence + +- Classmap SHA-256: `dbbdd2c325bc6ff55b903867596e9371952320841248ad04997ee0ea7cf00fb7` +- Overlay SHA-256: `b4d8016a12301d6be24369dba618093813ad33376617ee6a7fc651d06c959600` +- Target CSS SHA-256: `12c8c98de652cbf9dce89965cb3f983ddd83bea9633bc813018a470104743a40` +- CDP report generated: 2026-09-30T11:52:32.463Z + +## Earlier verification + +Pipeline: runtime CDP extraction (Spotify --remote-debugging-port=9222) + live DOM/CSS verification + static xpui CSS cross-check. + +### Notes + - Values were extracted from the live 1.2.99.317 client over CDP (port 9222), not guessed. - The Encore build tag moved from e-10451 to e-10810. - Topbar merged into Root__globalNav; wrapper class oy96nRTKcIs7wm5K observed on [data-testid=global-nav-bar]. @@ -16,7 +49,7 @@ Pipeline: runtime CDP extraction (Spotify --remote-debugging-port=9222) + live D - Tertiary button leaves include both legacy-button and legacy-button-tertiary, plus generic icon-only padding where applicable. The playbar retains its small-size modifier; the medium modifier has no CSS rule. - The left button icon was observed by the current deep verifier and is no longer stale. Matching the generic primary-button classes does not establish the unrendered upgrade-button role, so that leaf remains stale. -## Statistics at publication +### Statistics at publication | Field | Value | | --- | --- | @@ -30,7 +63,7 @@ Pipeline: runtime CDP extraction (Spotify --remote-debugging-port=9222) + live D | cdp_hit_rate | 0.6944 | | overlay_entries | 2 | -## Verification summary at publication +### Verification summary at publication - CDP DOM probes: 47 - CSS classes live: 4726 @@ -39,9 +72,9 @@ Pipeline: runtime CDP extraction (Spotify --remote-debugging-port=9222) + live D - Misses: 0 - Scope: Historical 2026-09-05 extraction; CSS presence is not DOM observation. -## Verification runs +### Verification runs -### macos_arm64_2026_09_29 +#### macos_arm64_2026_09_29 - Spotify version: 1.2.99.317 - OS: macOS diff --git a/1030000/META.json b/1030000/META.json index 2ebea54..5d40c39 100644 --- a/1030000/META.json +++ b/1030000/META.json @@ -6,13 +6,13 @@ "main.navbar.link.wrapper": "verified_cdp", "main.playbar.buttons.button.wrapper": "verified_cdp", "main.topbar.wrapper": "verified_cdp", - "modal.track_credits.container": "verified_targeted", - "modal.widget_generator.container": "verified_targeted", + "modal.track_credits.container": "verified_cdp", + "modal.widget_generator.container": "verified_cdp", "search_box.container": "verified_cdp", "search_chips.wrapper": "verified_targeted", "settings.button.wrapper": "verified_cdp", "settings.header.container": "verified_targeted", - "settings.section.container": "verified_targeted", + "settings.section.container": "verified_cdp", "sort_box.list.button": "verified_cdp", "tracklist.column_header": "verified_cdp" }, diff --git a/1030000/VERIFICATION.md b/1030000/VERIFICATION.md index 770d21b..426366d 100644 --- a/1030000/VERIFICATION.md +++ b/1030000/VERIFICATION.md @@ -4,6 +4,39 @@ Pipeline: derive(1020097 -> 1030000) + static target-CSS verification + CDP e2e ## Notes +- Classmap derived from 1020097. +- Static verification found 33/36 paths in the target CSS. +- CSS-only misses observed live by their stock class, which remain verified: 3. +- Deep CDP verification observed 32/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. +- Kept the earlier live status of search_chips.wrapper, settings.header.container, which this run didn't reach. + +## Statistics at publication + +| Field | Value | +| --- | --- | +| leaves | 36 | +| static_present | 33 | +| verified_cdp | 32 | +| live_only | 3 | +| unresolved_missing | 0 | +| cdp_hit_rate | 0.8889 | +| overlay_entries | 291 | + +## Evidence + +- Classmap SHA-256: `d91fa1f1b40a19c51c5c7781a46e1ac41a44c56f2ea4f10096ce3e289f5f0f85` +- Overlay SHA-256: `c0c993277547bfc8ec53f4fa0a055c6e6a470dc5dbb38e37e53ed13514f20e01` +- Target CSS SHA-256: `154bef4f3c5d8c1cd6455a6b1d75e06fa0675f870a35b50e04371ae90a117ce7` +- CDP report generated: 2026-09-30T11:52:09.734Z + +## Earlier verification + +Pipeline: derive(1020097 -> 1030000) + static target-CSS verification + CDP e2e (deep). Published 2026-09-30. + +### Notes + - Classmap derived from 1020097. - Static verification found 33/36 paths in the target CSS. - CSS-only misses observed live by their stock class, which remain verified: 3. @@ -12,7 +45,7 @@ Pipeline: derive(1020097 -> 1030000) + static target-CSS verification + CDP e2e - Replaces an earlier verification of this key, kept below under Earlier verification. - Kept the earlier live status of modal.track_credits.container, modal.widget_generator.container, search_chips.wrapper, settings.header.container, settings.section.container, which this run didn't reach. -## Statistics at publication +### Statistics at publication | Field | Value | | --- | --- | @@ -24,18 +57,18 @@ Pipeline: derive(1020097 -> 1030000) + static target-CSS verification + CDP e2e | cdp_hit_rate | 0.6389 | | overlay_entries | 291 | -## Evidence +### Evidence - Classmap SHA-256: `d91fa1f1b40a19c51c5c7781a46e1ac41a44c56f2ea4f10096ce3e289f5f0f85` - Overlay SHA-256: `c0c993277547bfc8ec53f4fa0a055c6e6a470dc5dbb38e37e53ed13514f20e01` - Target CSS SHA-256: `154bef4f3c5d8c1cd6455a6b1d75e06fa0675f870a35b50e04371ae90a117ce7` - CDP report generated: 2026-09-29T23:31:53.821Z -## Earlier verification +### Earlier verification Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS verification + deep CDP e2e on macOS and Windows + targeted live DOM/CSSOM probes. -### Notes +#### Notes - Spotify 1.3.0 is a CSS-module rehash, so this key was derived rather than inherited from a 1.2.x classmap. - The 280-entry css-map overlay was generated only from unique exact selector/declaration signatures shared by the stock 1.2.97 and 1.3.0 xpui stylesheets; 82 ambiguous signatures were excluded and 0 generated mappings conflicted with targeted live overrides. @@ -49,7 +82,7 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v - The headline statistics and targeted checks describe the historical verification runs. Current candidate coverage is recorded under the macos_2026_09_29 run. - On 2026-09-30 the modal, sort-box and context-menu leaves, which had been stored as their css-map names, were rewritten to their stock hashes from the 291-entry overlay. The css-map stages each back to the same name, and the map is again byte-identical to 1030001. -### Statistics at publication +#### Statistics at publication | Field | Value | | --- | --- | @@ -64,7 +97,7 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v | cdp_hit_rate | 0.6667 | | overlay_entries | 291 | -### Verification summary at publication +#### Verification summary at publication - Deep DOM hits: 24 - Targeted live hits: 12 @@ -75,9 +108,9 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v - CSS overlay conflicts: 0 - CSS overlay ambiguous excluded: 82 -### Regression checks +#### Regression checks -#### topbar_right_button +##### topbar_right_button - Date: 2026-09-15 - Spotify version: 1.3.0.277 @@ -90,7 +123,7 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v - Gap (px): 8 - Verification: Measured Bookmark, Full App Display, and Popup Lyrics after Rust apply and a client restart. Their hitboxes and gaps match the native notification and activity buttons. The unchanged 1.2.97 classmap resolves to the same semantic class, whose archived CSS also specifies 32px width and height. -#### root_containers +##### root_containers - Date: 2026-09-15 - Spotify version: 1.3.0.277 @@ -104,7 +137,7 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v - Method: archived stock CSS inspection - Verification: The embedded CSS-map already maps qPaMr9Jzt0_Doy3C, vEHGULrufZMHBNrp, and YdGOYWQYr6kqh7KU to the same three hooks. Their stock declarations preserve the same grid areas, sizing, and player gutters as 1.3.0; black library and player container backgrounds are already present in 1.2.94. Older version maps remain unchanged. This is archived CSS evidence, not a live older-client check. -#### settings_toggle_input +##### settings_toggle_input - Date: 2026-09-15 - Spotify version: 1.3.0.277 @@ -112,7 +145,7 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v - Staged class: x-toggle-input - Verification: The native checkbox uses opacity:0, pointer-events:none, and position:absolute in five stock stylesheets. The missing semantic hook left stdlib Settings rows showing both a native checkbox and their styled indicator. Reapply restores the shared input styling; live Spicetify Settings inputs have opacity 0 and absolute positioning while their toggle indicators remain visible. Regression coverage fails without the mapping. -#### playback_bar +##### playback_bar - Date: 2026-09-16 - Spotify version: 1.3.0.277 @@ -123,7 +156,7 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v - Verification: Stock CSS and live playback controls confirm the container, elapsed-time, and duration roles. Applied through Rust CLI 3.0.0-beta.17 on macOS with published Text 0.1.6. Text restores its full-width 16px seek track. Text 0.1.6 returns the absolutely positioned timestamp spans to normal flow and aligns the seek handle. Pointer seeking, ArrowRight seeking, and the duration/remaining-time toggle passed through UI input. - Previous version check: Archived Spotify 1.2.94 CSS maps o9SONbmdTWwKgbUo, _xaGcuWD6w4FNkGu, and jYB3Yggec0UDIsZh to the same hooks and preserves their container and timestamp roles. Older maps are unchanged. No older client was run live. -#### entity_header_backgrounds +##### entity_header_backgrounds - Date: 2026-09-29 - Spotify version: 1.3.0.277 @@ -135,9 +168,9 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v - Verification: Stock CSS confirms the roles: kMUtWc is the absolute full-size header layer that carries the inline colour, ELsCw adds the dark gradient on a second kMUtWc layer, M7ECcaA is the 232px z-index -1 gradient behind the action bar, and dqwQhIud is the Home header gradient hidden by its Jyc7 modifier. Spotify 1.3 dropped the separate backgroundColor modifier, so the colour layer maps to the shared background hook. Applied with SPICETIFY_CLASSMAPS_DIR through Rust CLI 3.0.0-beta.17 on macOS: on Burial (avatar header), Liked Songs and Home the readable classes are present, Ziro 0.1.5 hides the action-bar gradient and Home header, and Text renders its flat header. All 14 first-party themes reference these hooks and matched nothing on 1.3.0 before. - Previous version check: The base css-map maps older hashes to the same four hooks; dribbblish and matte select .main-entityHeader-background.main-entityHeader-overlay, matching the two-class overlay layer. No older client was run live. -### Verification runs +#### Verification runs -#### windows_2026_09_16 +##### windows_2026_09_16 - Classmap SHA-256: `879140c1dddb65b2ff14440c34abe3b2d166274a1309ce3214108e21c8430bc7` - Client state: patched @@ -147,7 +180,7 @@ Pipeline: exact stock-CSS signature migration from 1020097 + static target-CSS v - Navigation succeeded: 7 - Note: Historical evidence for the contributor map before restoring the topbar, navigation-link and outer-search-container roles. -#### macos_2026_09_29 +##### macos_2026_09_29 - Spotify version: 1.3.0.277 - OS: macOS diff --git a/1030001/META.json b/1030001/META.json index 0542028..faecc46 100644 --- a/1030001/META.json +++ b/1030001/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_static", "settings.button.wrapper": "verified_cdp", diff --git a/1030001/VERIFICATION.md b/1030001/VERIFICATION.md index 8ce9583..aaa2bd4 100644 --- a/1030001/VERIFICATION.md +++ b/1030001/VERIFICATION.md @@ -4,6 +4,38 @@ Pipeline: inherit(1030000 -> 1030001) + static target-CSS verification + CDP e2e ## Notes +- Classmap inherited byte-for-byte from 1030000; 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: 3. +- Deep CDP verification observed 32/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 | 32 | +| live_only | 3 | +| unresolved_missing | 1 | +| cdp_hit_rate | 0.8889 | +| overlay_entries | 291 | + +## Evidence + +- Classmap SHA-256: `d91fa1f1b40a19c51c5c7781a46e1ac41a44c56f2ea4f10096ce3e289f5f0f85` +- Overlay SHA-256: `c0c993277547bfc8ec53f4fa0a055c6e6a470dc5dbb38e37e53ed13514f20e01` +- Target CSS SHA-256: `674b4e92bd00a513cef999978933dc49c8d31cff42c6e5b275b0960741b1a978` +- CDP report generated: 2026-09-30T11:51:34.933Z + +## Earlier verification + +Pipeline: inherit(1030000 -> 1030001) + static target-CSS verification + CDP e2e (deep). Published 2026-09-30. + +### Notes + - Classmap inherited byte-for-byte from 1030000; 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: 3. @@ -12,7 +44,7 @@ Pipeline: inherit(1030000 -> 1030001) + static target-CSS verification + CDP e2e - Replaces an earlier verification of this key, kept below under Earlier verification. - Kept the earlier live status of settings.section.container, which this run didn't reach. -## Statistics at publication +### Statistics at publication | Field | Value | | --- | --- | @@ -24,18 +56,18 @@ Pipeline: inherit(1030000 -> 1030001) + static target-CSS verification + CDP e2e | cdp_hit_rate | 0.6389 | | overlay_entries | 291 | -## Evidence +### Evidence - Classmap SHA-256: `d91fa1f1b40a19c51c5c7781a46e1ac41a44c56f2ea4f10096ce3e289f5f0f85` - Overlay SHA-256: `c0c993277547bfc8ec53f4fa0a055c6e6a470dc5dbb38e37e53ed13514f20e01` - Target CSS SHA-256: `674b4e92bd00a513cef999978933dc49c8d31cff42c6e5b275b0960741b1a978` - CDP report generated: 2026-09-29T23:31:18.380Z -## Earlier verification +### Earlier verification Pipeline: inherit(1030000 -> 1030001) + static target-CSS verification + CDP e2e (deep). -### Notes +#### Notes - Classmap inherited byte-for-byte from 1030000; no migration guesses were accepted. - Static verification found 32/36 paths in the target CSS. @@ -45,7 +77,7 @@ Pipeline: inherit(1030000 -> 1030001) + static target-CSS verification + CDP e2e - The CSS overlay includes the four entity-header, action-bar and Home background hooks added to 1030000 on 2026-09-29. Their selectors and layout declarations also occur in the signed Spotify 1.3.1.234 macOS ARM64 stock archive; the 36-leaf classmap remains unchanged. - The headline statistics describe the original promotion. The patched macOS candidate run and its narrower observed coverage are recorded under Verification runs. -### Statistics at publication +#### Statistics at publication | Field | Value | | --- | --- | @@ -59,14 +91,14 @@ Pipeline: inherit(1030000 -> 1030001) + static target-CSS verification + CDP e2e | cdp_hit_rate | 0.6667 | | overlay_entries | 291 | -### Verification summary at publication +#### Verification summary at publication - Needs manual check: 32 - Missing in CSS: 4 -### Verification runs +#### Verification runs -#### macos_arm64_2026_09_29 +##### macos_arm64_2026_09_29 - Spotify version: 1.3.1.234 - Client state: patched diff --git a/index.json b/index.json index a621446..5bb8c8b 100644 --- a/index.json +++ b/index.json @@ -141,7 +141,7 @@ }, "meta": { "file": "META.json", - "sha256": "1bd962d745663b48bd70e8c5e297856cc2965e20d27e8bd264f0553cc89ca45c" + "sha256": "6de303ac59d4ada327446f873391319b53e6e4d181749ebde36d17aa3fd2ca99" }, "spotifyVersion": "1.2.99.317", "status": "verified" @@ -157,7 +157,7 @@ }, "meta": { "file": "META.json", - "sha256": "72ee06ca7b7ba2549941e6e5f3e72576b2484f279b294f35a5c7183a90f38e2a" + "sha256": "23c3c1f1a4ff1e7a9480bdf8c0f91d5bf9377cc70f0234557d90f5f692e36a31" }, "spotifyVersion": "1.3.0.277", "status": "verified" @@ -173,7 +173,7 @@ }, "meta": { "file": "META.json", - "sha256": "8fb8a1390481a02cd77fec4b4a00562f8d012fc65f96b7b10ead8153b65852eb" + "sha256": "a83dfad84f0820c4c0899ca2279b6f995896a5e8ac6970b52e6be65acc57d738" }, "spotifyVersion": "1.3.1.234", "status": "verified"