Skip to content

Data Vault: keep the identity across multi-step signups and subdomains - #17

Merged
softglazee merged 2 commits into
mainfrom
fix/multistep-final-submit
Oct 8, 2026
Merged

softglazee merged 2 commits into
mainfrom
fix/multistep-final-submit

Conversation

@softglazee

Copy link
Copy Markdown
Owner

Problem

Data Vault autofill broke on multi-step signups (reported on Buildium from the Start Links):

  • Step 1 burned the identity. Any submit not labelled Next/Continue counted as final. Buildium's step 1 button is "Start My Free Trial", so the identity was marked used before step 2 loaded.
  • Subdomains were different sites. The "already used" filter compared exact hosts. learn.buildium.com (step 1) and www.buildium.com (step 2) did not match, so a used identity was still offered on step 1, then filtered out on step 2, and the active identity was dropped ("values hidden").

Fix

  • A final-looking submit marks the identity used only when it carries a filled password. Otherwise the backend holds it as finishing (__sgPersonaActive('finish')); the next page (or the same page for SPA wizards) decides: more fields means keep filling, none means mark used. An abandoned finishing identity is marked used after the 30 min idle timeout.
  • New src/main/siteKey.js: one registrable-domain rule for the vault filter and the active-identity store. Shared hosting (myshopify.com, github.io, vercel.app, ...) stays per owner.
  • Firefox background gets the finish op too (ships after the extension is re-signed; an older extension keeps the old mark-on-submit rule).

Verified

  • npm test: 654 pass.
  • Local harness: Buildium-style 2-step with a late-rendered step 2, single-page demo form (marked used after the thank-you page), the old 3-step wizard.
  • Live on Buildium in an installed build: step 1 filled, Start My Free Trial, step 2 auto-filled Company + Phone with the identity "In progress", SG click filled the password.

A submit whose button was not labelled Next/Continue counted as the final
step, so Buildium's step 1 ("Start My Free Trial") marked the identity used
before step 2 loaded. A final-looking submit now marks it used only when it
carries a filled password; otherwise it is held as "finishing" and the next
page decides (more fields = keep filling, none = mark used, 30 min idle =
mark used).

The used-on filter compared exact hosts, so learn.buildium.com and
www.buildium.com were different sites: an identity used on one was offered
on the other, and step 2 dropped the active identity. Both the filter and
the active-identity store now use one site key (registrable domain, shared
hosting such as myshopify.com kept per owner).
@softglazee
softglazee merged commit 2ff3785 into main Oct 8, 2026
4 checks passed
@softglazee
softglazee deleted the fix/multistep-final-submit branch October 8, 2026 22:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant