Skip to content

[P2][FE][Dashboard] 조직 전환/초대 수락 후 Sidebar 상태 동기화 오류 #217

Description

@yoonki1207

Bug Report

Summary

PR #216의 Codex 리뷰에서 Sidebar organization switcher와 dashboard 재조회 흐름에 P2 결함 3건이 확인되었습니다. 조직 전환, 조직 목록 조회 실패, 초대 수락 직후 상태 갱신이 각각 stale state 또는 잘못된 navigation 표시로 이어질 수 있습니다.

Current Behavior

  1. apps/client/app/dashboard/page.tsx의 dashboard data load는 활성 조직 변경 전 시작된 이전 요청 결과를 폐기하지 않습니다. 조직 A 조회가 늦게 끝나면 조직 B로 전환한 뒤에도 setOrganization, setWorkflowRows, setTeams가 A 데이터로 화면을 덮어쓸 수 있습니다.
  2. apps/client/app/features/dashboard/components/Sidebar.tsx의 현재 조직 조회와 /organizations 목록 조회가 Promise.all로 묶여 있습니다. 현재 조직 조회는 성공했지만 목록 조회만 실패해도 catch에서 조직명, manager 여부, 목록이 함께 비워져 현재 조직 badge와 manager-only 관리 navigation이 사라질 수 있습니다.
  3. 같은 Sidebar의 알림 overlay에서 조직 초대를 수락하면 backend는 membership을 active로 변경하고 notifications.changed만 발행합니다. Sidebar의 organization 목록은 mount와 active organization 변경 이벤트에서만 갱신되므로, 초대 수락 직후 새 조직이 switcher dropdown에 나타나지 않아 새로고침이 필요할 수 있습니다.

Expected Behavior

활성 조직 전환과 조직 목록 갱신은 서로 다른 비동기 결과가 늦게 도착해도 현재 선택된 organization 기준 UI를 유지해야 합니다. 보조 목록 조회 실패가 현재 조직 표시와 manager navigation을 깨뜨리지 않아야 하며, 조직 초대 수락 직후 switcher 목록에 새 조직이 반영되어야 합니다.

Acceptance Criteria

  • Dashboard의 조직별 data load에 request sequence, abort controller, active organization id 검증 등 이전 요청 결과를 무시하는 guard를 추가한다.
  • Sidebar에서 /organizations/current 결과와 /organizations 목록 조회 실패 처리를 분리한다.
  • 목록 조회만 실패한 경우 현재 조직 badge와 manager-only navigation은 유지하고, switcher 목록만 비활성/오류 상태로 처리한다.
  • 조직 초대 수락 성공 후 Sidebar organization 목록을 재조회하거나 동일 효과의 state 갱신을 수행한다.
  • 조직 A/B 전환 race, organization 목록 조회 실패, 초대 수락 후 목록 갱신 중 가능한 범위의 regression test 또는 명시적 QA 절차를 추가한다.

References

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Fields

Priority

None yet

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions