Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
e8d7547
docs: brainstorming spec for web UI
May 6, 2026
c69fbd2
docs: web UI design package — spec, design system, phase 1 plan
May 6, 2026
b24082f
refactor(web): rename [prometheus] config section to [web] in prepara…
May 6, 2026
34bd426
docs(spec): frontend dist commits to git, no npm in release pipeline
May 6, 2026
633df32
feat(web): add HTTP mux with basic-auth and default-password gate
May 6, 2026
14ca557
feat(web): land /api/version, /api/overview, /api/pools endpoints
May 6, 2026
e1999c2
feat(web): land /api/clients and /api/servers with filter, sort, pagi…
May 6, 2026
509e876
feat(web): land /api/connections /api/stats /api/databases /api/users
May 6, 2026
5b31a69
feat(web): land /api/config /api/log_level /api/auth_query /api/pool_…
May 6, 2026
a18b8da
feat(web): land /api/prepared /api/interner + admin /api/prepared/tex…
May 6, 2026
6adf610
feat(web): land /api/top/clients and /api/apps
May 6, 2026
e31d570
feat(web): land /api/top/queries with interner-entry instrumentation
May 6, 2026
809e8d9
feat(web): land /api/top/prepared with per-CacheEntry hit/miss instru…
May 6, 2026
de78dc4
feat(web): land /api/events with admin command ring buffer
May 6, 2026
47a3d5d
feat(web): land /api/logs with lock-free LogTap
May 6, 2026
b98ef81
docs(web): add phase 5 design spec for frontend skeleton
May 6, 2026
801d843
feat(web): land frontend skeleton (phase 5)
May 6, 2026
77f715e
ci(web): relax frontend dist check to existence
May 6, 2026
1f45741
feat(web): wire overview page to real data (phase 6a MVP)
May 6, 2026
0899ef1
feat(web): add connection breakdown + pool heatmap to overview (phase…
May 6, 2026
44801d6
feat(web): dual-axis wait + top-5 errors per pool on overview (phase …
May 6, 2026
e4d56f1
feat(web): collapsed resource detail on overview (phase 6a-4)
May 6, 2026
16f1ba8
feat(web): real pools page with sort, filter, and severity column (ph…
May 6, 2026
df9ebbf
feat(web): real clients page with server-side filter, sort, paginate …
May 6, 2026
a9e0027
feat(web): real caches page with prepared and query-cache tabs (phase…
May 6, 2026
fadf8cd
feat(web): live log stream on /logs (phase 6e)
May 6, 2026
a33330f
feat(web): real /config page with eight collapsible sections (phase 6f)
May 6, 2026
6a4a39c
feat(web): refined chrome and global auth recovery (phase 6g)
May 6, 2026
8ef5415
fix(web): split 401 response and add tooltip help (phase 6h)
May 6, 2026
ab40128
feat(web): tailored config panels (phase 6g-2)
May 6, 2026
cd6dda7
feat(web): compact health bar + adaptive overview layout (phase 6h-2 …
May 6, 2026
198d9ad
feat(web): embed SPA bundle into the binary (phase 7)
May 6, 2026
c9c79b5
docs(web): web UI guide + BDD scenarios for the listener
May 6, 2026
f1c0fb7
fix(web): tighten default visibility and close LogTap public surface
May 6, 2026
ba02fb5
fix(web): gzip static assets and deduplicate the 401 picker
May 6, 2026
acfd50a
refactor(web): split routes/collect.rs into per-domain submodules
May 6, 2026
e0b6275
docs(web): handoff document for the next session
May 6, 2026
b5e191b
ci(web): hard-fail frontend dist sync drift via source-hash
May 6, 2026
93a09f7
feat(web): wire reconnect/gate-budget/coordinator/auth-failure thresh…
May 6, 2026
b397a4b
feat(web): per-pool error breakdown by SQLSTATE
May 6, 2026
e9e4c70
ci(packaging): include frontend/dist in SRPM and DEB tarballs
May 6, 2026
cb2cdf2
demo(grafana): turn on Web UI and add a session-mode listener
May 6, 2026
8f8c142
docs(web): remove internal planning artifacts from the PR
May 6, 2026
986e84e
chore(web): trim IBM Plex bundle to latin+cyrillic woff2 + OFL notice
May 6, 2026
c1ba373
fix(web): stop overview sparkline qps/tps zero-peak square wave
May 6, 2026
920154f
feat(web): batch UX fixes from live demo feedback
May 6, 2026
7c8dd06
fix(web): hot UX batch — full-text logs, addr filter, stale-tab gap, …
May 6, 2026
ed6968e
fix(demo): rename session pool user to app_session and grant pgbench …
May 6, 2026
ec26f43
feat(web): bloomberg-terminal skin foundation
May 6, 2026
a7b364f
feat(web): backend P0 metrics + Bloomberg polish + sawtooth + remembe…
May 6, 2026
1bd70a2
feat(web): pool detail as a full route /pools/:id
May 6, 2026
7004ff9
feat(web): /api/process + Overview process bar (RSS, CPU, threads, FDs)
May 6, 2026
868f169
feat(web): pool fallback_active + TLS counters in JSON DTO
May 6, 2026
e5e7e32
feat(web): apps page on /apps
May 6, 2026
8e29976
feat(web): events overlay (RELOAD/PAUSE/RESUME/RECONNECT) on Overview
May 6, 2026
2588db1
feat(web): hover readout on Overview sparklines
May 6, 2026
24881e7
feat(web): combined per-thread CPU tile (max/avg/min) on Overview
May 6, 2026
7ae0751
feat(web): hover/events on AreaChart + DualAxisChart, pretty SQL, ope…
May 6, 2026
381680c
feat(web): heatmap hover overlay + human-friendly latency formatting
May 6, 2026
6c83e39
fix(web): LogTap idle window 30 s -> 2 min, cache process tile across…
May 6, 2026
91ebd92
fix(web): compact threads tile, FD limit abbrev, drop incident.md, gi…
May 6, 2026
31e9eed
fix(web): compact tile values — fmtMs / fmtRate fit any tile width
May 6, 2026
4bf76b9
feat(web): write actions — POST /api/admin/{pause,resume,reconnect,re…
May 6, 2026
f768a54
feat(web): PanelView modal — Grafana-style full-screen drill-down
May 6, 2026
07250ce
feat(web): /wall war-room route + URL-state on Pools filters
May 6, 2026
6894e52
chore(web): bloomberg-style favicon
May 6, 2026
30e8794
feat(web): expandable Card click + per-thread CPU panel + RSS panel
May 6, 2026
f5cc61f
feat(web): RSS tile drill-down — memory breakdown panel
May 6, 2026
f8ec039
chore(web): rewrite operator-language copy across all UI pages
May 6, 2026
819b59a
fix(web): sticky sidebar — no more empty void on long pages
May 7, 2026
54b43c7
fix(web): codex review critical — sockets DTO, AuthGate re-prompt, sc…
May 7, 2026
5b7aedb
fix(web): codex review P2 — usePoll race + Pools URL state desync
May 7, 2026
b78728f
docs: ui_anonymous default, credentials persistence, scrape race duri…
May 7, 2026
d5ea91c
fix(web): ArcSwap for WebServerOptions — RELOAD now propagates auth/g…
May 7, 2026
8893390
fix(admin): unified pause/resume/reconnect semantics across PG and web
May 7, 2026
8daef85
perf(web): /api/overview snapshots client/server stats once per request
May 7, 2026
7f264c1
fix: codex critical batch — admin-gate /api/top/queries, fail-fast li…
May 7, 2026
cf79e6b
docs(ru): finish ui_anonymous default reconciliation in example block
May 7, 2026
89f8918
fix: codex DBA important — TLS/fallback label sync, reload changed fl…
May 7, 2026
2037e4e
docs+pkg: codex DevOps P2#4/P2#5 — opt-in install-hooks, /metrics dep…
May 7, 2026
a3911d7
feat(admin): pool-level scoping — ?pool=user@db on REST, affected lis…
May 7, 2026
7607ce3
chore: drop .local/handoff/ from the PR
May 7, 2026
0d5c334
chore: gitignore .local/ so handoff drafts cannot slip in again
May 7, 2026
3810c80
feat(web): pool detail — Coordinator + Pool scaling sections
May 7, 2026
b619085
docs+web: codex P3 batch — Web UI under Observability, prometheus ref…
May 7, 2026
0e06738
perf+web: codex perf P1#1/P1#4 + tooltip dictionary on Pool detail
May 7, 2026
b965f29
feat(web): tooltip dictionary applied to Pools / Clients / Apps headers
May 7, 2026
017701c
perf(web): HTTP keep-alive — reuse TCP connection across requests
May 7, 2026
58e38d1
perf(web): codex perf P2#5/P2#7/P2#8 + build.rs to invalidate stale e…
May 7, 2026
5e25213
perf+arch: codex P3#9 micro-allocs + P2#4 typed admin DTO
May 7, 2026
5c77225
feat(web): styled tooltips + Config page shows Default→Current with f…
May 7, 2026
a080fc1
perf+arch: codex Perf P2#6 + Arch P2#6 — shared 250 ms snapshot for /…
May 7, 2026
140a0a6
arch(web): split server.rs into focused submodules (codex Arch P2#5)
May 7, 2026
c270923
feat(web): truncate long config values in the Config table
May 7, 2026
872f2a8
feat(web): client-side sort on Prepared statements table
May 7, 2026
44ea647
feat(web): two-column grid layout on Pool detail
May 7, 2026
8e6faf4
feat(web): live qps / tx-per-sec on Apps table
May 7, 2026
f0dc1ba
perf(server): incremental memory counter on prepared statement cache
May 7, 2026
69c365b
perf(server): direct hash lookup in prepared statement cache
May 7, 2026
f37c1f8
feat(web): filters on Prepared statements table
May 7, 2026
a80852c
feat(web): rich tooltips on Process memory breakdown
May 7, 2026
066ba12
feat(web): live Q/s + T/s and labelled filters on Clients
May 7, 2026
26fb311
feat(web): operator tooltips on every Caches column header
May 7, 2026
751d508
feat(web): page-scoped sort on Q/s and T/s columns
May 7, 2026
2670284
release: 3.8.0 — built-in admin web UI
May 7, 2026
22f2ffa
docs: reposition Web UI as headline diagnostic dashboard
May 7, 2026
7cb2660
perf(web): embed only gzipped frontend assets
May 7, 2026
cf26b20
ci(frontend): assert pre-gzipped dist artifacts
May 7, 2026
57b8b2c
docs(changelog): rewrite 3.8.0 around what the dashboard reveals
May 7, 2026
39a8818
docs(ru): fix P0 facts and clean up reference triad
May 7, 2026
9e20854
docs(ru): rewrite guides/web-ui.md without dev jargon
May 7, 2026
3ed107d
docs(ru): replace double-dash with em-dash in tutorials
May 7, 2026
0461d2c
docs(ru): finish corpus cleanup — anglicisms, anthropomorphisms, typo…
May 7, 2026
c80c240
docs(ru): close re-audit residuals
May 7, 2026
7ec87ba
fix(web): stacked-area top series no longer paints over lower bands
May 7, 2026
0f521a2
fix(web): tooltips on Caches column headers no longer clipped
May 7, 2026
f5a97c7
feat(web): live Refs/s column on Prepared statements
May 7, 2026
5bdb13b
fix(web): kill page-wide jitter on Overview sparkline hover
May 7, 2026
4e94e2a
feat(web): tooltips on Overview Golden-signals tiles
May 7, 2026
2dc78e8
fix(web): keep the value visible on narrow Sparkline tiles
May 7, 2026
334338c
fix(web): close rust-architect review nits
May 7, 2026
955a740
perf(stats+web): kill String clones on the dashboard hot path
May 7, 2026
c1567be
fix(web): query / xact p95 / p99 reported in microseconds, not ms
May 7, 2026
a835ff7
fix(web): RSS reading wrong /proc/self/statm column + bar tooltip clip
May 7, 2026
0cbedaa
fix(web): preserve sub-millisecond precision in p95 / p99 / wait
May 7, 2026
c8dc694
fix(web): memory breakdown bar scales to RSS, not category sum
May 7, 2026
1cd1eb2
fix(web): memory bar tooltip flips to right anchor on right-half segm…
May 7, 2026
b634cdd
fix(web): saturation = active/max, demote backend signals from CRITICAL
May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/frontend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Frontend lint, typecheck, dist sync

on:
push:
branches: [master]
paths:
- "frontend/**"
- ".github/workflows/frontend.yml"
pull_request:
paths:
- "frontend/**"
- ".github/workflows/frontend.yml"

jobs:
lint-typecheck-build:
name: lint + typecheck + dist sync
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: frontend/package-lock.json

- name: Install
run: npm ci
working-directory: frontend

- name: Lint
run: npm run lint
working-directory: frontend

- name: Typecheck
run: npm run typecheck
working-directory: frontend

- name: Build
run: npm run build
working-directory: frontend

- name: Verify dist exists and is non-empty
run: |
test -s frontend/dist/index.html
test -d frontend/dist/assets
test "$(ls frontend/dist/assets/*.js 2>/dev/null | wc -l)" -ge 1
echo "frontend/dist/ shipped with $(ls frontend/dist/assets | wc -l) assets"
# Strict diff-against-rebuild was attempted but vite/esbuild output is
# not byte-stable across local and CI runners (different esbuild native
# binaries despite identical package-lock). Treat the committed
# frontend/dist/ as the source of truth; phase 7 will revisit with a
# reproducible-build approach (esbuild pin or build-once-in-CI).
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ build/
dist/
wheels/
*.egg-info
# Frontend build output is committed (Web UI decision #22).
!frontend/dist/
!frontend/dist/**

# Virtual environments
.venv
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ base64 = "0.22.1"
hmac = "0.12"
sha2 = "0.10"
stringprep = "0.1"
subtle = "2"
nix = { version = "0.30.1", features = ["process", "signal"] }
sha-1 = "0.10"
lru = "0.16.3"
Expand Down
Loading
Loading