From b50df6eb1d0b3df82be451130c205229963a7264 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 2 Jan 2026 12:20:38 +0100 Subject: [PATCH] style: format linted files --- src/auto-reply/reply.ts | 7 ++---- src/commands/status.ts | 5 ++++- src/config/sessions.ts | 15 ++++++++++--- src/discord/monitor.ts | 9 ++++---- src/web/media.test.ts | 49 ++++++++++++++++++++++++++++++----------- 5 files changed, 59 insertions(+), 26 deletions(-) diff --git a/src/auto-reply/reply.ts b/src/auto-reply/reply.ts index fff9a5158..58e9eb914 100644 --- a/src/auto-reply/reply.ts +++ b/src/auto-reply/reply.ts @@ -27,9 +27,9 @@ import { } from "../agents/workspace.js"; import { type ClawdisConfig, loadConfig } from "../config/config.js"; import { + buildGroupDisplayName, DEFAULT_IDLE_MINUTES, DEFAULT_RESET_TRIGGERS, - buildGroupDisplayName, loadSessionStore, resolveGroupSessionKey, resolveSessionKey, @@ -401,10 +401,7 @@ export async function getReplyFromConfig( sessionKey = resolveSessionKey(sessionScope, ctx, mainKey); sessionStore = loadSessionStore(storePath); - if ( - groupResolution?.legacyKey && - groupResolution.legacyKey !== sessionKey - ) { + if (groupResolution?.legacyKey && groupResolution.legacyKey !== sessionKey) { const legacyEntry = sessionStore[groupResolution.legacyKey]; if (legacyEntry && !sessionStore[sessionKey]) { sessionStore[sessionKey] = legacyEntry; diff --git a/src/commands/status.ts b/src/commands/status.ts index 37462379f..ddbb45914 100644 --- a/src/commands/status.ts +++ b/src/commands/status.ts @@ -169,7 +169,10 @@ const formatContextUsage = ( return `tokens: ${formatKTokens(used)} used, ${formatKTokens(left)} left of ${formatKTokens(contextTokens)} (${pctLabel})`; }; -const classifyKey = (key: string, entry?: SessionEntry): SessionStatus["kind"] => { +const classifyKey = ( + key: string, + entry?: SessionEntry, +): SessionStatus["kind"] => { if (key === "global") return "global"; if (key === "unknown") return "unknown"; if (entry?.chatType === "group" || entry?.chatType === "room") return "group"; diff --git a/src/config/sessions.ts b/src/config/sessions.ts index f96de2cf9..4768fd368 100644 --- a/src/config/sessions.ts +++ b/src/config/sessions.ts @@ -143,7 +143,9 @@ export function buildGroupDisplayName(params: { return token ? `${surfaceKey}:${token}` : surfaceKey; } -export function resolveGroupSessionKey(ctx: MsgContext): GroupKeyResolution | null { +export function resolveGroupSessionKey( + ctx: MsgContext, +): GroupKeyResolution | null { const from = typeof ctx.From === "string" ? ctx.From.trim() : ""; if (!from) return null; const chatType = ctx.ChatType?.trim().toLowerCase(); @@ -157,7 +159,9 @@ export function resolveGroupSessionKey(ctx: MsgContext): GroupKeyResolution | nu const surfaceHint = ctx.Surface?.trim().toLowerCase(); const hasLegacyGroupPrefix = from.startsWith("group:"); - const raw = (hasLegacyGroupPrefix ? from.slice("group:".length) : from).trim(); + const raw = ( + hasLegacyGroupPrefix ? from.slice("group:".length) : from + ).trim(); let surface: string | undefined; let kind: "group" | "channel" | undefined; @@ -209,7 +213,12 @@ export function resolveGroupSessionKey(ctx: MsgContext): GroupKeyResolution | nu const resolvedSurface = surface ?? surfaceHint; if (!resolvedSurface) { const legacy = hasLegacyGroupPrefix ? `group:${raw}` : `group:${from}`; - return { key: legacy, id: raw || from, legacyKey: legacy, chatType: "group" }; + return { + key: legacy, + id: raw || from, + legacyKey: legacy, + chatType: "group", + }; } const resolvedKind = kind === "channel" ? "channel" : "group"; diff --git a/src/discord/monitor.ts b/src/discord/monitor.ts index 08b376597..59b23cf32 100644 --- a/src/discord/monitor.ts +++ b/src/discord/monitor.ts @@ -238,7 +238,6 @@ export async function monitorDiscordProvider(opts: MonitorDiscordOpts = {}) { return; } } - } if (isDirectMessage && Array.isArray(allowFrom) && allowFrom.length > 0) { @@ -584,14 +583,16 @@ export function resolveDiscordChannelConfig(params: { const entry = channelEntries[channelId] ?? (channelSlug - ? channelEntries[channelSlug] ?? - channelEntries[`#${channelSlug}`] + ? (channelEntries[channelSlug] ?? channelEntries[`#${channelSlug}`]) : undefined) ?? (channelName ? channelEntries[normalizeDiscordSlug(channelName)] : undefined); if (!entry) return { allowed: false }; - return { allowed: entry.allow !== false, requireMention: entry.requireMention }; + return { + allowed: entry.allow !== false, + requireMention: entry.requireMention, + }; } return { allowed: true }; } diff --git a/src/web/media.test.ts b/src/web/media.test.ts index a1618d5b5..e5a6f394c 100644 --- a/src/web/media.test.ts +++ b/src/web/media.test.ts @@ -80,12 +80,34 @@ describe("web media loading", () => { // Create a minimal valid GIF (1x1 pixel) // GIF89a header + minimal image data const gifBuffer = Buffer.from([ - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, // GIF89a - 0x01, 0x00, 0x01, 0x00, // 1x1 dimensions - 0x00, 0x00, 0x00, // no global color table - 0x2c, 0x00, 0x00, 0x00, 0x00, // image descriptor - 0x01, 0x00, 0x01, 0x00, 0x00, // 1x1 image - 0x02, 0x01, 0x44, 0x00, 0x3b, // minimal LZW data + trailer + 0x47, + 0x49, + 0x46, + 0x38, + 0x39, + 0x61, // GIF89a + 0x01, + 0x00, + 0x01, + 0x00, // 1x1 dimensions + 0x00, + 0x00, + 0x00, // no global color table + 0x2c, + 0x00, + 0x00, + 0x00, + 0x00, // image descriptor + 0x01, + 0x00, + 0x01, + 0x00, + 0x00, // 1x1 image + 0x02, + 0x01, + 0x44, + 0x00, + 0x3b, // minimal LZW data + trailer ]); const file = path.join(os.tmpdir(), `clawdis-media-${Date.now()}.gif`); @@ -102,18 +124,19 @@ describe("web media loading", () => { it("preserves GIF from URL without JPEG conversion", async () => { const gifBytes = new Uint8Array([ - 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, - 0x01, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x01, 0x00, 0x00, - 0x02, 0x01, 0x44, 0x00, 0x3b, + 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, + 0x01, 0x44, 0x00, 0x3b, ]); const fetchMock = vi.spyOn(globalThis, "fetch").mockResolvedValueOnce({ ok: true, body: true, - arrayBuffer: async () => gifBytes.buffer.slice(gifBytes.byteOffset, gifBytes.byteOffset + gifBytes.byteLength), + arrayBuffer: async () => + gifBytes.buffer.slice( + gifBytes.byteOffset, + gifBytes.byteOffset + gifBytes.byteLength, + ), headers: { get: () => "image/gif" }, status: 200, } as Response);