FishMem

Changing user profile

Model current preferences while preserving when earlier facts were valid.

Suppose a user lived in Lisbon and later moved to Berlin.

Store evidence with time

When the user states the effective date, include it as event_date. If the source only proves current state, do not invent historical precision.

Supersede deliberately

An update can invalidate the Lisbon record, close its valid_to, and link it to the Berlin record. Current recall favors active state; historical queries can still inspect the earlier interval.

Keep the profile derived

A synthesized profile is convenient prompt context, but it is not the authority. Rebuild it from canonical records and preserve links back to those records so a correction does not require editing two independent stores.

Acceptance cases

  • "Where does the user live now?" returns Berlin.
  • "Where did the user live before Berlin?" can return Lisbon.
  • an as-of query before the move resolves the earlier state;
  • deleting the user scope removes both active and historical records.

On this page