Actions
버그 #782
완료됨좌측 스레드 목록 아카이브 버튼 클릭 시 즉시 사라지지 않음
버그 #782:
좌측 스레드 목록 아카이브 버튼 클릭 시 즉시 사라지지 않음
시작일:
2026/07/01
완료일:
2026/07/01
진척도:
100%
추정시간:
설명
증상
- 좌측 스레드 목록에서 스레드의 아카이브 버튼을 클릭해도 해당 스레드가 목록에서 즉시 사라지지 않는다.
- 실제 아카이브 처리가 끝난 뒤에야 목록이 갱신되는 것으로 보여 사용자가 클릭이 반영됐는지 알기 어렵다.
기대 동작
- 아카이브 버튼 클릭 직후 해당 스레드를 좌측 목록에서 낙관적으로 먼저 제거한다.
- 아카이브 요청 실패 시 기존 스레드가 다시 보이거나 사용자가 실패를 인지할 수 있어야 한다.
분석 범위
- 좌측 스레드 목록의 아카이브 액션 처리 경로
- 렌더러 스레드 목록 상태 갱신 및 런타임 이벤트 반영 경로
- 실패/롤백 처리에 필요한 최소 UI 상태 변경
Carl Friedrich Gauss이(가) 약 17시간 전에 변경
- 상태을(를) 신규에서 진행(으)로 변경되었습니다.
분석 시작: 좌측 스레드 목록 아카이브 버튼 클릭 후 즉시 목록에서 제거되지 않는 원인을 확인합니다.
Carl Friedrich Gauss이(가) 약 17시간 전에 변경
분석 및 1차 수정 진행
- 원인: 좌측 스레드 목록의 confirm archive 경로에서 runtimeStore applyEvent(thread/archived)와 archivedSidebarThreadIds 저장이 app-server archive 성공 응답 이후에만 실행되어, IPC/app-server 왕복 동안 행이 계속 보였음.
- 조치: 확인 클릭 직후 기존 applyLocalArchive 경로를 먼저 실행해 목록에서 낙관적으로 제거하고, app-server 실패 시 archivedSidebarThreadIds를 되돌린 뒤 강제 thread list refresh를 요청하도록 변경.
- 검증: PATH=/opt/homebrew/bin:$PATH /opt/homebrew/bin/npm run test -- src/renderer/App.behavior.test.tsx -t "archives a sidebar thread|optimistically removes|rolls back|asks before archiving" 통과, PATH=/opt/homebrew/bin:$PATH /opt/homebrew/bin/npm run typecheck:renderer 통과, git diff --check 통과.
- 참고: 전체 App.behavior.test.tsx 실행은 현재 워크트리의 별도 onOpenFileReference 관련 런타임 예외 영향으로 실패가 있어 이번 수정 범위와 분리 필요.
Carl Friedrich Gauss이(가) 약 16시간 전에 변경
구현 요약:
- 좌측 스레드 목록 아카이브 확인 직후 기존 로컬 archive 반영 경로를 먼저 실행해 행을 낙관적으로 제거했습니다.
- app-server archive 실패 시 archivedSidebarThreadIds를 되돌리고 thread list refresh를 요청해 사용자가 실패 상태를 인지할 수 있게 했습니다.
- 성공 경로에서는 중복 로컬 archive 반영을 제거했습니다.
- 낙관 제거와 실패 롤백 회귀 테스트를 App.behavior.test.tsx에 추가했습니다.
검증:
- npm run test -- src/renderer/App.behavior.test.tsx -t "archives a sidebar thread|optimistically removes|rolls back|asks before archiving" 통과
- npm run typecheck:renderer 통과
- 대상 파일 ESLint 통과
- git diff --check 통과
- /tmp/hiveappii-782.otHe9b clean worktree에서 npm ci 후 npm run ci:production 재실행 통과
참고:
- 첫 ci:production run에서 conversation-scroll 단일 테스트가 1회 실패했으나, 해당 테스트 단독 재실행 통과 후 전체 ci:production 재실행이 통과해 이번 변경과 분리했습니다.
Carl Friedrich Gauss이(가) 약 16시간 전에 변경
- 완료일을(를) 2026/07/01(으)로 지정되었습니다.
- 상태을(를) 진행에서 완료(으)로 변경되었습니다.
- 진척도을(를) 0에서 100(으)로 변경되었습니다.
Actions