2.6 KiB
2.6 KiB
Bolt — Telemetry Explorer
GitHub repo: saravanakumardb/temp_bolt-telemetry-explorer
Push Instructions
- Push directly to
main— do NOT open a PR - Only modify files in this repo
Rules
- No
console.log - No network calls — mock data / localStorage only
- No hardcoded colors — no hex, no rgb/rgba/hsl, no
bg-[#123456]Tailwind classes - Do NOT commit
.env*,.next/,node_modules/,.vercel/ - pnpm only
pnpm run checkmust pass (tsc --noEmit+eslint)pnpm run buildmust pass (next build --webpack)
CSS Token Contract
Define in src/app/globals.css under :root (add .dark override):
--ux-bg— page background--ux-surface— card/panel surface--ux-surface-2— elevated surface--ux-border— borders--ux-text— primary text--ux-text-muted— secondary text--ux-accent— primary accent--ux-accent-foreground— text on accent--ux-danger— destructive/error--ux-warning— warning--ux-success— success--ux-ring— focus ring--ux-shadow— shadows
Use only via Tailwind: bg-[var(--ux-surface)], text-[var(--ux-text)], border-[var(--ux-border)]
Component Architecture
- Reusable components →
src/components/ - Pages in
src/app/**compose components only - Components must NOT import from
src/app/**
Stack
- Next.js 16 App Router, React 19, TypeScript strict
- TailwindCSS v4, pnpm
Mission
Build a Telemetry Explorer micro-app that loads a local JSON dataset and provides an observability-console-like exploration experience. Inspiration for improving Admin "Client Logs".
Data Source
Include src/data/sample-events.json with ~200 mock events:
id, timestamp, productId, platform, osFamily, appVersion, eventType, module, eventName, requestId?, userId?, installId?, severity?, errorMessage?, metadata (object)
Pages
/overview + stats/exploremain explorer/clustersclient-side error grouping
Explorer
- Faceted filters: platform, eventType, module, eventName, severity
- Date range, free-text search, active filter chips + clear all
- Save/load filter presets (localStorage)
- Table/list toggle
- Row click → detail drawer (Overview, Raw JSON, Related by requestId/installId)
- Copy requestId, copy JSON
- Filters reflected in URL query params (shareable)
Clusters
- Group by
eventName + errorMessagefingerprint - Show: count, lastSeen, sample message
- Click cluster → list example events
Verification
pnpm install && pnpm run check && pnpm run build