- ChannelPosts: 문정원/법률검토 채널 선택 칩 + 3초 폴링으로 최근 게시글을 보여주고,
시스템 메시지·첨부파일 다운로드 칩·자동 스크롤을 처리한다
- ChannelFiles: 같은 채널 선택으로 자료실 파일 전체를 표로 보여주고 새로고침을 지원한다
- client.ts에 getPosts/getFiles/fileDownloadUrl 추가, OrgOverview는 게시물/자료 탭에서
자리표시 대신 위 컴포넌트를 렌더링(org.id로 key를 잡아 기관 전환 시 폴링을 재시작)
- OrgDetail의 초기화 effect를 org 객체 identity 대신 org.id에 키잉해, 채널 생성
성공 후 App.reload()가 만드는 새 객체가 방금 받은 provision 결과/에러/입력 중이던
담당자 정보를 지워버리지 않게 함(다른 기관으로 전환할 때는 그대로 초기화).
- 양쪽 채널이 모두 실패했을 때 "문정원 채널은 살아있다"는 잘못된 안내를 보여주던
문제를 3분기(둘 다 실패/법률검토만 실패/문정원만 실패)로 재구성해 해결.
- 정보 저장/채널 생성/시드 업로드에 busy 상태를 추가해 처리 중 중복 클릭으로 두
요청이 동시에 나가는 것을 방지. ConfirmDialog도 busy 중엔 두 버튼을 비활성화.
- api/client에 상태코드를 담는 ApiError를 도입해 401만 로그아웃으로 취급하고,
그 외 오류는 재시도 버튼이 있는 오류 화면으로 안내(App.tsx).
- 필수 담당자 정보(부서명/담당자명/연락처/이메일)가 비어 있으면 정보 저장 버튼을
비활성화(직급/직함은 선택 유지).
- 로그인/기관검색 입력에 aria-label과 autoComplete 추가, StatusBadge READY 케이스
테스트 추가.
Co-Authored-By: Claude Opus 4.8 (1M context)