chore: sync local workspace changes

This commit is contained in:
2026-05-07 11:03:47 +09:00
parent 2df0ba30cb
commit 82c0d8a197
217 changed files with 44873 additions and 1678 deletions

View File

@@ -6,9 +6,10 @@ import type { FastifyInstance, FastifyReply } from 'fastify';
import { z } from 'zod';
import { env } from '../config/env.js';
import { hasErrorLogViewAccessToken } from '../services/error-log-service.js';
import { getActiveChatService, getChatRuntimeController } from '../services/chat-service.js';
import { ensureChatSessionResourceDirectories, getActiveChatService, getChatRuntimeController } from '../services/chat-service.js';
import { rollbackChatRuntimeRequest } from '../services/chat-runtime-rollback-service.js';
import {
CHAT_CONTEXT_DESCRIPTION_MAX_LENGTH,
createChatConversation,
deleteUnansweredChatConversationRequest,
deleteChatConversation,
@@ -40,10 +41,12 @@ function resolveStaticContentType(filePath: string) {
case '.json':
case '.css':
case '.html':
case '.md':
case '.txt':
case '.diff':
return 'text/plain; charset=utf-8';
case '.md':
case '.markdown':
return 'text/markdown; charset=utf-8';
case '.svg':
return 'image/svg+xml';
case '.png':
@@ -190,7 +193,7 @@ export async function registerChatRoutes(app: FastifyInstance) {
const viewerClientId = getClientIdHeader(request);
const clientId = canViewAllConversations(request) ? null : viewerClientId;
const items = await listChatConversations(clientId, query.limit ?? 50, viewerClientId || null);
const items = await listChatConversations(clientId, query.limit ?? 200, viewerClientId || null);
return {
ok: true,
@@ -239,7 +242,7 @@ export async function registerChatRoutes(app: FastifyInstance) {
);
const absolutePath = path.join(resolveChatAttachmentRepoPath(), ...relativePath.split('/'));
await mkdir(path.dirname(absolutePath), { recursive: true });
await ensureChatSessionResourceDirectories(resolveChatAttachmentRepoPath(), payload.sessionId);
await writeFile(absolutePath, buffer);
return {
@@ -375,8 +378,9 @@ export async function registerChatRoutes(app: FastifyInstance) {
title: z.string().trim().max(200).optional(),
chatTypeId: z.string().trim().max(120).nullable().optional(),
lastChatTypeId: z.string().trim().max(120).nullable().optional(),
generalSectionName: z.string().trim().max(120).optional().nullable(),
contextLabel: z.string().trim().max(200).optional(),
contextDescription: z.string().trim().max(2000).optional(),
contextDescription: z.string().trim().max(CHAT_CONTEXT_DESCRIPTION_MAX_LENGTH).optional(),
notifyOffline: z.boolean().optional(),
}).parse(request.body ?? {});
@@ -387,6 +391,7 @@ export async function registerChatRoutes(app: FastifyInstance) {
title: payload.title ?? '새 대화',
chatTypeId: payload.chatTypeId ?? null,
lastChatTypeId: payload.lastChatTypeId ?? payload.chatTypeId ?? null,
generalSectionName: payload.generalSectionName ?? null,
contextLabel: payload.contextLabel ?? null,
contextDescription: payload.contextDescription ?? null,
notifyOffline: payload.notifyOffline ?? true,
@@ -502,8 +507,9 @@ export async function registerChatRoutes(app: FastifyInstance) {
title: z.string().trim().min(1).max(200).optional(),
chatTypeId: z.string().trim().max(120).optional().nullable(),
lastChatTypeId: z.string().trim().max(120).optional().nullable(),
generalSectionName: z.string().trim().max(120).optional().nullable(),
contextLabel: z.string().trim().max(200).optional().nullable(),
contextDescription: z.string().trim().max(2000).optional().nullable(),
contextDescription: z.string().trim().max(CHAT_CONTEXT_DESCRIPTION_MAX_LENGTH).optional().nullable(),
notifyOffline: z.boolean().optional(),
}).parse(request.body ?? {});
@@ -521,6 +527,7 @@ export async function registerChatRoutes(app: FastifyInstance) {
clientId: current.clientId,
chatTypeId: payload.chatTypeId ?? current.chatTypeId,
lastChatTypeId: payload.lastChatTypeId ?? current.lastChatTypeId ?? current.chatTypeId,
generalSectionName: payload.generalSectionName ?? current.generalSectionName,
contextLabel: payload.contextLabel ?? current.contextLabel,
contextDescription: payload.contextDescription ?? current.contextDescription,
notifyOffline: payload.notifyOffline ?? current.notifyOffline,