@startuml
title After: Axum Response Conversion Without Unwrap
skinparam backgroundColor #FFFFFF
skinparam defaultFontColor #000000
skinparam ArrowColor #111827
skinparam componentStyle rectangle
skinparam defaultFontName Consolas

component "convert_auth_response(AuthResponse)" as convert #E8FFF0
component "StatusCode::from_u16(...)\ninvalid -> 500" as status #EEF2FF
component "Response::new(Body::from(...))" as response_new #EAF2FF
component "set response.status_mut()" as status_set #EAF2FF
component "insert valid headers only" as header_insert #EAF2FF
component "Axum Response" as response #E8F5E9

convert --> status
status --> response_new
response_new --> status_set
status_set --> header_insert
header_insert --> response

note right of header_insert #E8FFF0
No builder fallback unwrap path.
Invalid status/header values
are handled safely.
end note
@enduml
