12  The Life of a Chat

Status: first draft complete.

The goal of this Section is to provide a worked example of what exactly happens to one of your chats in a system like the public ai utility interface.

Stages: capture C_i, prompt S_i, consent A_i, transform T_i, publish P_i^k, with PR workflow state M_i.

First, what happens when you visit the site?

Ok, now you have an account. Here’s a simplified view of what your account record looks like in our database:

┌─────────────────────────────────────────────────────────────┐
│  USER RECORD (example with fake data)                       │
├─────────────────────────────────────────────────────────────┤
│  user_id:        usr_a1b2c3d4e5f6                           │
│  created_at:     2024-03-15 14:23:01 UTC                    │
│  auth_method:    google_oauth                               │
│  email_hash:     [hashed - not stored in plain text]        │
│  display_name:   "DataContributor42"                        │
│  flywheel_opted_in: false                                   │
│  default_license:   null                                    │
│  chats_count:       0                                       │
└─────────────────────────────────────────────────────────────┘

This is the “admin view” of your account—the essential metadata we store. Note that we hash sensitive identifiers and don’t store passwords in plain text. The flywheel_opted_in field starts as false; you explicitly enable it if you want to contribute data.

Now you start a new chat!

UI may show a prompt (S_i=1), you grant consent (A_i=1), checks run (T_i=1), and a PR is opened; publication occurs on merge (P_i^git=1).