Deploy main to deploy - #550
Merged
Merged
Conversation
* fix: bind deck tutorial events only during onboarding DeckTutorialController lives on the regular deck scene, so it subscribed to DeckManagementController events in every play session. Reaching 15 cards in a normal deck edit fired the tutorial save-deck panel. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * chore: loading page 텍스트 크기 수정 --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
MagicBookTutorialController lives on the regular magic book scene and subscribed to scene events in every play session. Nothing pops today because its handlers only raise events with no subscriber, but it is the same leak the deck controller had. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Unity's official unity-cli skill assumes the CLI, the Editor, and the project share one OS. On a WSL shell driving a Windows Editor that assumption breaks, and the resulting errors point away from the cause: Unix paths silently resolve against \\wsl.localhost, Unity refuses case-sensitive volumes with exit 21, and `unity status` cannot see a GUI Editor holding the project lock. This skill resolves the binary, translates path arguments, and runs the preflight checks before handing off to the official command syntax. Every figure and error string in it was measured on this machine. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* feat: add coach hint system with on/off option 플레이 중 막힌 상황을 감지해 힌트를 띄우고 관련 UI를 강조한다. 온보딩 튜토리얼은 1회성이라 그 뒤로는 도움이 없었다. 판단은 CoachScheduler에 모았다. 규칙은 "지금 문제가 있는가"만 답하고, 언제 띄우고 내릴지는 스케줄러가 정한다. 엔진에 의존하지 않아 EditMode 테스트로 dwell, 쿨다운, 백오프, 숙달 판정을 검증한다. 힌트 남발을 막는 장치가 네 겹이다. 조건이 dwell 동안 이어져야 발동하고, 힌트 사이에 전역 쿨다운이 있으며, 무시당할수록 다음 노출이 밀리고, 씬 방문당 노출 횟수에 상한이 있다. 힌트를 세 번 따르면 영구 은퇴한다. 씬과 프리팹 배선은 Tools/Coach 메뉴로 처리한다. YAML 직접 편집은 깨지기 쉬워 피했다. Refs #511 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix: Object 키워드가 모호하여서 path를 명시하도록 수정했습니다 * feat: restyle hint toggle, place panel clear of play, add close button Unity 기본 토글은 흰 상자에 작은 체크 표시라 상태가 안 읽히고 프로젝트 디자인과도 맞지 않았다. DESIGN.md 토큰으로 다시 만든다. 켜지면 행 전체가 primary 청록으로 차고, 옆 글자가 "켬" / "끔"으로 상태를 말로 적는다. 색만으로는 애매하고 색각 이상 유저에게는 안 보인다. TutorialPanel은 위치를 (480, -360)으로 하드코딩한다. 온보딩은 화면을 가려도 되지만 훈수는 비차단이라 필드를 덮으면 안 된다. CoachPanelPlacement로 Show 뒤에 배치를 덮어쓴다. 기본 상단 중앙, 대체 상단 우측, 둘 다 인스펙터에서 조정한다. 닫을 수 없는 힌트는 없는 편이 낫다. 패널 우측 상단에 X 버튼을 붙였다. 직접 닫는 것은 흘려보내는 것과 다른 신호라 백오프를 마지막 단계로 바로 올리고, 뒤늦은 행동을 따랐다고 세지 않으며, 두 번 닫으면 영구 은퇴시킨다. Refs #511 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * style: qualify Object in LobbyIdleRule to match the other rules LobbyScene에는 Object 하위 네임스페이스가 없어 컴파일은 되지만, 7db89b8e에서 고친 네 파일과 표기가 어긋난다. 나중에 LobbyScene/Object가 생기면 같은 자리에서 다시 깨진다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix: Button의 의존성이 모호해서 path를 명시했습니다 * feat: 코치 시스템을 셋팅했습니다 * docs: 훈수 시스템 주석을 한글로 옮김 Contracts/Coach 는 처음부터 한글이었는데 나머지가 영어라 톤이 갈렸다. 기술 용어와 식별자는 영어로 둔다 — dwell, backoff, cooldown, Outline, PlayerPrefs, CardInputSender 처럼 굳이 옮기면 오히려 읽기 나빠지는 것들이다. Header 속성은 프로젝트의 다른 스크립트와 같이 영어로 유지한다. Tooltip 은 인스펙터에서 사람이 읽는 문장이라 한글로 옮겼다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix(editor): 코치 셋업 메뉴를 다시 돌릴 수 있게 고침 두 곳이 재실행을 막고 있었다. 토글은 이미 있으면 그냥 빠져나갔다. 그래서 구버전으로 만든 Unity 기본 토글이 그대로 남고, 새로 만든 모양이 영영 반영되지 않았다. 이제 지우고 다시 만든다. 패널은 Canvas 아래에 붙는데 찾을 때는 root 밑만 뒤졌다. 재실행하면 못 찾고 패널을 하나 더 만든다. 씬 전체에서 이름으로 찾도록 바꿨다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix(editor): 셋업 메뉴가 씬을 직접 저장하고 결과를 로그로 남기게 함 MarkSceneDirty 는 더티 표시만 한다. Ctrl+S 를 누르지 않으면 결과가 사라지는데 메뉴는 성공했다고 로그만 남겨서, 돌렸는데 아무것도 안 바뀐 것처럼 보였다. 이제 SaveScene 까지 한다. 무엇을 했는지도 남긴다. 루트를 새로 만들었는지, 닫기 버튼을 새로 만들었는지 재사용했는지, 마지막에 panel/highlighter/closeButton 참조가 실제로 채워졌는지 찍는다. 절반만 하고 성공했다고 말하는 상황을 로그에서 바로 알 수 있어야 한다. 패널을 못 찾거나 못 만들면 조용히 null 을 넣지 않고 에러를 내고 멈춘다. 예전 버전이 만들어 둔 CoachPanel 중복도 경고한다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat: 코치 패널에 x 버튼 추가 --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* feat: 튜토리얼 마지막에 접대 봇 실전 전투를 붙인다 온보딩이 로비 안내에서 끝나 있었다. 플레이어는 목업 전투만 해 보고 실제 세션은 한 번도 겪지 않은 채 튜토리얼을 마쳤다. 상대는 지정하지 않는다. 초보 딱지가 붙은 계정을 접대 봇으로 보내는 건 서버 몫이고, 클라이언트는 프랙티스 매칭을 시작하기만 한다. 여기서 상대를 고르면 배정 규칙이 두 곳에 생긴다. 씬 판단은 OnboardingBattleWatch로 떼어 Contracts 어셈블리에 뒀다. 매칭이 실패해 게임 씬에 못 들어간 채 로비에 남은 경우와, 전투를 마치고 돌아온 경우를 구분해야 하는데, 전자에서 온보딩을 끝내면 마지막 전투를 통째로 건너뛰게 된다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat: 첫 전투를 플레이어가 직접 시작하고 마무리 안내를 받게 한다 매칭을 대신 걸어 주고 있었다. 메뉴 설명이 끝나자마자 화면이 게임으로 넘어가서, 플레이어는 자기가 무엇을 하게 된 건지 모른 채 첫 전투에 들어갔다. 이제 프랙티스 버튼을 짚어 주고 플레이어가 직접 누른다. 앞의 로비 스텝들은 버튼 클릭을 막고 설명만 했지만, 이 스텝은 막지 않는다 - 설명이 아니라 실제로 눌러 보는 것이 목적이다. 전투를 마치고 로비로 돌아오면 마무리 안내를 띄운 뒤 온보딩을 끝낸다. 버튼을 안 눌렀거나 매칭이 실패해 로비에 남은 경우와 전투를 마치고 돌아온 경우를 계속 구분한다. 전자에서 끝내면 마지막 전투를 통째로 건너뛰게 된다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix: 튜토리얼 스텝이 두 번 진행되지 않게 하고 원소표 안내 전에 미리보기를 닫는다 TutorialPanel이 "다음" 콜백을 부르면서 비우지 않아, 두 번 누르면 같은 스텝이 두 번 진행됐다. 온보딩 마지막 스텝에서는 첫 클릭이 GlobalTutorialManager를 파괴하고 두 번째 클릭이 그 파괴된 오브젝트에 Destroy를 걸어 MissingReferenceException이 났다. 콜백을 꺼내고 비운 뒤 부르도록 고쳤다. 모든 스텝에 있던 문제이고, 한 스텝은 한 번만 진행하는 것이 원래 의미다. 마지막 스텝은 자기 자신을 파괴하는 유일한 스텝이라 여기서만 증상이 드러났을 뿐이다. 같은 이유가 다른 경로로도 오지 않도록 완료 처리를 두 곳에서 멱등하게 만들었다. GlobalTutorialManager는 이미 끝났으면 아무 일도 하지 않고, HospitalityBattleState는 로비 씬이 다시 로드돼도 마무리 안내를 한 번만 띄운다. 원소표 안내는 유닛 미리보기 모달과 같은 자리를 쓴다. 앞 단계에서 열어 두었으면 버튼도 안내도 그 뒤에 가려지므로, 짚어 주기 전에 씬의 미리보기를 모두 닫는다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* feat: add coach hint system with on/off option 플레이 중 막힌 상황을 감지해 힌트를 띄우고 관련 UI를 강조한다. 온보딩 튜토리얼은 1회성이라 그 뒤로는 도움이 없었다. 판단은 CoachScheduler에 모았다. 규칙은 "지금 문제가 있는가"만 답하고, 언제 띄우고 내릴지는 스케줄러가 정한다. 엔진에 의존하지 않아 EditMode 테스트로 dwell, 쿨다운, 백오프, 숙달 판정을 검증한다. 힌트 남발을 막는 장치가 네 겹이다. 조건이 dwell 동안 이어져야 발동하고, 힌트 사이에 전역 쿨다운이 있으며, 무시당할수록 다음 노출이 밀리고, 씬 방문당 노출 횟수에 상한이 있다. 힌트를 세 번 따르면 영구 은퇴한다. 씬과 프리팹 배선은 Tools/Coach 메뉴로 처리한다. YAML 직접 편집은 깨지기 쉬워 피했다. Refs #511 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix: Object 키워드가 모호하여서 path를 명시하도록 수정했습니다 * fix: 스크린스페이스 캔버스를 Expand 스케일로 통일 캔버스 26개가 전부 가로 기준(MatchWidthOrHeight, match 0)으로만 스케일되어 창 종횡비가 16:9를 벗어나면 UI가 커지거나 세로가 잘렸다. 그중 8개는 ConstantPixelSize라 아예 스케일되지 않았다. ScreenMatchMode를 Expand로 바꾸고, 기준 해상도를 현재 가로 기준 동작이 1920x1080에서 만들어내는 값으로 정규화한다. 16:9에서는 스케일 팩터가 그대로라 외형이 유지되고, 그 외 종횡비만 교정된다. 800x600 -> 800x450 2000x600 -> 2000x1125 1920x1080 -> 유지 ConstantPixelSize -> 1920x1080 월드스페이스 캔버스는 CanvasScaler가 적용되지 않아 제외했다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat: restyle hint toggle, place panel clear of play, add close button Unity 기본 토글은 흰 상자에 작은 체크 표시라 상태가 안 읽히고 프로젝트 디자인과도 맞지 않았다. DESIGN.md 토큰으로 다시 만든다. 켜지면 행 전체가 primary 청록으로 차고, 옆 글자가 "켬" / "끔"으로 상태를 말로 적는다. 색만으로는 애매하고 색각 이상 유저에게는 안 보인다. TutorialPanel은 위치를 (480, -360)으로 하드코딩한다. 온보딩은 화면을 가려도 되지만 훈수는 비차단이라 필드를 덮으면 안 된다. CoachPanelPlacement로 Show 뒤에 배치를 덮어쓴다. 기본 상단 중앙, 대체 상단 우측, 둘 다 인스펙터에서 조정한다. 닫을 수 없는 힌트는 없는 편이 낫다. 패널 우측 상단에 X 버튼을 붙였다. 직접 닫는 것은 흘려보내는 것과 다른 신호라 백오프를 마지막 단계로 바로 올리고, 뒤늦은 행동을 따랐다고 세지 않으며, 두 번 닫으면 영구 은퇴시킨다. Refs #511 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * style: qualify Object in LobbyIdleRule to match the other rules LobbyScene에는 Object 하위 네임스페이스가 없어 컴파일은 되지만, 7db89b8e에서 고친 네 파일과 표기가 어긋난다. 나중에 LobbyScene/Object가 생기면 같은 자리에서 다시 깨진다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix: Button의 의존성이 모호해서 path를 명시했습니다 * feat: 코치 시스템을 셋팅했습니다 * docs: 훈수 시스템 주석을 한글로 옮김 Contracts/Coach 는 처음부터 한글이었는데 나머지가 영어라 톤이 갈렸다. 기술 용어와 식별자는 영어로 둔다 — dwell, backoff, cooldown, Outline, PlayerPrefs, CardInputSender 처럼 굳이 옮기면 오히려 읽기 나빠지는 것들이다. Header 속성은 프로젝트의 다른 스크립트와 같이 영어로 유지한다. Tooltip 은 인스펙터에서 사람이 읽는 문장이라 한글로 옮겼다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix(editor): 코치 셋업 메뉴를 다시 돌릴 수 있게 고침 두 곳이 재실행을 막고 있었다. 토글은 이미 있으면 그냥 빠져나갔다. 그래서 구버전으로 만든 Unity 기본 토글이 그대로 남고, 새로 만든 모양이 영영 반영되지 않았다. 이제 지우고 다시 만든다. 패널은 Canvas 아래에 붙는데 찾을 때는 root 밑만 뒤졌다. 재실행하면 못 찾고 패널을 하나 더 만든다. 씬 전체에서 이름으로 찾도록 바꿨다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix(editor): 셋업 메뉴가 씬을 직접 저장하고 결과를 로그로 남기게 함 MarkSceneDirty 는 더티 표시만 한다. Ctrl+S 를 누르지 않으면 결과가 사라지는데 메뉴는 성공했다고 로그만 남겨서, 돌렸는데 아무것도 안 바뀐 것처럼 보였다. 이제 SaveScene 까지 한다. 무엇을 했는지도 남긴다. 루트를 새로 만들었는지, 닫기 버튼을 새로 만들었는지 재사용했는지, 마지막에 panel/highlighter/closeButton 참조가 실제로 채워졌는지 찍는다. 절반만 하고 성공했다고 말하는 상황을 로그에서 바로 알 수 있어야 한다. 패널을 못 찾거나 못 만들면 조용히 null 을 넣지 않고 에러를 내고 멈춘다. 예전 버전이 만들어 둔 CoachPanel 중복도 경고한다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat: 코치 패널에 x 버튼 추가 * feat: 튜토리얼 마지막에 접대 봇 실전 전투를 붙인다 온보딩이 로비 안내에서 끝나 있었다. 플레이어는 목업 전투만 해 보고 실제 세션은 한 번도 겪지 않은 채 튜토리얼을 마쳤다. 상대는 지정하지 않는다. 초보 딱지가 붙은 계정을 접대 봇으로 보내는 건 서버 몫이고, 클라이언트는 프랙티스 매칭을 시작하기만 한다. 여기서 상대를 고르면 배정 규칙이 두 곳에 생긴다. 씬 판단은 OnboardingBattleWatch로 떼어 Contracts 어셈블리에 뒀다. 매칭이 실패해 게임 씬에 못 들어간 채 로비에 남은 경우와, 전투를 마치고 돌아온 경우를 구분해야 하는데, 전자에서 온보딩을 끝내면 마지막 전투를 통째로 건너뛰게 된다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat: 첫 전투를 플레이어가 직접 시작하고 마무리 안내를 받게 한다 매칭을 대신 걸어 주고 있었다. 메뉴 설명이 끝나자마자 화면이 게임으로 넘어가서, 플레이어는 자기가 무엇을 하게 된 건지 모른 채 첫 전투에 들어갔다. 이제 프랙티스 버튼을 짚어 주고 플레이어가 직접 누른다. 앞의 로비 스텝들은 버튼 클릭을 막고 설명만 했지만, 이 스텝은 막지 않는다 - 설명이 아니라 실제로 눌러 보는 것이 목적이다. 전투를 마치고 로비로 돌아오면 마무리 안내를 띄운 뒤 온보딩을 끝낸다. 버튼을 안 눌렀거나 매칭이 실패해 로비에 남은 경우와 전투를 마치고 돌아온 경우를 계속 구분한다. 전자에서 끝내면 마지막 전투를 통째로 건너뛰게 된다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix: 튜토리얼 스텝이 두 번 진행되지 않게 하고 원소표 안내 전에 미리보기를 닫는다 TutorialPanel이 "다음" 콜백을 부르면서 비우지 않아, 두 번 누르면 같은 스텝이 두 번 진행됐다. 온보딩 마지막 스텝에서는 첫 클릭이 GlobalTutorialManager를 파괴하고 두 번째 클릭이 그 파괴된 오브젝트에 Destroy를 걸어 MissingReferenceException이 났다. 콜백을 꺼내고 비운 뒤 부르도록 고쳤다. 모든 스텝에 있던 문제이고, 한 스텝은 한 번만 진행하는 것이 원래 의미다. 마지막 스텝은 자기 자신을 파괴하는 유일한 스텝이라 여기서만 증상이 드러났을 뿐이다. 같은 이유가 다른 경로로도 오지 않도록 완료 처리를 두 곳에서 멱등하게 만들었다. GlobalTutorialManager는 이미 끝났으면 아무 일도 하지 않고, HospitalityBattleState는 로비 씬이 다시 로드돼도 마무리 안내를 한 번만 띄운다. 원소표 안내는 유닛 미리보기 모달과 같은 자리를 쓴다. 앞 단계에서 열어 두었으면 버튼도 안내도 그 뒤에 가려지므로, 짚어 주기 전에 씬의 미리보기를 모두 닫는다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
#527) dataList had no initializer and was only assigned inside the UserMagicService.GetCombinedMagicData callback in Awake. The callback's null branch logged and returned, leaving dataList permanently null on a failed request. GetAvailableByHand then iterated dataList with no guard, throwing NullReferenceException on the first card if a frame with cards.added arrived before /api/users/mine/magics resolved, or if that request failed. The delta path (DeltaFrameHandler) has no try/catch around card handling, so the exception escaped and stalled the rest of that frame's processing (objects, projectiles, timer) for the match. Match CombinedMagicResolver.cs's existing convention for this same class of bug: initialize dataList to an empty list, and coalesce the callback's list to an empty list instead of leaving it null. Also add a defensive null-coalesce in the GetAvailableByHand foreach as a second line of defense, per the issue's suggested fix. Closes #415
* fix: gate unit-click magic input and block confirm before recipes load Selectable.OnPointerClick called CardInputSender.SendInput directly, which only checks isWaitingInputResponse. The isFieldSelectMode gate lives in TrySendInput, so clicking any spawned unit sent a useMagic frame without a confirmed combination. Use TrySendInput and refresh the expected magic UI only when the frame actually went out. Confirm() could not tell "combined magic list not loaded yet" from "recipe genuinely invalid", because CombinedMagicResolver.CanResolve returns false for both. A valid recipe was spent as a cast at world origin and the cards were consumed. CombinedMagicResolver now exposes an explicit Loading/Loaded/Failed state, and Confirm() blocks with a system message while the data is not ready, so no cards are consumed. Closes #414 Closes #423 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix: cast failed combinations at field center 조합이 틀렸을 때 필드 선택 없이 시전되고 카드가 소모되는 것은 의도된 동작이다. 문제는 그 좌표였다. Vector2.zero 는 판 중앙이 아니라 모서리다. 서버 GameConfig 의 WIDTH 18 / HEIGHT 10 기준으로 필드는 (0,0,0)~(18,0,10) 이고 WallPrefabInitializer 가 그 네 변에 EdgeCollider 를 깐다. SendInput 은 좌표를 변환 없이 서버로 보내므로 (0,0) 은 LEFT_PLAYER_POSITION(1,0,5) 옆 구석이다. 같은 실패가 왼쪽 플레이어에게는 자기 진영에, 오른쪽 플레이어에게는 적진에 떨어진다. 중앙 (9,0,5) 는 양쪽에서 등거리다. 로드 게이트는 Loading 일 때만으로 좁혔다. 로드 실패는 특별 취급하지 않고 기존 경로로 흘려보낸다. MagicRecipeLoadState 3상태와 RequestReloadIfFailed 를 bool 하나로 줄이고, SystemMessageUI 안내와 LocalizedString 폴백, 3초 스로틀을 걷어냈다. 로드 창은 1초 미만이고 카드가 선택된 채 남아 안내 UI 가 값을 못 한다. 게다가 그 ShowMessage 오버로드는 이슈 #422 가 지목한 결함 있는 메서드라 호출 지점을 늘리지 않는 편이 낫다. --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
NativeStompTransport.ReceiveLoop는 서버가 Close 프레임을 보내거나 소켓 상태가 Open을 벗어나면 아무 이벤트 없이 IsConnected만 false로 바꿨다. 소비 측에서 NotifyConnectionLost를 부르는 곳은 HandleError뿐이라 서버가 정상 종료하면 재연결이 단 한 번도 일어나지 않았다. 정상 종료 두 경로에서 Disconnected를 올리고, StompConnector.HandleDisconnected가 사다리를 걸되 OnDestroy에서 세우는 플래그로 의도된 종료를 걸러낸다. ConnectStompSocket은 앞선 client를 닫지 않고 새 소켓으로 갈아치워, 핸드셰이크가 백오프 틱보다 느리면 참조 없는 소켓이 열린 채 남았다. 새 소켓을 열기 전에 옛 client를 닫고, 세대 번호로 옛 소켓의 뒤늦은 콜백을 건다. 옛 소켓을 닫게 되면서 겹친 연결 요청이 진행 중인 핸드셰이크를 죽이게 되므로 StompConnectGate로 요청이 겹치지 않게 막는다. 응답 없는 핸드셰이크가 재연결을 영구히 막지 않도록 최초 연결의 시도 예산과 같은 시간이 지나면 풀어준다. Closes #417 Closes #416 Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: Monolong <83206119+Monolong@users.noreply.github.com>
Version bumps in feature pull requests kept conflicting on the same version line. The monorepo deploy skill now makes one bump commit on main per promotion, then tags and releases it on the deploy merge commit. Closes #530
* chore: enforce LF line endings * chore: preserve Windows batch line endings
Emscripten은 jslib를 빌드 시점에 평가한 뒤 LibraryManager.library에 등록된 심볼만 framework.js로 내보낸다. mergeInto 바깥의 최상위 var는 컴파일러 스코프에만 남고 런타임 번들에는 들어가지 않는다. `var clientGeneration = 0`이 그 최상위 var라 런타임에 존재하지 않았고, ConnectStompSocket의 첫 문장이 ++clientGeneration이라 WebGL에서 연결 시도마다 ReferenceError로 죽었다. 같은 파일의 `var client`는 함수 안에서 선언 없이 대입해 암묵적 전역이 생긴 덕에 우연히 살아 있었을 뿐, 읽기가 먼저인 세대 번호에는 그 우연이 통하지 않는다. 두 상태를 $stompState 라이브러리 심볼 하나로 묶고 쓰는 함수마다 __deps로 끌어온다. 이제 런타임 번들에 var stompState 선언이 실제로 실려 나가고, 전역 이름도 오염되지 않는다. Closes #536
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promotes the current main branch to deploy.