Thank you for rerunning the replay. We reproduced all of it at ea890e6: in #170 nothing is encoded after a recall and the gate fires on 1 of 100 queries, so the replay mostly measures always-on against cosine, plus a small write-back cost.
Your rerun is why shared_history_recall_v1 exists. It's a new set of 36 queries where 24 encodes come after a recall and 14 queries are near-neutral (|valence| < 0.2), so the gate actually gets exercised:
https://github.com/gianlucamazza/emotional-memory/pull/180
First run at d6947ed5 (CPU, hash embedder, seed 7, 2000 bootstrap resamples), top-1 for cosine / gated / always-on:
- #170 replay: 0.33 / 0.54 / 0.54 with write-back, 0.33 / 0.56 / 0.56 read-only. Gated and always-on score above cosine on top-1, and the intervals exclude 0.
- shared_history_recall_v1: 0.69 / 0.72 / 0.69 in both modes. No arm differs significantly from cosine: every interval includes 0, p ≥ 0.25.
For gated and always-on, write-back changes the top-k on 6 of 100 replay queries and 5 of 36 on the new set; cosine is unchanged. Read-only mode changed nothing across 136 queries and three arms, and the affective state never diverged, so the whole effect sits in the memory store.
So the write-back effect is measurable but small, and the new set shows no gated advantage. The hash embedder has no semantics, so this run checks that the mechanism behaves as described and says nothing about retrieval quality.
Thanks again for taking the time.