v0.2.53
v0.2.53 — Copilot 세션 중간 모델 변경 (gpt-5.4→5.5) 감지
변경 사항
- *사용자 보고**: "fair-report 프로젝트에 현재 GPT 5.5 AI 에이전트가 작업 중인데, ViewWork 에서는 5.4 라고 인식".
원인 (실제 파일 분석)
- fair-report 의 VSCode chatSessions 파일
fa2a5eb4.../chatSessions/06834be2-....jsonl(106 lines) 의 selectedModel history: - Line 0 (
kind: 0초기 상태):identifier: "copilot/gpt-5.4",metadata.family: "gpt-5.4" - Line 44 (
kind: 1k=['selectedModel']):identifier: "copilot/claude-opus-4.7"로 변경 - Line 82 (
kind: 1):identifier: "copilot/gpt-5.5"로 다시 변경 (= 현재 모델) - *기존
prefetchModelInfo: 첫 8KB / 첫 줄만 파싱 (kind: 0만) → 초기 모델gpt-5.4만 인식. 이후 변경은scanFile이 처리해야 하지만, scanFile 은 watcher start 이후 새 라인만** 읽음 → 이미 파일에 기록된 과거 변경 (5.5) 못 잡음.
해결
prefetchModelInfo가 파일 전체 를 한 번 스캔해서 가장 최신selectedModel값을 추출:kind: 0라인:obj.v.inputState.selectedModel에서 추출.kind: 1+k배열에'selectedModel'포함:obj.v가 새 selectedModel 객체.- 마지막으로 추출된 family 를
modelBySession.set(sessionId, latestFamily).
검증
- 실제 fair-report chatSessions 파일에 새 로직 적용:
Total selectedModel updates parsed: 3
Latest family extracted: gpt-5.5 ✓변경 파일
electron/probe/copilotSessionWatcher.ts—prefetchModelInfo전체 라인 스캔 + kind:0/kind:1 통합 처리.package.json0.2.52 → 0.2.53.
비용
- 파일 전체 읽기 (
fs.readFileSync) — 일반 chatSessions 파일이 수십~수백 KB 라 negligible. - 한 번만 (
prefetchModelInfo는 watcher start 시 모든 chatSessions 에 대해 한 번씩 호출). 이후 변경은scanFile+handleChatSessionLine의 기존 kind:1 처리로 갱신.
검증
npx tsc --noEmitexit=0npm run build성공 — renderer 8.64s, 번들 3,460.79 kB.
사용자 확인
- fair-report 프로젝트를 ViewWork 에 다시 로드 → copilot 아바타 라벨이
copilot:gpt-5.5로 표시. - 향후 사용자가 대화 중 모델을 다른 것으로 바꾸면 (kind:1 update)
handleChatSessionLine의 기존 로직이 실시간 감지해 modelBySession 갱신. - --
📦 GitHub 릴리스 노트: v0.2.53