-- met_characters: which characters a user has already been introduced to. -- Used by db_introductions.py / first_contact_instruction() so each character gives -- a one-line self-introduction only on the very first turn with a given user. -- -- Stored on user_profiles (keyed by id = user_id, the table that actually exists; -- there is no public.users — auth users live in auth.users). It is deliberately NOT -- added to TRACKED_FIELDS, so the profile classifier never reads or overwrites it; -- db_introductions.py accesses it with its own targeted queries. alter table public.user_profiles add column if not exists met_characters text[] not null default '{}';