Files
euzuandGitHub 49573dd6b1 Feature/UI improvements (#770)
* 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
2026-06-04 18:00:37 +02:00

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"
}