Skip to content

Add Autocomplete playground tool to Astro/Vue frontend#7

Draft
gaurav wants to merge 13 commits intoadd-nameres-frontendfrom
add-nameres-autocomplete
Draft

Add Autocomplete playground tool to Astro/Vue frontend#7
gaurav wants to merge 13 commits intoadd-nameres-frontendfrom
add-nameres-autocomplete

Conversation

@gaurav
Copy link
Copy Markdown
Collaborator

@gaurav gaurav commented Apr 24, 2026

Live-as-you-type NameRes with debounce+abort, preset dropdown (Disease/Gene/SmallMolecule/Custom), latency badges, Solr highlighting, expected-CURIE rank check, and single- or multi-instance views with rank/label/types diff highlighting. State round-trips through the URL for shareable review links.

WIP should be merged after PR #6

gaurav and others added 13 commits April 23, 2026 23:39
Live-as-you-type NameRes with debounce+abort, preset dropdown
(Disease/Gene/SmallMolecule/Custom), latency badges, Solr highlighting,
expected-CURIE rank check, and single- or multi-instance views with
rank/label/types diff highlighting. State round-trips through the URL
for shareable review links.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…abels

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rch"> label

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
happy-dom doesn't implement localStorage; add an in-memory mock so all
InstanceSelector tests can run. Also add esCiInstance fixture, update
Primary/All assertions, and add a test verifying the <abbr> renders in
the primary section.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…on view

In the comparison view, replace the per-instance label display under each
CURIE with the most specific Biolink type (r.types[0]), linked to the Biolink
model docs. If types differ across instances, show the union of distinct types
in the CURIE column and add the per-instance type (italic) below each cell's
label. Remove the now-redundant 'types differ' badge; the row highlight and
inline types make the mismatch self-evident.

Also add BiolinkTypeLink to the single-instance Types column so those badges
are clickable links too.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rarchy

- Add BiolinkTypeLink.vue to shared-components lists in CLAUDE.md and
  web/README.md — it was already used across NodeNorm, NameRes, and
  Autocomplete but undocumented
- Clarify that NameResResult.types is a Biolink hierarchy (most-specific
  first), so types[0] is the direct type; add JSDoc in nameres-types.ts
- Update Vitest test count 275 → 276

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… view

The previous layout rendered both the CURIE and the Biolink type as plain
blue hyperlinks, making them hard to tell apart. Now the type is rendered
as a small muted badge on the same line as the CURIE (visually distinct),
and the deduplicated label(s) from all instances sit below in small muted
text — giving the row the same readable shape as before the type was added.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
"In-flight" is engineering jargon; "Cancel lookup" is clearer for a
biomedical audience.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Each instance column header now shows a small "API↗" link beside the
instance name that opens the raw NameRes /lookup JSON response in a new
tab. The link reflects the current query and options (reactive computed)
and uses the existing apiUrlFor() logic already present in AutocompleteApp.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds sortInstances() to instance-prefs.ts: Exp → Dev → CI → ES CI →
Test → Prod → custom URLs (then alpha by URL). Applied to queriedInstances
in all three apps (Autocomplete, NodeNorm, NameRes) so columns always
appear in a predictable order regardless of selection order.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
NodeNorm's CI environment is switching to ElasticSearch. The old Redis CI
is kept for side-by-side comparison as a named primary instance.

- config: replace nodenorm.ci with es_ci (https://nodenorm-es.ci.transltr.io/)
  and redis_ci (https://nodenorm.ci.transltr.io/)
- InstanceSelector: add redis_ci to PRIMARY_ENVS with "ITRB Redis CI" label
  and <abbr title="Redis"> rendering, matching the es_ci pattern
- NodeNormApp: update ENV_LABELS to use es_ci/redis_ci instead of ci
- instance-prefs: add redis_ci at sort position 4 (after es_ci, before test)
- nodenorm.py: update Python env_labels for new keys

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix duplicate Data Flow section in CLAUDE.md
- Document NodeNorm vs NameRes env key asymmetry (es_ci/redis_ci vs ci/es_ci)
- Add sortInstances/ENV_ORDER to instance-prefs.ts description in lib listing
- Add 'Adding a new named instance' checklist to Key Design Patterns
- Add canonical instance ordering pattern note
- Note pre-existing Python test failures (test_nodenorm_page, test_test_concord_page)
- Update NodeNorm instance list in web/README.md (ES CI, Redis CI replace CI)
- Document Autocomplete API↗ link and Biolink type badge in comparison view

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
NodeNorm's CI is now fully ES-backed, so calling its env key "es_ci" was
misleading. Rename it to "ci" so both services use a symmetric "ci" key
that means "the current CI deployment" — NodeNorm CI is ES-based, NameRes
CI is Solr-based. The NameRes "es_ci" key now unambiguously identifies the
experimental NameRes ElasticSearch instance.

Also adds three AutocompleteApp regression tests that verify target=es_ci
in a shareable URL correctly resolves to namelookup-es.ci.transltr.io
(not the bare string "es_ci") and that results appear in the comparison
view column for that instance.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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