forked from wrenn/wrenn
fix: improve error feedback for terminal disconnects and host unavailability
Show "[session disconnected]" in terminal when PTY websocket closes cleanly. Map scheduler and agent unavailability errors to 503 with user-friendly message instead of leaking internal details.
This commit is contained in:
@ -332,6 +332,7 @@
|
||||
|
||||
if (s.state === 'connected') {
|
||||
updateSession(id, { state: 'disconnected' });
|
||||
int.term.write('\r\n\x1b[38;2;107;104;98m[session disconnected]\x1b[0m\r\n');
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -54,6 +54,8 @@ func agentErrToHTTP(err error) (int, string, string) {
|
||||
return http.StatusConflict, "conflict", err.Error()
|
||||
case connect.CodePermissionDenied:
|
||||
return http.StatusForbidden, "forbidden", err.Error()
|
||||
case connect.CodeUnavailable:
|
||||
return http.StatusServiceUnavailable, "no_hosts_available", "no servers available — try again later"
|
||||
case connect.CodeUnimplemented:
|
||||
return http.StatusNotImplemented, "agent_error", err.Error()
|
||||
default:
|
||||
@ -108,6 +110,9 @@ func serviceErrToHTTP(err error) (int, string, string) {
|
||||
return http.StatusForbidden, "forbidden", "forbidden"
|
||||
case strings.Contains(msg, "invalid or expired"):
|
||||
return http.StatusUnauthorized, "unauthorized", "invalid or expired credentials"
|
||||
case strings.Contains(msg, "no online") && strings.Contains(msg, "hosts available"),
|
||||
strings.Contains(msg, "no host has sufficient resources"):
|
||||
return http.StatusServiceUnavailable, "no_hosts_available", "no servers available — try again later"
|
||||
case strings.Contains(msg, "invalid"):
|
||||
return http.StatusBadRequest, "invalid_request", "invalid request"
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user