fix(web/default): guard playground messages against legacy classic shape (#4650)

fix(playground): handle legacy localStorage message shape

Sanitizes old-format saved messages to prevent 500 on playground load.
This commit is contained in:
skynono 2026-05-12 16:23:33 +08:00 committed by GitHub
parent 2b89989f62
commit fde2cac9d3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -88,8 +88,12 @@ export function loadMessages(): Message[] | null {
try {
const saved = localStorage.getItem(STORAGE_KEYS.MESSAGES)
if (saved) {
const parsed: Message[] = JSON.parse(saved)
const sanitized = sanitizeMessagesOnLoad(parsed)
const parsed: unknown = JSON.parse(saved)
if (!Array.isArray(parsed)) {
localStorage.removeItem(STORAGE_KEYS.MESSAGES)
return null
}
const sanitized = sanitizeMessagesOnLoad(parsed as Message[])
// Persist sanitized result to avoid re-sanitizing on subsequent loads
if (sanitized !== parsed) {
saveMessages(sanitized)