The model wizard used to hold its stage in memory, so every step of it shared
one URL. It now advances the path: /models/new/<draft_id>/data, then
/engagement, then /review. The draft id lands in the URL as soon as the
first autosave creates the draft, and each stage after that is a new history
entry, so the browser’s Back and Forward buttons move between stages. Opening a
stage link goes to that stage, and a link naming a stage the draft cannot reach
yet snaps to the last stage it can, using the same check the Continue button
uses.
Onboarding’s Back button now moves back a step instead of leaving the flow. Resuming onboarding also lands on the step you were on rather than one past it.
Two more views carry their state in the query string. Score create takes
?template=, seeded from the URL you arrive on and rewritten when you pick a
different template, with older template names normalised to their current
spelling. Data sources takes ?tab=available, ?tab=import or
?tab=engagement. The default panel writes no parameter, and a connection
return still outranks the tab and still never starts an OAuth flow on its own.
Nothing sensitive goes in a query string: no field names, no classifications, no free-text search. Analytics follows the URL, so each wizard stage and each onboarding step is now its own pageview carrying the step it belongs to.