Files
neuron-web/src
Will Anderson cae5028130 auto-signup webhook + chat polish (10q, bold-white, last-q awareness)
Webhook handler now reacts to payment_intent.succeeded and
setup_intent.succeeded (in addition to the legacy
checkout.session.completed) and auto-provisions a Supabase account
for every successful purchase via /auth/v1/invite. The buyer gets a
magic-link email; landing on /account?welcome=1 with that link signs
them in and the plan card renders.

Stripe Customer is updated with metadata.supabase_user_id so the
cross-reference is durable. New stub: supabase_admin_invite() in
web_stubs.c (POST {project_url}/auth/v1/invite with service-key
bearer auth + apikey header).

Chat widget:
  * MAX 5 → 10 questions per session
  * countdown is now bold white at all times; the red threshold
    at <=5 was loud and made the chat feel rationed
  * greeted-once flag in localStorage so reopening the panel
    doesn't replay the canned hello (only first open greets)
  * questions_remaining + is_last_question travel to the soul on
    each turn so it can close in voice on the final turn instead
    of leaving the visitor at a hard cap

Soul side of the last-turn handshake is still a TODO - the wrapper
plumbs the fields through but soul-demo.el has to be updated to
read and act on them.
2026-05-02 10:10:36 -05:00
..