- Persistence layer (jsonl.go addMsg/SetHistory) normalizes CreatedAt when missing so the invariant is guaranteed at the storage boundary - API layer (session.go) exposes created_at on all transcript message types with session.updated fallback for legacy messages - Frontend uses per-message timestamps when available - messagesContentEqual ignores CreatedAt for tail-matching after JSONL roundtrip Fixes #2787 |
||
|---|---|---|
| .. | ||
| assistant-message-state.ts | ||
| controller.ts | ||
| detail-visibility.ts | ||
| history.ts | ||
| protocol.ts | ||
| state.ts | ||
| tool-calls.ts | ||
| websocket.ts | ||