Commit History

Today

  1. docs: record reader and search analytics and how queries are kept⁠ Running

    siddhm11 +1: Claude Opus 5.5
    c89cdb2
  2. feat(admin): readers, searches and AI history dashboards⁠

    siddhm11 +1: Claude Opus 5.5
    e8530b8
  3. feat(analytics): reports on readers, searches and AI history⁠

    siddhm11 +1: Claude Opus 5.5
    a7c16d8
  4. feat(analytics): count what each reader does, per day⁠

    siddhm11 +1: Claude Opus 5.5
    ae5214c
  5. feat(analytics): log searches, and keep and reuse their AI overviews⁠

    siddhm11 +1: Claude Opus 5.5
    bc1e7b6
  6. feat(ai-usage): record the paper or query each AI call was for⁠

    siddhm11 +1: Claude Opus 5.5
    600f214
  7. docs(current-state): the AI usage dashboard at /admin/ai⁠

    siddhm11 +1: Claude Opus 5.5
    3fce785
  8. feat(admin): an AI usage dashboard at /admin/ai⁠

    siddhm11 +1: Claude Opus 5.5
    61a86da
  9. fix(ai-usage): give a rate-limit window's age, not its raw timestamp⁠

    siddhm11 +1: Claude Opus 5.5
    279a374

Yesterday

  1. docs: record AI usage measurement and the caching flaws it found⁠

    siddhm11 +1: Claude Opus 5.5
    5af37f8
  2. feat(health): /healthz/ai shows where the AI goes today⁠

    siddhm11 +1: Claude Opus 5.5
    359b725
  3. feat(ai-usage): count cache use and answer quality per feature, per day⁠

    siddhm11 +1: Claude Opus 5.5
    94b838e
  4. feat(ai-usage): log search rewrites, search overviews and plain summaries⁠

    siddhm11 +1: Claude Opus 5.5
    134608d
  5. feat(ai-usage): log each model call's tokens, fallback and rate-limit window⁠

    siddhm11 +1: Claude Opus 5.5
    037c6f0
  6. feat(groq): record tokens, the answering model's place and rate-limit headers⁠

    siddhm11 +1: Claude Opus 5.5
    5aa36b6
  7. fix(config): one helper for the test-only arXiv addresses, tested without a reload⁠

    siddhm11 +1: Claude Opus 5.5
    cb02b51
  8. docs: record arXiv's access rules, the background lane and search thumbnails⁠

    siddhm11 +1: Claude Opus 5.5
    d0e4419
  9. feat(search): a small figure beside each search result (SEARCH_FIGURES)⁠

    siddhm11 +1: Claude Opus 5.5
    7f2981f
  10. test(e2e): keep the test world's searches off the real arXiv API⁠

    siddhm11 +1: Claude Opus 5.5
    92f723d
  11. feat(figures): read the papers people are shown, in the background⁠

    siddhm11 +1: Claude Opus 5.5
    f2a6efe
  12. fix(sources): background requests wait 15 s, as arXiv's robots.txt asks⁠

    siddhm11 +1: Claude Opus 5.5
    cbfe172
  13. docs: record vector figures, the 24-figure cap and the figure rate limit⁠

    siddhm11 +1: Claude Opus 5.5
    7c5c922
  14. test(e2e): vector figures render on the page and in the lightbox⁠

    siddhm11 +1: Claude Opus 5.5
    7c261e8
  15. fix(limits): allow 600 figure requests a minute per address⁠

    siddhm11 +1: Claude Opus 5.5
    bffdd34
  16. feat(figures): serve vector figures as cleaned SVG⁠

    siddhm11 +1: Claude Opus 5.5
    71b2d8b
  17. feat(sources): keep up to 24 figures and record each one's kind⁠

    siddhm11 +1: Claude Opus 5.5
    318ba14
  18. feat(arxiv-html): collect SVG figures, as files and drawn inline⁠

    siddhm11 +1: Claude Opus 5.5
    361cfb4
  19. feat(svg): clean vector figures down to drawing elements⁠

    siddhm11 +1: Claude Opus 5.5
    c952499
  20. fix(figures): hide a figure whose thumbnail cannot be made⁠

    siddhm11 +1: Claude Opus 5.5
    e10f732
  21. fix(figures): decode huge JPEGs at reduced scale instead of refusing them⁠

    siddhm11 +1: Claude Opus 5.5
    5cff7af
  22. docs(feed): record the two-column feed, layout logging and figure warm-up⁠

    siddhm11 +1: Claude Opus 5.5
    a0b3515
  23. docs(ask): first Ask evaluation over 20 papers (2026-10-19)⁠

    siddhm11 +1: Claude Opus 5.5
    a3f20c2
  24. test(e2e): browser checks for the v2 card and the two-column feed⁠

    siddhm11 +1: Claude Opus 5.5
    860f9e0
  25. fix(feed): pin the card menu to the corner when a card has no interest label⁠

    siddhm11 +1: Claude Opus 5.5
    f3db993
  26. feat(figures): prepare new papers' figures in the background⁠

    siddhm11 +1: Claude Opus 5.5
    db5a2cd
  27. feat(feed): two-column wide feed with an interest rail (FEED_WIDE)⁠

    siddhm11 +1: Claude Opus 5.5
    260969f
  28. feat(log): record which layout each interaction happened in⁠

    siddhm11 +1: Claude Opus 5.5
    edcddb5
  29. style(feed): card v2 layout, per-card text tabs and Why this paper⁠

    siddhm11 +1: Claude Opus 5.5
    f1da4df
  30. feat(feed): the redesigned card behind FEED_CARD_V2⁠

    siddhm11 +1: Claude Opus 5.5
    e11a6d0
  31. feat(feed): enrich feed cards with figures, code and cached summaries⁠

    siddhm11 +1: Claude Opus 5.5
    5723366
  32. chore(eval): briefings for the 50 evaluation papers, ready to rate⁠

    siddhm11 +1: Claude Opus 5.5
    dfa3298
  33. fix(llm): repair TeX backslashes before parsing a model's JSON⁠

    siddhm11 +1: Claude Opus 5.5
    a85f8e6
  34. test(e2e): briefing and Ask in the browser; fix an outline race⁠

    siddhm11 +1: Claude Opus 5.5
    0cb3a12
  35. fix(paper): background fragments fail quietly; limits sized for shared networks⁠

    siddhm11 +1: Claude Opus 5.5
    0ef8102
  36. fix(briefing): check multipliers and TeX-written numbers properly⁠

    siddhm11 +1: Claude Opus 5.5
    1452c66

2 days ago

  1. feat(ask): an evaluation script, and log Ask in doc 06 and CURRENT-STATE⁠

    siddhm11 +1: Claude Opus 5.5
    1a6bc6f
  2. feat(ask): the chat panel, phone bottom sheet and figure questions⁠

    siddhm11 +1: Claude Opus 5.5
    a571e6c
  3. feat(ask): answer questions from the paper's own paragraphs⁠

    siddhm11 +1: Claude Opus 5.5
    b627658
  4. docs: log the paper briefing in doc 06 and CURRENT-STATE⁠

    siddhm11 +1: Claude Opus 5.5
    2300f36
  5. feat(briefing): pace model calls and retry when Groq is saturated⁠

    siddhm11 +1: Claude Opus 5.5
    90ab33a