Build a URL path for the current viewer page with src updated.
This helper preserves existing query parameters and hash fragments while
centralizing the viewer's URL-writing contract. It returns a path-relative
URL suitable for history.replaceState(). The src is normalized so it
never carries a trailing slash.
title is the one parameter that does NOT survive: it names the dataset
the server started with, so carrying it onto a different src would make
a shared or reloaded URL title the tab after a scene it no longer shows.
The live tab is retitled for the incoming dataset at the same moment —
see core/document-title.ts.
Build a URL path for the current viewer page with
srcupdated.This helper preserves existing query parameters and hash fragments while centralizing the viewer's URL-writing contract. It returns a path-relative URL suitable for
history.replaceState(). Thesrcis normalized so it never carries a trailing slash.titleis the one parameter that does NOT survive: it names the dataset the server started with, so carrying it onto a differentsrcwould make a shared or reloaded URL title the tab after a scene it no longer shows. The live tab is retitled for the incoming dataset at the same moment — seecore/document-title.ts.