BurningTimesAi/공유/대화로그/조직운영/2026-09-30_Claude앱_트레이.md

46 lines
5.0 KiB
Markdown

# 조직운영 대화로그 — 2026-09-30 · BT46-Org Claude 윈도우 앱이 트레이에서 사라짐
## PD 지시(원문 · 09:40)
"업데이트 관련 오류 때문인지 클로드 윈도우앱이 일정시간 동작하지 않을 때 자꾸 시스템 트레이에서 사라지고 있어. 원인 체크해보고 정상적으로 윈도우 트레이에 남아있도록 수정해줘."
## 원인(실측 — 앱 로그 `%LOCALAPPDATA%\Claude\logs\main*.log` + 윈도우 이벤트 로그)
1. 앱(MSIX 설치 · `Claude_pzs8sxrjxfjjc`)은 업데이트를 받아 둔 상태에서 세션이 없고 창이 앞에 있지 않은 채 10분쯤 지나면 '몰래 업데이트'를 한다 — 세션 · 터미널을 멈추고 창을 숨긴 뒤, 윈도우에 "앱을 강제로 닫고 새 버전을 등록"해 달라고 한다(로그 `[stealth-update] Triggering stealth update after idle timeout` → `beforeQuitForUpdate handler fired, going down for update`).
2. 2026-09-23 02:56:35 시작분부터 앱이 자기 프로세스를 작업 묶음(Job)에 넣는다 — 로그 `[windows-app-job] joined`(그 전에는 `skipped: flag off`). 설정 파일의 `preferences.windowsAppJobLatched = true`(서버의 기능 스위치가 켜지면서 고정된 값 · 보안 분류 항목이라 손대지 않았다).
3. 그 뒤로 윈도우가 앱을 닫지 못한다 — 이벤트 로그 `Microsoft-Windows-AppXDeploymentServer/Operational`: 638 "영향을 받는 앱이 계속 실행 중이므로 패키지가 업데이트되지 않았습니다" → 419 "오류 0x800700E9(또는 0x8007001F): 다음 앱을 닫아야 하므로 설치할 수 없습니다. 앱: Claude_pzs8sxrjxfjjc!Claude" → 401 · 404(0x80073CF9).
성공하던 때는 646 "앱이 설치를 위해 종료되었습니다"가 남고 앱 로그에 `Windows session ending (close-app)`이 찍혔다. 09-23 02:56:32 가 마지막이다.
4. 실패해도 앱은 되돌리지 않는다 — 창 · 트레이 없이 숨어서 남고(메모리 기록만 계속), 하나만 뜨게 하는 잠금을 쥐고 있어 아이콘을 눌러도 새로 켠 것이 `Not main instance` 로 바로 끝난다(09-30 00:30:49 · 00:31:13 · 00:31:21 세 번 실패 뒤 00:31:36 에 새 버전으로 시작).
| 업데이트로 내려간 시각 | 다시 올라온 시각 | 걸린 시간 |
|---|---|---|
| 08-21 ~ 09-23 02:56 (18회) | 자동 | 2~40초 (전부 성공) |
| 09-23 10:44 | 10:55 | 10.6분 |
| 09-25 05:16 | 10:15 | 5.0시간 |
| 09-25 13:21 | 13:57 | 36분 |
| 09-25 14:36 | 19:36 | 5.0시간 |
| 09-29 03:48 | 09-30 00:30 | 20.7시간 |
| 09-30 05:42 | 09:37 | 3.9시간 |
- 윈도우 쪽 변화는 아니다 — 마지막 부팅 09-17, 09-23 02:56(성공)과 10:44(첫 실패) 사이에 설치된 윈도우 업데이트 없음(Defender 정의만).
- 유니티 에디터 등 다른 프로그램은 Claude 패키지에 속해 있지 않다(프로세스의 패키지 신원 확인).
## 결정(PM)
- 결함은 앱 안에 있다(작업 묶음 기능 + 실패 시 복구 없음). 서명된 앱 패키지와 보안 분류 설정은 고치지 않는다.
- 멈춘 상태를 감지해 앱을 끝내고 정식 경로로 다시 켜는 감시 스크립트를 둔다. 다시 켜지면 윈도우가 미뤄 둔 새 버전 등록을 마친다(09-30 09:37 에 같은 흐름 확인). 내려간 지 5분 안이면 앱이 내려가기 전 상태(숨은 채)로 돌아온다(앱의 표식 유효 시간 300초).
- 작업 스케줄러 등록은 시스템 설정 변경이라 PM 이 하지 않고 PD 가 명령 1개로 실행한다.
## 결과
- `%LOCALAPPDATA%\ClaudeTrayWatchdog\watchdog.ps1`(판단 · 조치) · `run-hidden.vbs`(창 없이 실행).
- 판단 기준: 앱 로그에서 '업데이트로 내려감'이 마지막 '주 인스턴스 시작'보다 뒤 + 90초 경과 + 같은 건에 조치한 적 없음. 사용자가 직접 끝낸 경우는 건드리지 않는다.
- 시험(조치 없이 판단만): ① 지금 상태 → 정상 · 조치 없음 ② 새벽 상황 재현(05:45 시점) → 멈춤으로 판단 ③ 내려간 지 30초 → 기다림 ④ 성공했던 날(09-23 02:56) → 조치 없음. 창 없이 실행하는 파일도 오류 없이 돈다.
- 실제로 앱을 끄고 켜는 동작은 시험하지 않았다 — 이 세션이 그 앱 안에서 돈다.
## PD 가 할 일
- 등록: `schtasks /Create /TN ClaudeTrayWatchdog /SC MINUTE /MO 2 /TR "wscript.exe C:\Users\sw\AppData\Local\ClaudeTrayWatchdog\run-hidden.vbs" /F`
- 해제: `schtasks /Delete /TN ClaudeTrayWatchdog /F`
- 기록: `%LOCALAPPDATA%\ClaudeTrayWatchdog\watchdog.log`
## 남은 이슈
- 근본 수정은 Anthropic 의 앱 업데이트가 필요하다(앱의 의견 보내기로 위 1~4 를 전달하면 된다).
- 다른 방법: 관리 설정 `disableAutoUpdates`(레지스트리 `SOFTWARE\Policies\Claude`)로 자동 업데이트를 끄면 앱이 내려가지 않는다. 대신 업데이트를 직접 해야 한다 — PD 결정.
- 업데이트 알림이 보이면 쉬기 전에 앱에서 직접 '다시 시작'을 눌러 두면 몰래 업데이트가 돌 일이 없다.