diff --git a/src/main/bootstrap.ts b/src/main/bootstrap.ts index 9dbaedb..2760d09 100644 --- a/src/main/bootstrap.ts +++ b/src/main/bootstrap.ts @@ -275,13 +275,19 @@ async function initMeetingSummaryWiring(): Promise { captionService.on('session-saved', (summary: { sessionId: string }) => { // 회의 모드가 CaptionService를 사용 중이면 MeetingSummary 자동 생성 건너뛰기 - const { getMeetingModeService } = require('./services/MeetingModeService') as { getMeetingModeService: () => { isMeetingModeActive: () => boolean } } - if (getMeetingModeService().isMeetingModeActive()) { - logger.info('Skipping auto meeting summary: meeting mode active') - return - } - summaryService.onCaptionSessionSaved(summary).catch((err) => { - logger.warn('Auto meeting summary failed:', err) + import('./services/MeetingModeService').then(({ getMeetingModeService }) => { + if (getMeetingModeService().isMeetingModeActive()) { + logger.info('Skipping auto meeting summary: meeting mode active') + return + } + summaryService.onCaptionSessionSaved(summary).catch((err) => { + logger.warn('Auto meeting summary failed:', err) + }) + }).catch(() => { + // MeetingModeService 로드 실패 시 기본 동작 수행 + summaryService.onCaptionSessionSaved(summary).catch((err) => { + logger.warn('Auto meeting summary failed:', err) + }) }) }) } catch (err) { diff --git a/src/renderer/pages/MeetingModePage.tsx b/src/renderer/pages/MeetingModePage.tsx index 8178b10..9d4e854 100644 --- a/src/renderer/pages/MeetingModePage.tsx +++ b/src/renderer/pages/MeetingModePage.tsx @@ -304,7 +304,7 @@ export function MeetingModePage(): React.ReactElement { {/* 상단 바 */} - + {formatTime(elapsedMs)} @@ -333,7 +333,8 @@ export function MeetingModePage(): React.ReactElement { {/* 메인 패널: 전사 + 메모 */} {/* 좌: 실시간 전사 */} - + + {t('meeting.transcript')} @@ -343,7 +344,7 @@ export function MeetingModePage(): React.ReactElement { flex: 1, overflow: 'auto', fontFamily: d3roFontMono, - fontSize: d3roTypo.reading.fontSize, + fontSize: d3roTypo.body.size, color: d3roPalette.text.primary, lineHeight: 1.8, }} @@ -363,6 +364,7 @@ export function MeetingModePage(): React.ReactElement { ))} + {/* 우: 메모 입력 */} @@ -383,7 +385,7 @@ export function MeetingModePage(): React.ReactElement { {formatTime(memo.timestampMs)} - + {memo.content} @@ -467,7 +469,7 @@ export function MeetingModePage(): React.ReactElement { {/* 요약 */} {t('meeting.summary')} - + {detail.minutes.summary} @@ -477,7 +479,7 @@ export function MeetingModePage(): React.ReactElement { {t('meeting.decisions')} {detail.minutes.decisions.map((d, i) => ( - + {'• '}{d} ))} @@ -489,7 +491,7 @@ export function MeetingModePage(): React.ReactElement { {t('meeting.actionItems')} {detail.minutes.actionItems.map((item, i) => ( - + {'☐ '}{item.assignee ? `${item.assignee}: ` : ''}{item.task} {item.deadline ? ` (${item.deadline})` : ''} @@ -506,7 +508,7 @@ export function MeetingModePage(): React.ReactElement { {tl.time} - + {tl.type === 'memo' ? '📝 ' : ''}{tl.content} @@ -519,10 +521,10 @@ export function MeetingModePage(): React.ReactElement { {/* 에러 메시지 */} {detail.status === 'error' && detail.errorMessage && ( - + {t('meeting.error')} - {detail.errorMessage} + {detail.errorMessage} )} @@ -535,7 +537,7 @@ export function MeetingModePage(): React.ReactElement { {formatTime(m.timestampMs)} - {m.content} + {m.content} ))}