Skip to content

Re: Risk F, does a superseded fact stay queryable through a historical path? #727

Description

@samvallad33

I maintain Vestige, a local-first memory server for coding agents, disclosing that since Risk F in this doc is close to something I have shipped and I wanted to compare notes rather than pitch anything.

Risk F says the conflict signal is advisory only, adding a fact that contradicts an existing one correctly emits diff possible_conflict, but both facts stay in memory_facts with no entity-level updated_at or supersession flag, so probe and reason entity joins keep returning the superseded fact indefinitely. F6 proposes exactly the fix I would reach for too, a superseded_by or deprecated flag persisted at write time.

What Vestige does for this exact shape of problem is stamp the old fact invalid rather than deleting or leaving it live, keep it queryable only through an explicit as-of lookup, and route the new one through the normal retrieval path so a probe never surfaces the superseded fact by default. The contradiction itself is flagged with a trust-weighted risk score rather than silently picking a winner, so a correction from a low-trust source does not quietly overwrite one from a high-trust source.

Question on your setup specifically: once F6 lands and a fact gets marked superseded, do you plan to keep the old fact fully queryable through some explicit historical path, or does superseded mean it drops out of every retrieval surface once the flag is set?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions