Merge upstream/main into pr/google-street-view

Conflicts with upstream's Street Level provider composition and share-state
codec, resolved:

- Street View's switch moves from its own share option (`g`) to upstream's
  provider-switch field (`r`, e.g. `0.r.google-1`); a link without it keeps
  Street View off. Docs and the browser gate follow.
- createApplicationStreetLevel keeps upstream's injectable provider list;
  its default, once the application supplies its Street Level source, is
  Mapillary plus Google Street View. Without that source there are none, as
  upstream intends.
- The coverage hint keeps upstream's empty-composition message and joins
  every switched-on provider's hint otherwise.
- CHANGELOG, README and SECURITY keep both sides' entries.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Said TurkseverandClaude Opus 5.5 committed 2026-10-12 11:32:05 +01:00
commit 76db4114ff
80 files changed
+3845 -201

No files matched your search

+13 -6
View File
@@ -632,11 +632,17 @@ async function main() {
target,
'.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();
@@ -1797,7 +1803,8 @@ async function main() {
credit: false,
button: false,
});
const option = `${STREET_LEVEL_TOKEN}.g.1`;
// Street View rides the shared provider-switch field (r).
const option = `${STREET_LEVEL_TOKEN}.r.google-1`;
assert.ok(
await settle(
page,