personal memory agent

fix(think): advance stream.updated only on genuine ingest, not re-processing master

Remove the two thinking.py re-process stream.updated touches from the --segments batch loop and the single-segment path. Gate the sense.py _emit_segment_observed touch on not batch so only live observer ingest advances the marker. Add an explicit _touch_health_marker(day) to the audio-import branch, the only importer path that had relied on the batch-sense touch; text and file imports already marked. Net effect: stream.updated advances only on genuinely-new raw data, never on re-processing, restoring an honest signal for updated_days() and pipeline-health stuck detection. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>


+42 -18
6 changed files