Skip to content

Web-app: Dark mode, redesign and database comparision - #43

Merged
jonas-fuchs merged 20 commits into
masterfrom
web
Oct 8, 2026
Merged

jonas-fuchs merged 20 commits into
masterfrom
web

Conversation

@jonas-fuchs

Copy link
Copy Markdown
Collaborator

New features:

  • Database comparison tab: compare 2–3 project databases that share a reference accession (matched by accession), visualizing rule overlap with a Venn diagram and heatmap. Comparison identity is (feature, position, reference, mutation, drug) and covers atomic single mutations only; a new backend service (compare_databases.py) plus a catalog endpoint expose reference accessions so the frontend can constrain which databases are comparable.
  • Dark mode: a theme system with light/dark/system options, a toggle component, persisted preference, and dark-aware styling across plots and dashboards.
  • Guided tour steps for the analyze page.

Bug fixes:

  • Production blank page: router-dependent hooks (useDashboardLogic calling useLocation/useNavigate) were mounted outside BrowserRouter, crashing the production bundle before first paint. Fixed by introducing AppShell and mounting router-dependent hooks inside the router; covered by a bare-mount regression test.
  • Empty database state in the mutations view no longer renders broken/blank tiles.

Improvements:

  • Visual redesign: minimalistic styling pass, removal of card-in-card effects, flex-based tile sizing, mobile layout adjustments, restyled database dashboard, and rewritten About page content (large PNG asset removed).
  • CSS architecture: the monolithic ~5,500-line styles.css was split into scoped stylesheets (global, components, layout, and per-page files).
  • Frontend structure: tab components reorganized into page components with a shared AppShell, and routes/tests restructured accordingly.
  • Backend audit refactor: main.py slimmed with logic moved into route modules (e.g. routes/artifacts.py for bundle downloads); error messages no longer include internal paths; respro CLI subprocesses now run with a hard timeout slightly above the RQ job timeout so orphaned processes cannot run indefinitely; stale configuration and unused helpers removed.

Breaking changes:

None (the tab→page rename and backend route extraction are internal; API behavior is unchanged apart from sanitized error messages).

…rRouter

useDashboardLogic() calls useLocation()/useNavigate(); it ran in the component
that rendered <BrowserRouter>, so the production bundle crashed before first
paint. Caught by a new bare-mount regression test (src/main.test.jsx) that
reproduces the exact production error; all 411 frontend and 159 backend tests
pass; verified rendered DOM via headless Chrome at 375/768/1440 in both themes
and across all 7 routes.
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Dependency Review

The following issues were found:

  • ❌ 3 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ✅ 0 package(s) with unknown licenses.
  • ⚠️ 26 packages with OpenSSF Scorecard issues.

View full job summary

Comment thread respro/report/static/report.js Fixed
@codecov

codecov Bot commented Oct 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@jonas-fuchs
jonas-fuchs merged commit 0dd7105 into master Oct 8, 2026
13 checks passed
@jonas-fuchs
jonas-fuchs deleted the web branch October 8, 2026 13:51
jonas-fuchs and others added 4 commits October 8, 2026 16:18
…ication in `postMessage` handler'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.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.

2 participants