fix: iterative QA pass — resolve remaining bugs, UX and accessibility improvements

Three QA iterations to convergence (zero issues remaining):

Workbench UI:
- Connection badge: amber "Connected (no auth)" for unauthenticated state
- Theme persistence: restore script in index.html + localStorage sync
- Settings About section: add bottom padding so content isn't clipped
- Clear messages: cancel in-flight requests when clearing chat
- Feature switch labels: proper casing + acronym handling (MCP, LLM)
- Token Cost badge: hidden during loading state
- ARIA: role="switch", aria-checked on toggles, aria-labels on buttons
- ConfigApi: null-safe chaining for getPrompts/getSystemPrompt

Grafana dashboards:
- Auto-refresh 30s on all 3 dashboards
- Panel heights reduced to fit viewport without scrolling
- Anonymous role upgraded to Editor for Explore access

Infrastructure:
- Nginx: DNS resolver with variable-based upstream (prevents crash loop)
- Workbench port set to 3002 in .env

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
elpresidank 2026-04-07 06:33:22 -05:00
parent 3a80872482
commit 9ef9ef854f
11 changed files with 102 additions and 33 deletions

View file

@ -7,6 +7,17 @@
<title>TrustGraph Workbench</title>
</head>
<body class="dark">
<script>
// Restore theme preference before first paint to avoid flash
(function() {
var theme = localStorage.getItem('tg-theme');
if (theme === 'light') {
document.body.classList.remove('dark');
document.body.classList.add('light');
document.documentElement.classList.add('light');
}
})();
</script>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>