Why
eval-harness trend reads the full history.ndjson and renders all of it. On a project with 6 months of history, that's noise. People want "show me the last 7 days" or "show me since the v0.4.0 release date."
What to build
Add --since=<spec> to scripts/eval/trend.sh. Accept:
Nd / Nw / Nm (e.g. 7d, 2w, 1m) → compute the cutoff relative to now
YYYY-MM-DD (ISO date) → absolute cutoff
<git-ref> (e.g. v0.4.0, HEAD~50) → resolve via git log -1 --format=%ct <ref> to a timestamp
Filter history.ndjson lines by timestamp >= cutoff.
Acceptance criteria
Good first issue because
- Single file (
trend.sh)
- Logic is "parse a string, compare a timestamp" — no LLM, no spawn, no lock
- ~60 lines of bash + 1 test
- The date-parsing branch is a fun puzzle (portable across GNU/BSD date)
Comment to claim.
Why
eval-harness trendreads the fullhistory.ndjsonand renders all of it. On a project with 6 months of history, that's noise. People want "show me the last 7 days" or "show me since the v0.4.0 release date."What to build
Add
--since=<spec>toscripts/eval/trend.sh. Accept:Nd/Nw/Nm(e.g.7d,2w,1m) → compute the cutoff relative to nowYYYY-MM-DD(ISO date) → absolute cutoff<git-ref>(e.g.v0.4.0,HEAD~50) → resolve viagit log -1 --format=%ct <ref>to a timestampFilter
history.ndjsonlines bytimestamp >= cutoff.Acceptance criteria
trend.shaccepts and parses--sinceper the spec abovetests/trend_since.shcovers all 3 spec formats + invalid inputGood first issue because
trend.sh)Comment to claim.