fix(web): stop presenting an unscored case as a failed analysis, and four smaller things

From clicking through the redesigned UI:

- scoring a case without a model registry painted a red failure across a case that had in
  fact analysed fine. It is now a quiet note saying the model term contributes 0, because
  scoring is an optional fourth of the rank, not the analysis.
- the MLflow default moves to port 5001. On macOS, AirPlay Receiver owns 5000, which is why
  the registry answered "403" rather than refusing the connection; docker-compose publishes
  5001 to match.
- a funnel step that kept nothing drew a visible bar. Zero now draws zero.
- "1 candidates".
- the funnel's fixed grid columns forced a horizontal scrollbar on the report.

The report also lists the top undecided candidates now: the first thing anyone opens has no
decisions in it, and "Shortlisted (0)" alone said nothing about what the tool found.

Tests: api 77, web 32; ruff, mypy, svelte-check clean.
This commit is contained in:
Kemal Yaylali
2026-09-12 08:49:00 +01:00
parent 07a01715fd
commit 3ab404ebe5
12 changed files with 100 additions and 9 deletions
+4 -1
View File
@@ -63,7 +63,8 @@ td.coord, td.hgvs { font-family: var(--mono); font-size: 0.85rem; } /* aligned
/* The funnel is the headline: thousands of variants down to a handful. */
.funnel { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; gap: 0.35rem; }
.funnel li { display: grid; grid-template-columns: 5rem 16rem 1fr; align-items: center; gap: 0.75rem; }
.funnel li { display: grid; grid-template-columns: 4.5rem minmax(6rem, 14rem) minmax(0, 1fr);
align-items: center; gap: 0.75rem; }
.funnel-value { font-family: var(--mono); font-size: 1.05rem; text-align: right; font-variant-numeric: tabular-nums; }
.funnel-label { color: var(--ink-soft); font-size: 0.9rem; }
.funnel-track { background: white; border: 1px solid var(--line); height: 0.75rem; border-radius: 2px; }
@@ -126,3 +127,5 @@ td.coord, td.hgvs { font-family: var(--mono); font-size: 0.85rem; } /* aligned
.disclaimer { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line);
color: var(--ink-soft); font-size: 0.85rem; }
@media print { .noprint, nav { display: none; } .report { border: none; padding: 0; } }
.note { color: var(--ink-soft); font-size: 0.88rem; border-left: 3px solid var(--line);
padding: 0.35rem 0 0.35rem 0.6rem; margin: 0.5rem 0 1rem; }