diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index f86b0d26f..b8e763835 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -5,7 +5,10 @@ An explicit list replaces the default Mapillary provider; an empty list removes all imagery providers. Without that option, Mapillary is registered only when `sources.mapillary` is supplied. An absent source leaves Street Level registered with a truthful no-provider state, preserving layer controls and share tokens. -Malformed supplied sources and provider definitions still fail validation. +Malformed selected sources and provider definitions still fail validation. +An explicit provider list bypasses the unused Mapillary source, including its +validation. Layer share identities are preserved; custom provider switches require +a corresponding serialization contract. ## God's Eye View in conversations — October 2, 2026 diff --git a/scripts/qa-street-level.mjs b/scripts/qa-street-level.mjs index 59b0584da..f8d50f85f 100644 --- a/scripts/qa-street-level.mjs +++ b/scripts/qa-street-level.mjs @@ -622,11 +622,17 @@ async function main() { await target.click( '.panel-collapse-btn[data-collapse-target="street-level-panel"]', ); - await settle( - target, - () => - getComputedStyle(document.getElementById('sl-body')).display === - 'flex', + assert.ok( + await settle( + target, + () => + !document + .getElementById('street-level-panel') + .classList.contains('collapsed') && + getComputedStyle(document.getElementById('sl-body')).display === + 'flex', + ), + 'Street Level panel did not expand before the timeout', ); }; await expandStrip(); diff --git a/src/app/layers/streetLevel.js b/src/app/layers/streetLevel.js index 41e8b2a8b..18a3e7a3b 100644 --- a/src/app/layers/streetLevel.js +++ b/src/app/layers/streetLevel.js @@ -5,7 +5,11 @@ import * as picking from '../../data/pickRegistry.js'; import * as input from '../../data/inputOwnership.js'; import * as render from '../../renderGovernor.js'; -/** Inject providers, or use Mapillary only when its source is supplied. */ +/** + * Inject providers, or use Mapillary only when its source is supplied. + * An explicit provider list replaces the default; unused sources.mapillary is + * neither constructed nor validated, including when the list is empty. + */ export function createApplicationStreetLevel({ surface, sources = {},