/** * Session Panel — 세션 목록 UI 관리 */ class SessionPanel { constructor() { this.sessions = []; this.activeSessionId = null; this.onSessionSelect = null; // callback(sessionId) this.onSessionRemove = null; // callback(sessionId) this.listEl = document.getElementById('sessionList'); } /** * 세션 목록 업데이트 */ update(sessions) { this.sessions = sessions; this.render(); } /** * 활성 세션 설정 */ setActive(sessionId) { this.activeSessionId = sessionId; this.render(); } /** * 세션 목록 렌더링 */ render() { if (!this.listEl) return; if (this.sessions.length === 0) { this.listEl.innerHTML = `