Record JSON log ingestion design decision, file follow-up tickets (ticket 003)

Decision covers detection, invalid-JSON handling, and a prioritized feature
roadmap (repowise decision fdb47034ad954e3ea0b898fdc2750c32). Files three
follow-up implementation tickets (014-016) and removes the investigation
ticket now that the decision is recorded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XFUNZwCvz3kcod3352ZR2o
This commit is contained in:
Hugh Kaznowski
2026-09-05 18:36:27 +01:00
co-authored by Claude Sonnet 5
parent bb513b5eac
commit b1e509efbd
4 changed files with 31 additions and 13 deletions
@@ -0,0 +1,10 @@
# 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.