Skip to content

By-ear pass: memory v1.5 — fading, fold cadence, forgetting, and how a recalled memory sounds [spec 05-01 §6] #197

Description

@wine-fall

What it is

Memory v1.5 (PR #196) shipped four numbers and one heuristic that no test can
judge, because what they control is how the radio feels over weeks rather than
anything assertable. The spec records them as starting guesses (§6, "Open
(build-time or by-ear; none blocking)"); this is the pass that keeps them or
retunes them.

The seams, so a future session does not have to hunt:

  • FACT_FADE_DAYS = 90src/memory.ts. A profile line unconfirmed this long
    and not [stable] leaves the prompts for profile-faded.md.
  • COMPACT_EVERY_USER_TURNS = 8src/memory.ts. Admitted listener turns,
    not turns: a session nobody typed in never folds at all, which is a much
    slower cadence than the 100-turn one it replaces.
  • The forget floor — forgetMatches / FORGET_STOPWORDS in src/memory.ts.
    Drop stop words, then a line must carry two of the remaining whole tokens —
    unless only one survived, in which case that one is honoured on its own.
  • RECALL_LIMIT = 5src/director.ts. How many recalled lines the reply turn
    is handed.

What is already covered elsewhere and is not this issue: whether the model
chooses to call recall_memory when it should is stochastic routing, and the
spec routes it to the eval track alongside #98. This issue is about how the
result sounds and how the constants land, not about tool selection.

Spec

specs/spec05/05-01-recall-and-forgetting.md §6 (Open) — the constants and the
forget floor. §3.3 (fade), §3.5 (forget floor), §2.5 (the constants table).

Done when

All four are judged by ear on real use, and each constant is either kept or
retuned in the spec's §2.5 table and in the code:

  • Fading. After real weeks of use, does the host forget the right
    things at the right time? A fact that fades too eagerly reads as
    inattention; one that never fades reads as a dossier. Check
    profile-faded.md against profile.md and say which side 90 days errs on.
  • Fold cadence. Does profile.md improve at a sensible rate now that
    only listener turns count towards it — or does it go stale because the
    listener types rarely?
  • Forgetting. Ask the host to forget something real. Does
    forget_memory take what was meant and nothing else? Over-forgetting is
    the dangerous direction (there is no undo, by design): report the request
    you typed and the memory.forget "..." -> N rows, M lines line from
    .dev/dev.log.
  • How a memory sounds. When the host does bring something back, does it
    land like remembering, or like a lookup being read out? Five hits may be
    too many to be a memory.

A "no" on any box becomes its own follow-up issue against the seam named above
— it does not reopen the v1.5 contract.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    by-earUser-run sensory acceptance; not assertable in a test

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions