Phase 42b — LongMemEval + LoCoMo harness with honest reporter #311
Loading…
Reference in a new issue
No description provided.
Delete branch "claude/wi-019dd0c5-phase-42b-longmemeval-locomo-harness-wit"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Anima work item
019dd0c5-ec42-7e52-8b00-c98bd36b2a94.Ship the eval harness BEFORE retrieval is built so each subsequent sub-phase has a measurement loop.
Deliverables:
crates/heka/src/eval/{mod,longmemeval,locomo,reporter}.rseval_data/README.mdwith dataset fetch script (do NOT commit datasets — fetch script only)heka eval longmemeval --mode raw|hybridrunnerheka eval locomo --top-k autorunner. Auto-cap:min(5, conv_len/4)to refuse the MemPalacetop_k=50-on-30-items exploit by construction.--top-k-explicit Noverride emits a loud warning in the report.eval-smokeposts delta vs baseline on every PR (non-blocking).Until 42c lands, recall is a stub returning empty — harness reports 0%. Each subsequent sub-phase pushes the number up.
Acceptance:
heka eval longmemeval --mode rawruns end-to-end on 10-session subsetEstimated lines: ~600
2026-06-04 22:00 UTCDependencies: 42a
Summary
Create a new
hekaCLI crate in the workspace to serve as an evaluation harness for LongMemEval and LoCoMo datasets, temporarily stubbing retrieval to 0% recall. This establishes a baseline measurement loop including hardware details, latency percentiles, and an automated CI job to report evaluation diffs on pull requests.Approach
Add a new
hekabinary crate to the Rust workspace and configureclapfor the subcommandseval longmemeval(with--mode raw|hybrid) andeval locomo(with--top-k autoand--top-k-explicit). Implement the retrieval stub to return empty results in the respective dataset handlers, enforcing the 0% recall baseline. Inlocomo.rs, conditionally enforce themin(5, conv_len/4)cap when auto top-k is used, and usetracing/logto emit a loud warning for explicit overrides. Inreporter.rs, utilize a crate likesysinfoto capture system metadata, record timing payloads to calculate p50/p99 latencies, and serialize the final report into both JSON and Markdown formats. Add a dataset fetch bash script toeval_data/README.md, and configure a non-blockingeval-smokeCI pipeline to run the 10-session raw subset and compute deltas against the main branch.Files likely to change
Cargo.tomlcrates/heka/Cargo.tomlcrates/heka/src/main.rscrates/heka/src/eval/mod.rscrates/heka/src/eval/longmemeval.rscrates/heka/src/eval/locomo.rscrates/heka/src/eval/reporter.rseval_data/README.md.forgejo/workflows/eval-smoke.yml(guess)Open questions
eval_data/README.mdneed to support authenticated downloads (e.g., a HuggingFace token), or are the dataset URLs strictly public?.github/workflows) used for CI, or should it explicitly target Forgejo Actions (.forgejo/workflows) given the presence of theanima-forgejocrate?Complexity
M: 1-3 days. Bootstrapping a new CLI crate, extracting hardware telemetry, implementing statistical latency tracking, and setting up the PR delta CI pipeline involves moderate effort across different domains without deep technical risk.
cfd00c22588e483e7230cd2821d61677e87fb9d5WIP: Phase 42b — LongMemEval + LoCoMo harness with honest reporterto Phase 42b — LongMemEval + LoCoMo harness with honest reporter