Skip to content

v0.10.1 — member-group nested array unwrap (Issue #76 root cause fix)

Choose a tag to compare

@jon890 jon890 released this 22 May 09:26
· 634 commits to main since this release

Highlights

  • 🐛 member-group 응답 nested array unwrap — --cc-group / --mention-group 전면 매칭 실패 사고 해결 (Issue #76)
  • 🆔 --cc-group <code|id> / --mention-group <code|id> — numeric 15+자리 입력 시 id 직접 매칭 fallback
  • 📝 ADR-028 전면 개정 — root cause 재진단
  • 🧹 release / review-fix skill 함정 방지 보강

버그 수정

--cc-group / --mention-group 매칭 전면 실패 (Issue #76, ADR-028)

dooray project groups <project> 표가 모든 컬럼 빈값으로 보이고 --cc-group "<code>" / --mention-group "<code>" 입력이 모두 매칭 실패하던 사고.

Root cause: Dooray API GET /project/v1/projects/{id}/member-groups 응답이 nested array (result: [[g1, g2]]) 로 반환되는데 fetchAllMemberGroups 가 평면 배열 가정으로 처리해 모든 그룹이 빈 객체로 cache.

수정:

  • fetchAllMemberGroups 에 res.result.flat() 정규화 (root cause fix)
  • resolveMemberGroup 에 numeric 15+자리 입력 시 id 직접 매칭 fallback (response shape 가 다시 변할 robustness)
  • stderr 경고 ADR 번호 오기 (ADR-026 → ADR-028) 정정 + AI 친화 helpHint
  • 5 호출자 (post create/edit cc-group + mention-group + comment add/edit mention-group + post-users) 시그니처 불변 → 자동 혜택

구 ADR-028 가정 무효화 — "일부 그룹만 code 누락" 진단은 증상만 본 것. 본 release 에서 ADR-028 본문을 "response shape mismatch + nested array unwrap" 으로 전면 개정.

새 사용 예

# code 부분일치 (정상 동작 회복)
dooray post create <project> --title "..." --mention-group "개발"

# 19자리 id 직접 입력 (response shape robustness)
dooray post create <project> --title "..." --cc-group "<19자리 group id>"

# 후보 탐색
dooray project groups <project>

리팩토링

  • as unknown as MemberGroup[][] | MemberGroup[] 이중 단언 제거 (PR #77 review)
  • MemberGroupListResponse.result 를 MemberGroup[] | MemberGroup[][] union 으로 선언 → .flat() 시그니처가 union 양쪽 case 자동 흡수

내부 / skill 정비

  • /release skill: 본문 전달은 --notes-file <path> 필수 — quoted heredoc 안 backtick escape 함정 방지 (v0.10.0 release notes 사고 회고)
  • /review-fix skill: main 직접 commit 사전 점검 가드 + Conflict 카테고리 보강
  • common-pitfalls.md: CLI23 (이중 단언 → union return type) 학습 누적, CLI 번호 중복 (CLI16 두 번) 정정, 200+ char 줄 가독성 backfill (81 → 48)
  • CLAUDE.md / docs-check 가독성 정책 대상에 .claude/skills/**/*.md 추가 (거울 구조 회복)

Closes

  • #76 (--cc-group 사용 시 매칭 실패) — PR #77 머지 시 자동 close 됨

Full Changelog: v0.10.0...v0.10.1