fix(telemetry): classify environmental database errors as operational (#540)

Postgres auth (28xxx), permission (42501), resource (class 53), and operator-intervention (class 57) failures now classify as operational via a cause-chain walk, not bug. pg query bugs (e.g. 42601) stay bugs.
This commit is contained in:
SnapOtter
2026-07-16 19:26:46 +08:00
committed by GitHub
parent 39b89b9fbd
commit 631d82eaae
3 changed files with 52 additions and 0 deletions
+2
View File
@@ -15,6 +15,7 @@ import {
connectivityClass,
extractErrorCode,
isClientAbort,
isEnvironmentalDbError,
isSafeMessageError,
isToolInputError,
} from "@snapotter/shared";
@@ -59,6 +60,7 @@ export function classifyError(err: unknown, source?: ReportContext["source"]): E
}
if (isSafeMessageError(err)) return err.kind === "bug" ? "bug" : "operational";
if (connectivityClass(err)) return "operational";
if (isEnvironmentalDbError(err)) return "operational";
if (e?.code && OPERATIONAL_CODES.has(e.code)) return "operational";
return "bug";
}