Skip to content

feat: enforce per-layer retention intervals in maintenance worker#19

Merged
sblanchard merged 3 commits intomasterfrom
claude/enforce-retention-intervals-UA4Qq
Feb 12, 2026
Merged

feat: enforce per-layer retention intervals in maintenance worker#19
sblanchard merged 3 commits intomasterfrom
claude/enforce-retention-intervals-UA4Qq

Conversation

@sblanchard
Copy link
Copy Markdown
Owner

Replace the single ColdPeriodDays archival threshold with layer-specific
retention intervals so memories at higher cognitive layers are preserved
longer before becoming eligible for archival:

L0_RAW = 30 days
L1_CONTEXT = 90 days
L2_SUMMARY = 180 days
L3_KNOWLEDGE = 365 days
L4_HEURISTIC = indefinite (never archived)

Previously L3_KNOWLEDGE was blanket-excluded from archival alongside
L4_HEURISTIC. Now L3 memories can be archived after their 365-day
retention window if they also meet the low-confidence and low-access
criteria.

https://claude.ai/code/session_01Qh2fiKmvk9szkc8ZY6Y2Je

Replace the single ColdPeriodDays archival threshold with layer-specific
retention intervals so memories at higher cognitive layers are preserved
longer before becoming eligible for archival:

  L0_RAW       = 30 days
  L1_CONTEXT   = 90 days
  L2_SUMMARY   = 180 days
  L3_KNOWLEDGE = 365 days
  L4_HEURISTIC = indefinite (never archived)

Previously L3_KNOWLEDGE was blanket-excluded from archival alongside
L4_HEURISTIC. Now L3 memories can be archived after their 365-day
retention window if they also meet the low-confidence and low-access
criteria.

https://claude.ai/code/session_01Qh2fiKmvk9szkc8ZY6Y2Je
…iables

Read per-layer retention from environment variables with sensible defaults:

  RETENTION_L0_RAW_DAYS       (default: 30)
  RETENTION_L1_CONTEXT_DAYS   (default: 90)
  RETENTION_L2_SUMMARY_DAYS   (default: 180)
  RETENTION_L3_KNOWLEDGE_DAYS (default: 365)

The MaintenanceConfig is now registered as a singleton and injected into
MemoryMaintenanceWorker instead of falling back to MaintenanceConfig.Default.

https://claude.ai/code/session_01Qh2fiKmvk9szkc8ZY6Y2Je
@sblanchard sblanchard self-assigned this Feb 11, 2026
@sblanchard sblanchard marked this pull request as draft February 12, 2026 07:19
@sblanchard sblanchard marked this pull request as ready for review February 12, 2026 07:22
@sblanchard sblanchard merged commit 940dff9 into master Feb 12, 2026
5 of 6 checks passed
@sblanchard sblanchard deleted the claude/enforce-retention-intervals-UA4Qq branch February 12, 2026 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants