Skip to content

fix(memory): extended-memory extraction quality - #275

Merged
jkyberneees merged 3 commits into
mainfrom
fix/extended-memory-quality
Sep 27, 2026
Merged

jkyberneees merged 3 commits into
mainfrom
fix/extended-memory-quality

Conversation

@jkyberneees

Copy link
Copy Markdown
Contributor

Summary

  • Extractor prompt gains example-first REJECT guidance and a write-time quality validator: atoms embedding session IDs, turn numbers, PR numbers, commit hashes, version tags, pending_review references, or already-stored restatements are dropped (rule name logged).
  • Ephemeral atom classes (intent, goal, error, question, file) carry a TTL (ephemeral_ttl_days, default 14) and stop being recalled once expired; durable classes and pinned atoms are exempt. Legacy atoms without a creation time never expire.
  • Extraction runs are quota-bounded: max 3 atoms per type and 8 per run, quality-ranked by confidence.

Notes

  • RED-first: every behavior pinned by failing tests before implementation.
  • Adversarial panel review findings addressed (MergeConfig branch for the new knob, anchored regexes to avoid prose false positives, reviewable drops, no input-slice aliasing).
  • docs/CONFIG.md documents ephemeral_ttl_days.

Verification

  • go test ./internal/memory/extended/ -count=1 green (coverage 90.6%, touched files ~95-100%)
  • go test -race green, go vet clean

…er-class TTL, type quotas

- Extractor prompt gains example-first REJECT guidance (provenance-in-text,
  release ephemera, self-referential bookkeeping) and generalizing ACCEPTs.
- Write-time quality validator (qualityViolation) enforces the prompt's
  contract mechanically: session IDs, turn numbers, PR numbers, commit
  hashes, version tags, pending_review references, and already-stored
  restatements never persist as atom text.
- Ephemeral atom classes (intent, goal, error, question, file) now carry a
  TTL (default 14 days, ephemeral_ttl_days) and stop being recalled when
  expired; durable classes and pinned atoms are exempt.
- Extraction runs are quota-bounded: max 3 atoms per type and 8 per run,
  quality-ranked by confidence so trimming keeps the strongest memories.
- docs/CONFIG.md documents ephemeral_ttl_days.
…d regexes, reviewable drops

- MergeConfig now honors ephemeral_ttl_days (was silently ignored).
- qualityRules anchored to provenance shapes: turn numbers require a
  following comma/paren (prose like 'per turn 100 requests' survives),
  commit hashes require a digit, bare vX.Y.Z semver added as release
  ephemera (Go 1.24-style two-component versions stay safe).
- Drops log the matched rule name for reviewability.
- Legacy atoms with zero CreatedAt never TTL-expire.
- filterExpiredAtoms returns a fresh slice instead of aliasing the input.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
odek ae814c0 Commit Preview URL

Branch Preview URL
Sep 27 2026, 02:31 PM

@jkyberneees
jkyberneees merged commit 96ddbd3 into main Sep 27, 2026
10 checks passed
@jkyberneees
jkyberneees deleted the fix/extended-memory-quality branch September 27, 2026 14:38
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.

1 participant