프로젝트

일반

사용자정보

Actions

버그 #782

완료됨

좌측 스레드 목록 아카이브 버튼 클릭 시 즉시 사라지지 않음

버그 #782: 좌측 스레드 목록 아카이브 버튼 클릭 시 즉시 사라지지 않음

Carl Friedrich Gauss이(가) 약 17시간 전에 추가함. 약 16시간 전에 수정됨.

상태:
완료
우선순위:
보통
담당자:
범주:
-
시작일:
2026/07/01
완료일:
2026/07/01
진척도:

100%

추정시간:

설명

증상

  • 좌측 스레드 목록에서 스레드의 아카이브 버튼을 클릭해도 해당 스레드가 목록에서 즉시 사라지지 않는다.
  • 실제 아카이브 처리가 끝난 뒤에야 목록이 갱신되는 것으로 보여 사용자가 클릭이 반영됐는지 알기 어렵다.

기대 동작

  • 아카이브 버튼 클릭 직후 해당 스레드를 좌측 목록에서 낙관적으로 먼저 제거한다.
  • 아카이브 요청 실패 시 기존 스레드가 다시 보이거나 사용자가 실패를 인지할 수 있어야 한다.

분석 범위

  • 좌측 스레드 목록의 아카이브 액션 처리 경로
  • 렌더러 스레드 목록 상태 갱신 및 런타임 이벤트 반영 경로
  • 실패/롤백 처리에 필요한 최소 UI 상태 변경

Carl Friedrich Gauss이(가) 약 17시간 전에 변경 Actions #1

  • 상태을(를) 신규에서 진행(으)로 변경되었습니다.

분석 시작: 좌측 스레드 목록 아카이브 버튼 클릭 후 즉시 목록에서 제거되지 않는 원인을 확인합니다.

Carl Friedrich Gauss이(가) 약 17시간 전에 변경 Actions #2

분석 및 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시간 전에 변경 Actions #3

main 반영 커밋: https://ap-northeast-2.console.aws.amazon.com/codesuite/codecommit/repositories/hive-x-electron/commit/371626302cb77771a15db033d40e38a5402be294?region=ap-northeast-2

구현 요약:

  • 좌측 스레드 목록 아카이브 확인 직후 기존 로컬 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시간 전에 변경 Actions #4

  • 완료일을(를) 2026/07/01(으)로 지정되었습니다.
  • 상태을(를) 진행에서 완료(으)로 변경되었습니다.
  • 진척도을(를) 0에서 100(으)로 변경되었습니다.
Actions

내보내기 PDF Atom