Description
#114 fixed the seven-day default expiry for MemoryType.CONTEXT, and the reasoning given there - that operational state was being discarded silently - applies unchanged to four other types that are also chosen automatically rather than by the user. Those four still carry a finite default.
Current mapping on main (core/memory_types.py):
FACT: None DECISION: 90 PREFERENCE: None TODO: 30
INSIGHT: 180 CONTEXT: None INSTRUCTION: None ERROR: 30
WORKFLOW: 365 REFERENCE: None TOOL: 90 HYPOTHESIS: 180
PREDICTION: 30 SCHEMA: None BOUNDARY: None
ERROR: 30, TOOL: 90, DECISION: 90 and PREDICTION: 30 expire on their own.
Expected Behavior
Either these types persist until superseded, as CONTEXT now does, or their expiry is something the writer opts into.
Actual Behavior
A memory classified automatically as ERROR disappears after 30 days, and a DECISION after 90, without the writer having chosen a lifetime and without any notice at expiry.
Why this matters
The types most affected are the ones a classifier assigns, not the ones a user picks. Someone recording "this approach failed because X" does not choose the ERROR type - the pipeline does - and so never sees the 30-day clock they have been opted into. DECISION at 90 days is the sharpest case: a decision record is precisely the kind of memory whose value is that it still exists when someone later asks "why is it like this?".
This is the same argument #114 accepted for CONTEXT; I am only pointing out that the fix stopped at one entry of the table.
Environment
- Surreal-Memory version: 3.8.0 (
ae8e8743)
- Installation method: source
Additional Context
Related: #114 (the CONTEXT case).
No PR attached because this is a product decision about defaults, not a defect with one correct fix - and changing four defaults silently changes retention for existing installs, which is your call to make rather than mine.
Measured on v3.8.0 (ae8e8743). Thanks for the recent releases - re-checking this against a
current base rather than a stale one was only possible because the tags land so promptly.
Description
#114 fixed the seven-day default expiry for
MemoryType.CONTEXT, and the reasoning given there - that operational state was being discarded silently - applies unchanged to four other types that are also chosen automatically rather than by the user. Those four still carry a finite default.Current mapping on
main(core/memory_types.py):ERROR: 30,TOOL: 90,DECISION: 90andPREDICTION: 30expire on their own.Expected Behavior
Either these types persist until superseded, as
CONTEXTnow does, or their expiry is something the writer opts into.Actual Behavior
A memory classified automatically as
ERRORdisappears after 30 days, and aDECISIONafter 90, without the writer having chosen a lifetime and without any notice at expiry.Why this matters
The types most affected are the ones a classifier assigns, not the ones a user picks. Someone recording "this approach failed because X" does not choose the
ERRORtype - the pipeline does - and so never sees the 30-day clock they have been opted into.DECISIONat 90 days is the sharpest case: a decision record is precisely the kind of memory whose value is that it still exists when someone later asks "why is it like this?".This is the same argument #114 accepted for
CONTEXT; I am only pointing out that the fix stopped at one entry of the table.Environment
ae8e8743)Additional Context
Related: #114 (the
CONTEXTcase).No PR attached because this is a product decision about defaults, not a defect with one correct fix - and changing four defaults silently changes retention for existing installs, which is your call to make rather than mine.
Measured on v3.8.0 (
ae8e8743). Thanks for the recent releases - re-checking this against acurrent base rather than a stale one was only possible because the tags land so promptly.