Tags: AI4S-YB/igv-rs
Tags
v0.7.0 — Browser view via igv.js
Press `B` inside the TUI to launch a local HTTP server and open
igv.js in your default browser. The browser starts at the TUI's
current region and follows your navigation through Server-Sent
Events. Pan, zoom, gene-name search — all reflected in the browser
in real time.
Implementation highlights:
- New crate `igv-serve`: axum 0.7 HTTP server with `/api/config`,
`/file/*` (Range-served FASTA/BAM/VCF/bigWig via
`tower_http::services::ServeFile`), `/api/features/{annotation,link}`
(JSON from igv-core sources, honouring `--link-min-score`),
`/api/jump?name=GENE` (gene-name resolver shared with TUI palette),
`/api/sse` (broadcast view events). Bundles `igv.esm.min.js` 3.0.5
(~1.25 MB) via `include_bytes!` so the browser view works offline.
- TUI: `Action::OpenBrowser` + `B` keybinding, `ServeController`
(lazy server start, dedup'd notify_view, graceful shutdown).
- CLI: `--no-browser` (disable B), `--serve-port <N>` (0 = ephemeral).
- Config: `[serve]` table with `auto_open` and `port` keys.
- Help overlay: new `B — open browser view (igv.js)` row.
Refactor:
- Lifted `find_by_name_union` from TUI into `igv-core` so both the
TUI command palette and `/api/jump` share the same multi-isoform
union logic.
Loopback-only (127.0.0.1), no auth, no remote access — for one-shot
inspection on the same machine. Spec:
docs/superpowers/specs/2026-05-11-browser-serve-design.md
ci: release workflow for multi-platform binary publishing Triggers only on release.published. Builds and attaches: - x86_64-unknown-linux-gnu (native ubuntu-latest) - x86_64-unknown-linux-musl (cross, statically linked) - aarch64-unknown-linux-gnu (cross) - x86_64-apple-darwin (macos-13) - aarch64-apple-darwin (macos-14, Apple Silicon) - x86_64-pc-windows-msvc (windows-latest) Each platform produces a tar.gz / zip plus a sha256 checksum. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>