Skip to content

Unify study search and reduce Browse rendering work - #38

Merged
LukasWallrich merged 2 commits into
mainfrom
fix/search
Oct 21, 2026
Merged

LukasWallrich merged 2 commits into
mainfrom
fix/search

Conversation

@LukasWallrich

@LukasWallrich LukasWallrich commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

From the second usability review of 21 October 2026. This was an agent-led review using simulated perspectives, not recruited participants. GPT 6.1 Sol implemented the changes; Claude reviewed them. This PR fixes C16, the indexing part of C03, the Citation Impact empty state from C02, and the rendering part of C23.

Changes

  • One normaliser for Browse and Citation Impact:
    • case-folding;
    • accent removal, so Müller matches Muller;
    • curly quotes mapped to straight ones;
    • DOI URLs and doi: prefixes accepted;
    • multi-word queries match across fields ("Bem 2011", "Strack 1988"), and quoted phrases must match within one field.
  • Citation Impact search now also indexes year and journal.
  • Search index: formatted author names replace the raw Crossref JSON, so "family" and "given" no longer match 3,058 pairs. Raw outcome codes and non-DOI URLs are no longer indexed. Quotations stay searchable; the Browse-filters proposal makes them opt-in.
  • Empty state: Citation Impact shows a message and a Clear search button when nothing matches.
  • Speed: search input is debounced by 200 ms; row creation is deferred; there is one draw per Show all. On a heavily loaded machine, the median Show all time fell from about 4.7 s to 2.8 s.

Tests

Two new browser scenarios cover accents, quotes, author and year queries, DOI URLs, metadata-key queries, quotation retention, deferred rows, debouncing and the empty state. Full suite passes locally (18/18).

For review

Searching for "failed" can still match quotation text; the exact outcome filter is in the Browse-filters proposal. "Mueller" is still a separate spelling from "Müller".

🤖 Generated with Claude Code


Summary by cubic

Unifies search across Browse and Citation Impact and cuts rendering work in Browse, addressing usability issues C16, the indexing part of C03, the empty state from C02, and the rendering part of C23.

  • Both searches now fold case, strip accents (Müller matches Muller), map curly quotes to straight ones, accept DOI URLs and doi: prefixes, and match multi-word queries across fields while quoted phrases must match within one field.
  • Citation Impact now indexes year, journal, and full author names, shows a message with a Clear search button when nothing matches, and rebuilds its index when a DOI deep link loads citation data before the FLoRA pairs arrive.
  • The Browse search index uses formatted author names instead of raw Crossref JSON, so metadata keys like "family" and "given" no longer match thousands of rows; raw outcome codes and non-DOI URLs are no longer indexed, while quotations stay searchable.
  • Both search inputs are debounced by 200 ms, Browse defers row creation, and Show all performs a single draw; median Show all time fell from about 4.7 s to 2.8 s on a loaded machine.
  • New browser scenarios cover the shared search rules, debouncing, deferred rows, late debounce, full-author and deep-link lookups, and empty-state recovery.

Written for commit 9927dfd. Summary will update on new commits.

View guided diff Turn on auto-fix

Index readable author names and share accent, quote, token and DOI matching with Citation Impact. Add citation empty-state recovery and debounce both searches. Cache search text, defer rows and avoid the nested table draw caused by order events.

Co-Authored-By: GPT 6.1 Sol <noreply@openai.com>
@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1d6fd841-9ac0-4a05-8bed-a751fbfb09f8
📥 Commits

Reviewing files that changed from the base of the PR and between 27b6682 and 9927dfd.

📒 Files selected for processing: 4
  • assets/app.js
  • assets/citation-impact.js
  • index.html
  • tests/browser.test.cjs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 4 files

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread tests/browser.test.cjs Outdated
Comment thread assets/citation-impact.js Outdated
Comment thread index.html Outdated
Wait for citation search renders rather than a fixed delay. Supplement the truncated citation display names with full FLoRA author lists, including when DOI deep links load before the CSV, and add journal to the search hint. Cover delayed rendering, later authors, metadata exclusion and snapshot fallbacks.

Co-Authored-By: GPT 6.1 Sol <noreply@openai.com>
@LukasWallrich
LukasWallrich merged commit d23f7d1 into main Oct 21, 2026
3 checks passed
@LukasWallrich
LukasWallrich deleted the fix/search branch October 21, 2026 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant