feat(web-explorer): Sen Web Explorer + npm license attribution - #83
Open
EnriqueParodi wants to merge 1 commit into
Open
feat(web-explorer): Sen Web Explorer + npm license attribution#83EnriqueParodi wants to merge 1 commit into
EnriqueParodi wants to merge 1 commit into
Conversation
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 16, 2026 16:24
2738b1e to
f49a9a7
Compare
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
2 times, most recently
from
August 16, 2026 17:04
3a49b64 to
9dbddc0
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
2 times, most recently
from
August 16, 2026 17:26
751d7b5 to
f6e22c6
Compare
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
2 times, most recently
from
August 16, 2026 20:05
8c5f59a to
738c6f6
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
2 times, most recently
from
August 17, 2026 07:13
e1114f6 to
5bb1d7d
Compare
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
from
August 17, 2026 07:13
738c6f6 to
d96932a
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 17, 2026 07:46
5bb1d7d to
bdfa58e
Compare
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
2 times, most recently
from
August 18, 2026 22:27
0660c70 to
9af4ce3
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
2 times, most recently
from
August 19, 2026 07:42
9e5bd31 to
567004c
Compare
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
from
August 19, 2026 07:42
9af4ce3 to
de2a3f9
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 19, 2026 17:01
567004c to
548c5d2
Compare
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
from
August 19, 2026 17:01
de2a3f9 to
a3801d0
Compare
EnriqueParodi
marked this pull request as ready for review
August 19, 2026 17:03
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 19, 2026 19:06
548c5d2 to
9794fd5
Compare
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
from
August 19, 2026 19:06
a3801d0 to
5d4648f
Compare
EnriqueParodi
force-pushed
the
feat/db-python-bindings
branch
from
August 19, 2026 21:21
9794fd5 to
4f43ff8
Compare
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
from
August 19, 2026 21:21
5d4648f to
5513097
Compare
Browser-based UI for inspecting and interacting with a running Sen process, React and TypeScript on top of @sen/client. The jsonrpc static-file server serves it, so the browser only talks to the origin that already carries the live data, and the npm dependencies' licences are attributed alongside.
EnriqueParodi
force-pushed
the
feat/web-explorer
branch
from
August 20, 2026 11:26
5513097 to
af144f3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Browser-based UI for inspecting and interacting with a running Sen process.
React + TypeScript on top of @sen/client; served by jsonrpc's static-file
server so the browser only ever talks to one origin (the JSON-RPC endpoint
that also carries the live data).
What you can do with it:
queries). Author and reuse interests across sessions; queries persist.
sequences, variants, and units. Edit writable properties in place.
resizable columns, source filtering, and a live row-arrival highlight.
share a cursor across panels, brush-zoom, pause/resume, scrub through
a retention-bounded history. Pop the board out to a second monitor.
across instances, with a class-grouped Overview to navigate dense
topologies.
pinned set, open queries all round-trip through localStorage.
Layer model:
schema hard-coded anywhere in the UI. Every type, property, and unit
is discovered at runtime.
and registers a baked index.html bundle at /explorer.
uPlot for time series; react-virtuoso for the event tables.
Correctness commitments:
the Events tab; an event watch with no Events tab open now sees its
values, not "--".
sentinel-refs (React 19 drops memoised values for offscreen subtrees).
blocked legitimate https deployments behind a reverse proxy.
behaviour briefly showed "no value" across every reconnected widget.
_mouseDown / _mouseMove / _mouseUp / _keyEvent for popup-window
portals); popouts now use layout-lock for portable resize.
deps would re-fire on every parent render and steal focus from any
input inside the modal (real bug, caught during user testing).
for ... ofiterated over a mutating array on a parallel resubscribe path.
if a minor bump silently changes private internals the explorer fails
fast instead of silently misrendering.
Plus extensive polish across the plot board (rAF-batched render, per-line
cursor labels, brush-zoom integrated with uPlot's native pattern, panel
drag-between, axis-per-unit, retention slider bound to window cap) and
a CLI shortcut:
sen web-explorerbakes a yaml preset (ether + jsonrpc +webexplorer) into cli_run and opens the browser at the right URL.
Plus an npm license attribution helper (sen_internal_bake_npm_licenses)
that the web explorer calls to bake its runtime dependency licenses into
the install bundle; reusable by any future npm-built frontend.
Ships with the getting-started guides:
Closes the gap between what the tree can do and what a newcomer can find:
arriving as a tool requirement, not a host install), the Conan Center +
npm registry network requirement, first-build time, how to skip the
browser stack, Windows caveat.
run_tests lanes (flaky tier with until-pass:5, junitparser merge), a
table of suites that are environment-sensitive by design (previously
tribal knowledge), and the Debug lane where SEN_DEBUG_ASSERT and the
invariant checks actually compile.
Explorer showcase; the showcase itself stays documented with its
component (docs/components/web_explorer.md), which now links back to
the install guide for getting a built tree.