mirror of
https://github.com/euzu/tuliprox.git
synced 2026-09-16 14:12:14 +02:00
* catchup fixes * feat(frontend): bookmarkable views via URL hash deep linking Persist the active view to the URL hash so views are bookmarkable and survive a page refresh. Restore the view from the hash on load, sync the hash on navigation, and handle browser back/forward via a hashchange listener. * feat(dev): add dev container for reproducible development * feat(frontend): interactive multi-series metric sparklines on stats cards * feat(frontend): aggregate status health banner with capacity breakdown * feat(frontend): add guided empty states with hints * chore(devcontainer): add gh CLI, dev tooling, cache volumes, and tasks - Install GitHub CLI, git, build-essential, clang, lld, mold, jq - Add cargo-watch, cargo-llvm-cov, cargo-deny, cargo-machete - Persist cargo registry, target, and gh config via named volumes - Fix volume ownership for the dev user in post-create * chore(vscode): add tasks and launch configs for dev workflow - tasks.json: backend/frontend dev servers, test, lint, fmt, coverage, deps checks, docs - launch.json: CodeLLDB configs for backend and workspace tests * a11y: add accessible labels to inputs and collapsed sidebar buttons - Input: add aria_label prop, falling back to placeholder when no visible label - Sidebar: pass translated hint + aria_label to collapsed-mode icon buttons * feat(frontend): warn on unsaved config changes before page unload * feat(frontend): handle session expiry with client-side logout Schedule a client-side logout when the JWT expires, showing a notification and returning the user to the login screen instead of silently failing with 401s. * chore(vscode): update tasks.json * New Features Session expiration detection with proactive logout warning Real-time health status banner showing connectivity and provider status Live metric sparklines for CPU, memory, and network usage Deep-linkable views via URL hash with back/forward browser support Enhanced empty states with guided messages across app sections Improvements Faster system metrics sampling (2-second intervals) Archive and catchup-aware EPG handling for accurate program guides * New Features Session expiration detection with proactive logout warning Real-time health status banner showing connectivity and provider status Live metric sparklines for CPU, memory, and network usage Deep-linkable views via URL hash with back/forward browser support Enhanced empty states with guided messages across app sections Improvements Faster system metrics sampling (2-second intervals) Archive and catchup-aware EPG handling for accurate program guides
47 lines
1.2 KiB
JSON
47 lines
1.2 KiB
JSON
{
|
|
"name": "tuliprox",
|
|
"image": "mcr.microsoft.com/devcontainers/rust:1-bookworm",
|
|
"features": {
|
|
"ghcr.io/devcontainers/features/node:1": {
|
|
"version": "lts"
|
|
}
|
|
},
|
|
"forwardPorts": [8901, 9899],
|
|
"portsAttributes": {
|
|
"8901": {
|
|
"label": "backend (api)",
|
|
"onAutoForward": "notify"
|
|
},
|
|
"9899": {
|
|
"label": "frontend (trunk serve)",
|
|
"onAutoForward": "openBrowser"
|
|
}
|
|
},
|
|
"postCreateCommand": "bash .devcontainer/post-create.sh",
|
|
"mounts": [
|
|
"source=tuliprox-cargo-registry,target=/usr/local/cargo/registry,type=volume",
|
|
"source=tuliprox-target,target=${containerWorkspaceFolder}/target,type=volume",
|
|
"source=tuliprox-gh-config,target=/home/vscode/.config/gh,type=volume"
|
|
],
|
|
"customizations": {
|
|
"vscode": {
|
|
"extensions": [
|
|
"rust-lang.rust-analyzer",
|
|
"tamasfe.even-better-toml",
|
|
"fill-labs.dependi",
|
|
"vadimcn.vscode-lldb",
|
|
"usernamehw.errorlens",
|
|
"DavidAnson.vscode-markdownlint"
|
|
],
|
|
"settings": {
|
|
"rust-analyzer.check.command": "clippy",
|
|
"editor.formatOnSave": true,
|
|
"[rust]": {
|
|
"editor.defaultFormatter": "rust-lang.rust-analyzer"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"remoteUser": "vscode"
|
|
}
|