chore: exclude local resource artifacts from main sync

This commit is contained in:
2026-05-15 10:16:45 +09:00
parent 442879313f
commit d38d022872
504 changed files with 17074 additions and 3642 deletions

39
etc/servers/work-server/src/routes/chat.ts Executable file → Normal file
View File

@@ -16,6 +16,7 @@ import {
deleteChatConversation,
ensureChatConversationTables,
getChatConversation,
listChatSourceChangeSnapshots,
listChatConversationDetailPage,
listChatConversations,
markChatConversationResponsesRead,
@@ -205,6 +206,21 @@ export async function registerChatRoutes(app: FastifyInstance) {
};
});
app.get('/api/chat/source-changes', async (request) => {
const query = z.object({
limit: z.coerce.number().int().min(1).max(500).optional(),
}).parse(request.query ?? {});
const viewerClientId = getClientIdHeader(request);
const clientId = canViewAllConversations(request) ? null : viewerClientId;
const items = await listChatSourceChangeSnapshots(clientId, query.limit ?? 300);
return {
ok: true,
items,
};
});
app.get('/api/chat/runtime', async () => {
return {
ok: true,
@@ -380,6 +396,7 @@ export async function registerChatRoutes(app: FastifyInstance) {
const payload = z.object({
sessionId: z.string().trim().min(1).max(120),
title: z.string().trim().max(200).optional(),
requestBadgeLabel: z.string().trim().max(120).optional().nullable(),
chatTypeId: z.string().trim().max(120).nullable().optional(),
lastChatTypeId: z.string().trim().max(120).nullable().optional(),
generalSectionName: z.string().trim().max(120).optional().nullable(),
@@ -393,6 +410,7 @@ export async function registerChatRoutes(app: FastifyInstance) {
sessionId: payload.sessionId,
clientId: clientId || null,
title: payload.title ?? '새 대화',
requestBadgeLabel: payload.requestBadgeLabel ?? null,
chatTypeId: payload.chatTypeId ?? null,
lastChatTypeId: payload.lastChatTypeId ?? payload.chatTypeId ?? null,
generalSectionName: payload.generalSectionName ?? null,
@@ -509,6 +527,7 @@ export async function registerChatRoutes(app: FastifyInstance) {
}).parse(request.params ?? {});
const payload = z.object({
title: z.string().trim().min(1).max(200).optional(),
requestBadgeLabel: z.string().trim().max(120).optional().nullable(),
chatTypeId: z.string().trim().max(120).optional().nullable(),
lastChatTypeId: z.string().trim().max(120).optional().nullable(),
generalSectionName: z.string().trim().max(120).optional().nullable(),
@@ -528,12 +547,22 @@ export async function registerChatRoutes(app: FastifyInstance) {
const item = await updateChatConversationContext(params.sessionId, {
title: payload.title ?? current.title,
requestBadgeLabel:
Object.prototype.hasOwnProperty.call(payload, 'requestBadgeLabel') ? payload.requestBadgeLabel ?? null : undefined,
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,
chatTypeId: Object.prototype.hasOwnProperty.call(payload, 'chatTypeId') ? payload.chatTypeId ?? null : undefined,
lastChatTypeId:
Object.prototype.hasOwnProperty.call(payload, 'lastChatTypeId') ? payload.lastChatTypeId ?? null : undefined,
generalSectionName:
Object.prototype.hasOwnProperty.call(payload, 'generalSectionName')
? payload.generalSectionName ?? null
: undefined,
contextLabel:
Object.prototype.hasOwnProperty.call(payload, 'contextLabel') ? payload.contextLabel ?? null : undefined,
contextDescription:
Object.prototype.hasOwnProperty.call(payload, 'contextDescription')
? payload.contextDescription ?? null
: undefined,
notifyOffline: payload.notifyOffline ?? current.notifyOffline,
});