docs(street-level): drop stale provider and stepping wording; the gate fails when it cannot park

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Opus 5.5 committed 2026-10-08 16:22:18 +04:00
1 parent 83e6acc34d
commit 99264e80d6
5 files changed
+12 -9

No files matched your search

+3 -2
View File
@@ -66,8 +66,9 @@ gate for the feature you changed.
> **CI does not cover this for you.** The workflow runs the setup policy > **CI does not cover this for you.** The workflow runs the setup policy
> checks, the formatting and package-boundary checks, the unit suite and the > checks, the formatting and package-boundary checks, the unit suite and the
> production build, plus a Windows onboarding job. It runs neither > production build, plus a Windows onboarding job. It runs neither
> `npm run test:track` nor any `qa-*.mjs` gate — both need a live dev server > `npm run test:track` nor any other `qa-*.mjs` gate — both need a live dev
> and a browser. Include the applicable local run in your PR's validation > server and a browser. The one exception is the hermetic Street Level fixture
> gate (`street-level-browser` job). Include the applicable local run in your PR's validation
> evidence. > evidence.
## Share-link layer tokens ## Share-link layer tokens
+5 -4
View File
@@ -3032,8 +3032,7 @@ Like the iD editor's photo overlay it shows Mapillary only: 360°/flat and
captured-since filters (relative days, so a link keeps its meaning), one captured-since filters (relative days, so a link keeps its meaning), one
embedded viewer and an on-globe credit while the layer is on. Share options: embedded viewer and an on-globe credit while the layer is on. Share options:
`m` (Mapillary on/off; off draws nothing), `p` (`a`/`p`/`f` panoramas), `s` `m` (Mapillary on/off; off draws nothing), `p` (`a`/`p`/`f` panoramas), `s`
(since, days). The header pill is the only layer switch and also turns a (since, days). The header pill is the only layer switch.
switched-off `m` back on.
Coverage is z11–14 sequence lines below 60 km; above that nothing is drawn and Coverage is z11–14 sequence lines below 60 km; above that nothing is drawn and
the panel says to zoom in. Tiles come from the visible ground within range of the panel says to zoom in. Tiles come from the visible ground within range of
@@ -3066,8 +3065,10 @@ so the whole photo fits.
Browser gates: `npm run qa:street-level -- --url <server>` runs against real Browser gates: `npm run qa:street-level -- --url <server>` runs against real
Mapillary with a token; `npm run qa:street-level:fixtures` answers every Mapillary with a token; `npm run qa:street-level:fixtures` answers every
Mapillary request from fixtures (`providers/mapillary/coverageFixture.mjs`, Mapillary request from fixtures (`providers/mapillary/coverageFixture.mjs`,
`scripts/fixtures/street-level/`). CI runs the fixture gate with `--strict` `scripts/fixtures/street-level/`); its server (default `:4173`) still needs a
against a production build served by `vite preview` with a dummy token. `MAPILLARY_CLIENT_TOKEN`, and any value will do. CI runs the fixture gate with
`--strict` against a production build served by `vite preview` with a dummy
token.
Directions is a keyless front end to the routing the voice agent already Directions is a keyless front end to the routing the voice agent already
uses. Its row chips are the whole interface: DRIVE / WALK / BIKE pick the uses. Its row chips are the whole interface: DRIVE / WALK / BIKE pick the
@@ -2,8 +2,8 @@ import { readFileSync } from 'node:fs';
/** /**
* Mapillary Graph API and image CDN answered from fixtures, covering every * Mapillary Graph API and image CDN answered from fixtures, covering every
* request the provider and MapillaryJS make while opening, stepping and * request the provider and MapillaryJS make while opening and closing a
* closing a photo, so the gate needs no network and no real token. * photo, so the gate needs no network and no real token.
* *
* No `merge_cc` or `sfm_cluster` means MapillaryJS never asks for a mesh or * No `merge_cc` or `sfm_cluster` means MapillaryJS never asks for a mesh or
* cluster, and empty S2 cells mean no spatial edges, which the gate does not * cluster, and empty S2 cells mean no spatial edges, which the gate does not
+1
View File
@@ -319,6 +319,7 @@ async function park(page) {
}, PARK); }, PARK);
if (stayed) return; if (stayed) return;
} }
throw new Error('the camera would not stay parked over the photo line');
} }
async function main() { async function main() {
+1 -1
View File
@@ -411,7 +411,7 @@ const OPTION_GROUPS = Object.freeze({
booleanOption('viirs', 'v', false), booleanOption('viirs', 'v', false),
]), ]),
'street-level': Object.freeze([ 'street-level': Object.freeze([
// One switch per registered imagery provider (src/app/layers/streetLevel.js). // The Mapillary switch: off, the layer draws nothing.
booleanOption('mapillary', 'm', true), booleanOption('mapillary', 'm', true),
enumOption('pano', 'p', 'all', ['all', 'pano', 'flat'], { enumOption('pano', 'p', 'all', ['all', 'pano', 'flat'], {
all: 'a', all: 'a',