diff --git a/CLAUDE.md b/CLAUDE.md
index ab16b80..cc76887 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -32,7 +32,7 @@ npm run typecheck # tsc --noEmit
- 녹음 UI: 9개 웨이브 바, cos 분포, 100ms
## 현재 상태
-Phase 1~14.5 전체 완료 + 랜딩 페이지(site/).
+Phase 1~15 전체 완료 + 랜딩 페이지(site/).
차단 이슈: @nut-tree-fork/nut-js 포크 사용
## 설계 문서 (구현 시 Read 도구로 참조)
@@ -51,6 +51,7 @@ Phase12+: FileTranscriptionService, MeetingSummaryService, DictationTemplateServ
Phase13+: VoiceConversationService, RAGService, VoiceActionService
Phase14: MeetingModeService
Phase14.5: MeetingDocTemplateService + 다중 문서 생성/편집/내보내기
+Phase15: Auto Polish + AI 채팅 + 마인드맵 + 공유
## DS 컴포넌트 (src/renderer/components/ds/)
CrtDisplay, InstrumentPanel, Led, PhysicalButton, MetalCard,
diff --git a/src/main/ipc/meeting-mode-handlers.ts b/src/main/ipc/meeting-mode-handlers.ts
index 0639271..579179b 100644
--- a/src/main/ipc/meeting-mode-handlers.ts
+++ b/src/main/ipc/meeting-mode-handlers.ts
@@ -70,8 +70,12 @@ export function registerMeetingModeHandlers(): void {
ipcMain.handle(ch.GET_SESSION, (_event, params: MeetingGetSessionParams) => {
try {
- return ipcSuccess(getMeetingModeService().getSession(params.sessionId))
+ logger.info(`getSession 호출: ${params.sessionId}`)
+ const result = getMeetingModeService().getSession(params.sessionId)
+ logger.info(`getSession 성공: documents=${result.documents.length}`)
+ return ipcSuccess(result)
} catch (err) {
+ logger.error(`getSession 실패: ${err instanceof Error ? err.message : String(err)}`)
return ipcError(ErrorCode.MeetingSessionNotFound, err instanceof Error ? err.message : String(err))
}
})
diff --git a/src/renderer/components/meeting/AddDocumentDialog.tsx b/src/renderer/components/meeting/AddDocumentDialog.tsx
index 4742466..8113cc5 100644
--- a/src/renderer/components/meeting/AddDocumentDialog.tsx
+++ b/src/renderer/components/meeting/AddDocumentDialog.tsx
@@ -107,7 +107,7 @@ export function AddDocumentDialog({
{/* 템플릿 목록 */}
{templates.map((tp) => (
- !generating && setSelectedId(tp.id)}
sx={{
@@ -115,19 +115,22 @@ export function AddDocumentDialog({
opacity: generating ? 0.6 : 1,
border:
selectedId === tp.id
- ? `1px solid ${d3roPalette.accent.amber}`
- : `1px solid ${d3roPalette.border.subtle}`,
+ ? `2px solid ${d3roPalette.accent.amber}`
+ : `2px solid transparent`,
+ borderRadius: d3roRadius.inner,
transition: 'border-color 0.15s',
'&:hover': {
borderColor: generating ? undefined : d3roPalette.accent.amberDim,
},
}}
>
- {tp.name}
-
- {tp.description}
-
-
+
+ {tp.name}
+
+ {tp.description}
+
+
+
))}
diff --git a/src/renderer/pages/MeetingModePage.tsx b/src/renderer/pages/MeetingModePage.tsx
index 1b03ea4..09a08dd 100644
--- a/src/renderer/pages/MeetingModePage.tsx
+++ b/src/renderer/pages/MeetingModePage.tsx
@@ -220,11 +220,12 @@ export function MeetingModePage(): React.ReactElement {
) : (
{sessions.map((session) => (
- handleViewDetail(session.id)}
+ sx={{ cursor: 'pointer', '&:hover': { opacity: 0.85 } }}
>
+
@@ -258,6 +259,7 @@ export function MeetingModePage(): React.ReactElement {
)}
+
))}
)}