Skip to content

[deploy] dashboard-v1.4.1#55

Merged
hyejj19 merged 9 commits into
release/dashboardfrom
main
May 11, 2026
Merged

[deploy] dashboard-v1.4.1#55
hyejj19 merged 9 commits into
release/dashboardfrom
main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Release Dashboard v1.4.1

  • Version: 1.4.1
  • Created at: 2026.05.11
  • Auto-generated release PR

This PR was automatically created by version-check workflow.

hyejj19 and others added 9 commits May 11, 2026 23:07
위스키 신규 등록 페이지에서 `categories.filter is not a function` 으로
페이지 전체가 죽던 이슈를 해결한다. 백엔드는 카테고리 레퍼런스를
`Record<AlcoholCategory, CategoryReference[]>` 형태로 내려주는데
프론트는 배열 타입으로 받아 `.filter()`를 호출해 충돌했다.

카테고리 응답 형태 정렬:
- `CategoryReferenceMap` 타입 신설, `EMPTY_CATEGORY_REFERENCE_MAP` 폴백 추가
- 하드코딩 상수 `GROUPED_CATEGORY_REFERENCES` 제거 (#221 TODO 해소)
- `useCategoryGroupMap` 을 API 단일 소스 기반으로 리팩토링
- `useWhiskyDetailForm` 반환 키 `categories` → `groupedCategories`
- `WhiskyBasicInfoCard` props 시그니처 변경, OTHER 옵션은
  `groupedCategories.OTHER` 를 직접 사용해 차집합 계산 제거
- MSW mock 응답을 실서버와 동일한 Record 형태로 통일

테이스팅 태그 Picker(무한 스크롤) 도입:
- `useTastingTagListInfinite` 훅과 `flattenTastingTagPages` 유틸 추가
- `useDebouncedValue` 훅 신설
- `TastingTagPicker` 컴포넌트 신설 (검색 + 무한 스크롤)
- `WhiskyTastingTagCard` 가 Picker를 내부적으로 사용하도록 단순화
  (availableTags / tagListItems prop 제거)
- MSW `tastingTagHandlers` 의 페이지네이션 슬라이싱 정정

테스트:
- `useAdminAlcohols.test.ts` 의 카테고리 검증을 Record 키 기반으로 변경,
  깨져있던 describe 블록 구조 수정, 로딩 전 빈 맵 동작 케이스 추가
- `useTastingTags.test.ts` 에 무한 스크롤 관련 케이스 추가
- 156 tests pass

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix: 위스키 카테고리 응답 형태 정렬 + 테이스팅 태그 무한 스크롤 도입
pnpm v10부터 기본적으로 의존성의 postinstall 스크립트를 차단하면서
CI 도커 빌드(`pnpm install --frozen-lockfile`)가 다음 에러로 실패:

  [ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: esbuild, msw

esbuild는 플랫폼 바이너리 설치, msw는 service worker 스크립트 복사 용도로
postinstall이 필요하므로 `pnpm.onlyBuiltDependencies` 에 명시한다.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore: pnpm v10 빌드 스크립트 허용 목록 추가 (CI dev build 복구)
이전 PR(#53)에서 추가한 package.json의 `pnpm.onlyBuiltDependencies`
설정이 pnpm v11에서 더 이상 인식되지 않아 dev 도커 빌드가 같은 에러로
계속 실패함:

  [ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: esbuild, msw

원인: Dockerfile의 `pnpm@latest` 가 pnpm v10 → v11.1.0 으로 자동 승격되면서
빌드 스크립트 허용 목록이 `pnpm-workspace.yaml` 의 `allowBuilds` 필드로
이전됨 (v11 동작 변경).

조치:
- `pnpm-workspace.yaml` 신설하여 `allowBuilds.esbuild/msw` 명시
- `package.json` 에 `packageManager: pnpm@11.1.0` 추가
  corepack 이 이 필드를 자동 인식해 정확한 버전을 사용
- Dockerfile 의 `corepack prepare pnpm@latest --activate` 제거
  (`packageManager` 필드 기반 자동 해석에 위임 → 메이저 자동 승격 차단)
- Dockerfile deps 스테이지에 `pnpm-workspace.yaml` 도 COPY 추가
- `package.json` 의 `pnpm.onlyBuiltDependencies` 는 pnpm v10 사용자
  호환성을 위해 유지

검증: `CI=true pnpm@11.1.0 install --frozen-lockfile` 로컬 통과,
156 unit tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI workflow 의 \`pnpm/action-setup@v4\` 가 \`version: 9\` 로 하드코딩되어
있어 \`package.json\` 의 \`packageManager: pnpm@11.1.0\` 와 충돌:

  Multiple versions of pnpm specified:
    - version 9 in the GitHub Action config with the key "version"
    - version pnpm@11.1.0 in the package.json with the key "packageManager"

\`version\` 입력을 제거하면 action 이 \`packageManager\` 필드를 자동으로
읽어 단일 진실 공급원(SSOT)이 유지된다.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pnpm v11.1.0 의 \`engines\` 가 \`node>=22.13\` 을 요구하며,
이는 v11이 Node 22의 워커/AsyncLocalStorage 최적화를 활용하기 위한 기준선이다.
Dockerfile (\`node:22-alpine\`) 과 CI (\`node-version: 22\`) 가 이미 같은
라인이므로 단지 명시화한다.

\`engine-strict=true\` 까지 가지는 않음 — 기본 경고로 두어 살짝
낮은 Node 환경의 신규 멤버가 즉시 막히지 않도록 한다.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix(ci): pnpm v11 빌드 스크립트 허용 및 버전 핀
@hyejj19 hyejj19 merged commit 3324ce5 into release/dashboard May 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant