Thanks, Rose Alvina , this is a great addition. The content hash per chunk is the right way to handle sync. My current setup re-embeds more than it needs to on each deploy, so hashing heading path + text and only upserting what changed would cut both embedding calls and writes. The deterministic ID (url + heading) is a nice touch too, since it makes re-runs idempotent and avoids duplicate vectors. And you’re right that on Upstash’s free tier, staying well under the daily write cap matters. The low-score logging idea is my favorite part. Treating those queries as a list of content gaps turns the chatbot into a feedback loop for the site itself, not just a search box. I’ll likely add this to the pipeline. Appreciate you taking the time to write this up!
