improve crashlogs

This commit is contained in:
KingKDot
2026-06-29 00:01:07 -05:00
parent 2c42a989cf
commit 5f598aa10b
9 changed files with 136 additions and 1 deletions
+10
View File
@@ -343,6 +343,16 @@ export function setOnlineState(id: string, online: boolean, disconnectReason?: s
invalidateClientMetricsSummaryCache();
}
export function setClientDisconnectInfo(id: string, disconnectReason: string, disconnectDetail?: string) {
db.run(
`UPDATE clients SET disconnect_reason=?, disconnect_detail=? WHERE id=?`,
disconnectReason || null,
disconnectDetail || null,
id,
);
invalidateClientMetricsSummaryCache();
}
const setOfflineStateStmt = db.prepare(
`UPDATE clients SET online=0, last_seen=?, disconnect_reason=?, disconnect_detail=? WHERE id=?`,
);
+2
View File
@@ -43,6 +43,8 @@ export type Hello = {
publicKey?: string;
signature?: string;
publicIP?: string;
lastCrashReason?: string;
lastCrashDetail?: string;
};
export type EnrollmentChallenge = {
+8 -1
View File
@@ -16,7 +16,8 @@ import {
requestThumbnailRegen,
} from "./thumbnails";
import { metrics } from "./metrics";
import { markClientDbSynced, queueClientDbUpdate, shouldSyncClientToDb } from "./client-db-sync";
import { flushQueuedClientDbUpdates, markClientDbSynced, queueClientDbUpdate, shouldSyncClientToDb } from "./client-db-sync";
import { setClientDisconnectInfo } from "./db";
export { clearClientSyncState } from "./client-db-sync";
@@ -122,6 +123,8 @@ export async function handleHello(
info.country = country;
info.lastSeen = Date.now();
info.online = true;
const lastCrashReason = sanitizeInfoString((payload as any).lastCrashReason, 64);
const lastCrashDetail = sanitizeInfoString((payload as any).lastCrashDetail, 1200);
queueClientDbUpdate({
id: info.id,
@@ -146,6 +149,10 @@ export async function handleHello(
lastSeen: info.lastSeen,
online: 1,
});
if (lastCrashReason) {
flushQueuedClientDbUpdates();
setClientDisconnectInfo(info.id, lastCrashReason, lastCrashDetail);
}
sendPingRequest(info, ws, "hello");