feat(client): human-readable audit diffs
Replace the raw JSON.stringify dumps on both audit pages with a shared AuditDiffView that renders one row per changed attribute: humanized keys, old struck through before the new value, dictionary slugs resolved through a whole-map reverse lookup (safe because option values are unique ascii tokens), booleans and jalali dates formatted, and unknown structures falling back to compact JSON so nothing disappears.
Q
QorbaniSepehr committed
7b115f1d28f3817ffc8754160fe2bf15833dd14b
Parent: aef2241