When fields/items are optional, treat nil/empty as a first-class state: guard against nil dereferences, sanitize outputs, and never overwrite meaningful non-nil data with nil.
Apply:
XContent = nil).len(...)==0.nil/empty stream elements so downstream consumers see only valid items.Example:
// Nil-aware mapping: don’t overwrite with nil
if len(m.ReasoningDetails) > 0 {
// ... build from details ...
} else if m.Reasoning != nil {
m.ReasoningContent = m.Reasoning
}
// Defensive fallback for empty payload
if len(responseBody) > 0 {
persistAggregatedResponse(ctx, responseBody, meta)
} else {
// aggregated “completed” doesn’t guarantee responseBody presence
persistResponseChunks(ctx)
}
// Stream sanitization: filter nil items
for _, item := range items {
if item == nil {
continue
}
emit(item)
}
Enter the URL of a public GitHub repository