**Review risk:** two-way door — the views, tests and docs of
`geolocation` only
## Summary
The geolocation use cases now have one clear name each, explain
themselves on the page, and record where the API falls short. Fixed:
re-attaching UC3 and UC4 bound the availability hint a second time, UC8
lost the stored route when the reader came back to the view, and
`application.properties` still held merge-conflict markers.
## What changed
- Renamed the use cases after their problem and used the same name in
the menu, title, heading, Javadoc, home card and README (e.g. `UC3 —
Locate returning visitors`, `UC4 — When location fails`, `UC8 — Route in
a database`).
- UC3 and UC4: bind the availability hint once in the constructor; UC3
auto-fetches from `whenAttached` instead of `onAttach`.
- UC2 and UC8: create the `GeolocationWatcher` in the constructor and
stop it at once, so opening the view does not ask for the location
before Start is clicked.
- UC8: store the route per Vaadin session instead of per view instance,
so it is still there after leaving the view; Start/Stop and the status
are bound to signals.
- UC4: the simulated cards pass the chosen value to the same success and
error handlers a real request uses.
- UC2 and UC8 tell the reader that after blocking location the button
still says Stop tracking.
- Removed merge-conflict markers from `application.properties` and the
unused `@EnableAsync`.
- Rewrote the README per the guidelines (title, one row per use case,
run command, browser notes).
- Added `API-GAPS.md` with two entries: #1 a watch stays active after
`PERMISSION_DENIED`, #2 `Geolocation.getPosition` has no owner and no
signal.
## Test summary
- New tests: UC2 opening the view starts no watch and stop/resume keeps
the history; UC3 auto-fetch only with granted permission, again on
re-attach, and the hint follows permission changes; UC4 each card's
outcome; UC8 the route is read back after leaving the view and clearing
empties it.
- geolocation: 25 tests green.
- Not checked in a browser.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: totally-not-ai[bot] <290682512+totally-not-ai[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <[email protected]>