# Render JSON log lines as structured key/value trees Follow-up to the JSON log ingestion design decision (repowise decision fdb47034ad954e3ea0b898fdc2750c32). When an ingested log line's raw text parses as a JSON object, display it in the log viewer as a collapsible key/value tree instead of a raw string. Lines that aren't valid JSON objects keep rendering as plain text, unchanged. ## Acceptance criteria - LogPreview.tsx detects a JSON-object log line (starts with `{` and parses) and renders it as a collapsible key/value tree. - Non-JSON (or invalid-JSON) lines are unaffected — same raw-text rendering as today. - Detection/parsing happens client-side against the existing raw `text` field; no backend API change required for this ticket.