On re-login the upsert was inserting a new row with created_at=now(), causing ClickHouse ReplacingMergeTree to accumulate rows until background compaction. Now preserves the original created_at via INSERT...SELECT from the existing record. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>