Build contract — embed widget states (issue 2957 · ADR-054 §§2, 4, 5, 7, 9)
1 · Ten states, one frame document. Launcher, greeting, privacy interstitial,
conversation, escalation, lead capture, handoff, mobile overlay, capacity pause,
suspended contact form. Every state renders the co-brand line
AI assistant · powered by Open1031; white-label is a separate tier entitlement
and even then the disclosure still identifies a third-party technology provider.
2 · The disclosure map is the ADR-054 §7 table, drawn. Disclosures 1–3 have no
close control in any state; disclosure 4 is acknowledgeable and always precedes the free-text
composer, which stays veiled until the acknowledgement — and so every contact field. Copy routes through
components/compliance/ComplianceDisclosure.tsx so the required-disclosure
exemption holds mechanically. The QI-of-record line resolves from the org record — never the
hardcoded platform default.
3 · Text-only surface. No microphone affordance exists in any state; voice is
not offered on website embeds (ADR-054 Q4). The composer is a text field and a send control,
nothing else.
4 · The frame reads nothing and can do three things.
capture_lead,
request_human,
start_handoff — no exchange
reads, no propose tools, no fund tools. No password, OTP, SSN, DOB or signature input may exist
in the frame, enforced by a test over the embed component tree. Account creation, KYC and
signing happen after the handoff, on a top-level Open1031 origin.
5 · Degradation is product surface, not a null case. Capacity stops (state 9)
and entitlement lapses (state 10) both resolve to the tenant's branded contact form; the
visible copy explains itself in product terms and never surfaces a plan, budget or billing
state to the tenant's prospects. Submissions from degraded states still write into the
tenant with audit entries.
6 · Attribution is structural. Every exit — lead, escalation, handoff —
carries the embed session's
org_id, present from the first row written. The
handoff token is single-use, ~10 minutes, bound to
{org_id, embed_session_id, conversation_id}.
Summit QI Services is a fictional firm; all names, conversations and details are synthetic
demo data. Jordan Avery is a synthetic visitor. The dark theme shows the frame document
following the visitor's color scheme; tenant brand values stay constant because a brand is
data, not a theme.