Patch _now_ts so two answers share the same second; verify both fetch
paths return rows ordered by id when timestamps match.
Co-authored-by: nic <nicsins@users.noreply.github.com>
SQLite orders rows with identical created_at arbitrarily. Tie-break on id
so fetch_unprocessed_* results are deterministic under concurrency or rapid
inserts (avoids flaky tests and consumers assuming FIFO order).
Co-authored-by: nic <nicsins@users.noreply.github.com>
* Add survey profile DB, parser, and background refiner
Co-authored-by: nic <nicsins@users.noreply.github.com>
* Block external survey domains unless allowlisted
Co-authored-by: nic <nicsins@users.noreply.github.com>
* Add persona creation tool for survey personas
Co-authored-by: nic <nicsins@users.noreply.github.com>
* Add local survey demo and documentation
Co-authored-by: nic <nicsins@users.noreply.github.com>
* Add profile update tool and email env fallback
Co-authored-by: nic <nicsins@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: nic <nicsins@users.noreply.github.com>