You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
5 of 11 cases in packages/junior-evals/evals/memory/workflows.eval.ts are red. The evals themselves have been audited and are correct (see below) — the reds document real misbehavior on the live memory write/forget tool paths: during the turn the agent narrates that persistence failed or is unavailable ("nothing was written to an external store", "the memory skill isn't available", "could not remove the preference"). Passive extraction, recall/injection, and read paths work.
Failing cases (post-audit):
explicit first-person preference → agent says memory not persisted (rubric fail condition "do not say the memory failed to save" fires correctly)
first-person opinion with rewritten wording → agent explicitly refuses persistence
explicit shared task procedure → 0.50, frames shared knowledge as a "preference" (borderline)
passive operational knowledge recall → 0.50, first claims no relevant memory then recovers (partial)
forget a remembered preference → agent says it could not remove it
Why "green on main" was an illusion
The file had the same fixture bug as multi-actor-provenance.eval.ts (fixed on the #773 Track 1 branch): label-suffixed thread_ts values (e.g. "17000000.memory-explicit") fail parseSlackMessageTs, so the runtime keyed memories by per-message messageTs while the eval's readMemories filtered on the thread-based sourceKey. Every positive DB assertion could never match and every no-store assertion passed vacuously. The fixtures are now valid (17000000.000001…000011), the assertions are meaningful for the first time, and one case ("organic conversation teaches a task procedure") went green purely from the fixture fix.
Classification (provisional)
The live tool wiring (tools.ts, plugin tool registration, live requester derivation) is untouched by the #773 Track 1 branch — only passive extraction, session-log provenance, the run projection, and the actor rename changed. So these reds are most consistent with a pre-existing bug that vacuous assertions had been masking, not a #773 regression. Definitive verdict: run cases 1 and 5 on the committed baseline (stash or a main checkout) — that is the first step of this issue.
Eval audit notes (already applied on the branch)
Fixtures: fixed (valid Slack ts).
DB assertions: now non-vacuous, scoped by sourceKey/scope/subjectType — contract-level, no extraction-internal leakage (no overfitting).
Rubrics: fail conditions are precise and fired against genuine non-persistence narration, not over-read.
Scenarios: realistic and satisfiable.
Per maintainer policy: red-but-correct evals stay red; do not relax them to green. Fix the product behavior.
Summary
5 of 11 cases in
packages/junior-evals/evals/memory/workflows.eval.tsare red. The evals themselves have been audited and are correct (see below) — the reds document real misbehavior on the live memory write/forget tool paths: during the turn the agent narrates that persistence failed or is unavailable ("nothing was written to an external store", "the memory skill isn't available", "could not remove the preference"). Passive extraction, recall/injection, and read paths work.Failing cases (post-audit):
Why "green on main" was an illusion
The file had the same fixture bug as
multi-actor-provenance.eval.ts(fixed on the #773 Track 1 branch): label-suffixedthread_tsvalues (e.g."17000000.memory-explicit") failparseSlackMessageTs, so the runtime keyed memories by per-messagemessageTswhile the eval'sreadMemoriesfiltered on the thread-based sourceKey. Every positive DB assertion could never match and every no-store assertion passed vacuously. The fixtures are now valid (17000000.000001…000011), the assertions are meaningful for the first time, and one case ("organic conversation teaches a task procedure") went green purely from the fixture fix.Classification (provisional)
The live tool wiring (
tools.ts, plugin tool registration, live requester derivation) is untouched by the #773 Track 1 branch — only passive extraction, session-log provenance, the run projection, and the actor rename changed. So these reds are most consistent with a pre-existing bug that vacuous assertions had been masking, not a #773 regression. Definitive verdict: run cases 1 and 5 on the committed baseline (stash or a main checkout) — that is the first step of this issue.Eval audit notes (already applied on the branch)
Per maintainer policy: red-but-correct evals stay red; do not relax them to green. Fix the product behavior.
First steps
createMemory/removeMemorytool path in the eval environment (why does the agent see the tool as unavailable/failing?).Found during #773 Track 1 verification.