cache compact write task to skip redundant embed+upsert
when observations haven't changed, synthesize_summary returns a cached
result — but write_summary_to_turbopuffer was still making an OpenAI
embedding call + TurboPuffer upsert with identical data every cycle.
add BySummaryContent cache policy to the write task, keyed on
handle + summary text hash. now both the LLM call and the write are
skipped when nothing has changed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>