diff --git a/README.md b/README.md index 0c32633..940479b 100644 --- a/README.md +++ b/README.md @@ -1079,5 +1079,7 @@ MIT License - 업데이트: 2026-04-06 00:31 (KST) - AX Agent 상단 중앙 탭 그룹의 버튼 padding, 최소 폭/높이와 바깥 pill 래퍼 높이를 한 단계 더 줄였다. 이제 탭 바깥 테두리 안쪽 여백이 더 살아 있어, 레퍼런스처럼 답답하지 않은 세그먼트 탭 비율로 보인다. - 업데이트: 2026-04-06 00:38 (KST) - - vLLM 연결 시 등록 모델 alias/실제 모델 ID가 섞여 전달되던 경로를 보정했다. 내부 서비스(Ollama/vLLM)는 현재 선택값이 alias여도 등록 모델의 실제 모델명을 다시 찾아 요청 payload에 넣도록 정리했다. - - vLLM OpenAI-compatible 요청의 `max_tokens`는 서버 허용 범위를 넘지 않도록 자동 보정했다. 일반 대화와 도구 호출 모두 같은 상한 계산을 써 `invalid max_tokens` 오류가 덜 나도록 맞췄다. +- vLLM 연결 시 등록 모델 alias/실제 모델 ID가 섞여 전달되던 경로를 보정했다. 내부 서비스(Ollama/vLLM)는 현재 선택값이 alias여도 등록 모델의 실제 모델명을 다시 찾아 요청 payload에 넣도록 정리했다. +- vLLM OpenAI-compatible 요청의 `max_tokens`는 서버 허용 범위를 넘지 않도록 자동 보정했다. 일반 대화와 도구 호출 모두 같은 상한 계산을 써 `invalid max_tokens` 오류가 덜 나도록 맞췄다. +- 업데이트: 2026-04-06 00:48 (KST) +- AX Agent 새 대화 전환 시 저장되지 않은 fresh conversation이 최신 저장 대화로 다시 교체되던 세션 복원 경로를 보정했다. [ChatSessionStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/ChatSessionStateService.cs) 의 `LoadOrCreateConversation()`이 기억된 대화 ID가 없는 상태에서도 현재 탭의 임시 fresh conversation을 우선 유지하도록 바꿔, 새 대화를 누르면 빈 화면이 잠깐 깜빡인 뒤 기존 대화가 다시 나타나던 문제를 막았다. diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index f07103f..a4b56b5 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -4838,3 +4838,6 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎. - 업데이트: 2026-04-06 00:38 (KST) - [LlmService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/LlmService.cs) 에서 내부 서비스(Ollama/vLLM) 모델 해석 경로를 보강했다. 현재 선택값이 alias 또는 등록 모델 키여도 `RegisteredModel`에서 실제 모델명을 다시 찾아 payload의 `model` 값으로 보내도록 정리했다. - 같은 파일에 vLLM용 `max_tokens` 상한 보정 helper를 추가하고, [LlmService.ToolUse.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/LlmService.ToolUse.cs) 의 일반 도구 호출 / OpenAI-compatible tool body 생성에도 같은 값을 쓰게 맞췄다. 이로써 `Model Not Exist`, `invalid max_tokens` 계열 오류를 줄이는 방향으로 정리했다. +- 업데이트: 2026-04-06 00:48 (KST) + - [ChatSessionStateService.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/ChatSessionStateService.cs) 의 `LoadOrCreateConversation()`에 현재 탭의 저장되지 않은 fresh conversation 우선 유지 분기를 추가했다. 새 대화를 시작한 직후처럼 `RememberConversation(tab, null)` 상태에서 다시 로드 경로가 돌면, 이전에는 최신 저장 대화를 다시 불러와 기존 transcript가 복원될 수 있었다. + - 이제 현재 세션에 같은 탭의 비저장 fresh conversation이 남아 있으면 최신 저장 meta fallback보다 그 임시 conversation을 먼저 반환한다. 이 변경으로 AX Agent에서 `새 대화` 클릭 시 빈 화면이 잠깐 깜빡인 뒤 기존 대화가 다시 나타나던 문제가 줄어들도록 보정했다. diff --git a/src/AxCopilot/Services/ChatSessionStateService.cs b/src/AxCopilot/Services/ChatSessionStateService.cs index e09c5a2..2339224 100644 --- a/src/AxCopilot/Services/ChatSessionStateService.cs +++ b/src/AxCopilot/Services/ChatSessionStateService.cs @@ -116,6 +116,15 @@ public sealed class ChatSessionStateService RememberConversation(normalizedTab, null); } + // 새 대화를 시작한 직후처럼 아직 저장되지 않은 현재 대화가 있으면, + // 최신 저장 대화로 되돌아가지 말고 그 임시 세션을 그대로 유지합니다. + if (CurrentConversation != null + && string.Equals(NormalizeTab(CurrentConversation.Tab), normalizedTab, StringComparison.OrdinalIgnoreCase) + && !HasPersistableContent(CurrentConversation)) + { + return CurrentConversation; + } + if (!hadRememberedConversation) { var latestMeta = storage.LoadAllMeta()