feat: GROWTH-144 Phase 1 프론트엔드 — 운영에만 있던 otro 커밋 2개를 git 에 반영 - #6
Merged
Conversation
… picker (mote, GROWTH-144 Phase 1 완결) Custom Fields(Phase 1)의 타입/필드 정의와 Phase 2의 값 저장 API는 이미 완성돼 있었으나, 정의한 IssueType을 실제 프로젝트에서 쓸 수 있도록 연결하는 ProjectIssueType CRUD가 백엔드/프론트 어디에도 없어 워크스페이스에서 만든 타입을 프로젝트에 붙일 방법이 없었다. - 백엔드: ProjectIssueTypeViewSet(list/create/destroy, PROJECT 레벨 권한) + ProjectIssueTypeSerializer 신규, URL 2개 추가 (workspaces/<slug>/projects/<project_id>/issue-types/[…]). db/models·app/serializers·app/views의 __init__.py export 누락도 같이 정리(모델 자체는 기존부터 있었으나 export가 안 돼 있었음). - 프론트: work-item-type-modal.tsx에 "Available in projects" 체크박스 섹션 추가(기존 useProject 재사용), 저장 시 기존↔선택 diff로 link/unlink 호출. store/service에 대응 메서드 3종 추가. - 마이그레이션 불필요: project_issue_types 테이블은 이미 존재, 모델 필드 변경 없음 — makemigrations --check로 편집본/순정본 양쪽 비교해 무관한 기존 드리프트(issuetimer 제약조건) 1건만 있고 신규 diff 없음을 확인. Constraint: 운영 중인 회사 전체 Plane 셀프호스트 — 이 커밋은 소스 반영만, 배포(docker build/canary-swap)는 별도 승인 후 진행 Confidence: high Scope-risk: narrow — 신규 리소스 추가만, 기존 엔드포인트/모델 필드 변경 없음 Not-tested: 실제 웹 UI E2E(otro가 work-item-types 설정에서 직접 확인 필요), 프론트 전체 빌드(dep 미설치 환경이라 isolated tsc로만 검증) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Code review of 5bdd952 found a real race: the project-link seed fetch (fan-out across every workspace project) runs async on modal open with no loading flag, so saving before it resolves would sync an empty selection and silently drop existing project links. Adds isLoadingProjectLinks state, set for the seed fetch's lifetime and checked on the submit button's disabled prop. Confidence: high Scope-risk: narrow — single component, no API/schema change Not-tested: real UI click-through (otro to verify in work-item-types settings) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Linked to Plane Work Item(s) References This comment was auto-generated by Plane |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
/srv/shared/app-src/plane에 푸시된 적 없는 otro 커밋 2개가 있었습니다. 그대로git am으로 올립니다 — 재작성이 아니라 원본 커밋 이관이라 작성자·날짜·메시지가 보존됩니다.왜 이제야 올라오나
어제까지 이 코드는 운영에서 돌고 있는데 git 에는 없는 상태였습니다. mote.50 이미지가 이 디렉토리(dirty)에서 빌드되면서 미커밋·미푸시 작업이 함께 구워졌기 때문입니다. 첫 커밋 메시지에 "이 커밋은 소스 반영만, 배포는 별도 승인 후 진행" 이라고 적혀 있는데, 빌드 경로 때문에 그 의도와 무관하게 배포됐습니다.
오늘 mote.51 을 깨끗한
origin/mote에서 빌드하면서 백엔드 부분이 운영에서 사라졌고, PR #5 로 이미지에서 회수했습니다. 그때는 출처를 몰라 "author unknown" 으로 적었는데, 이 디렉토리를 확인하면서 원본 커밋과 GROWTH-144 라는 맥락이 드러났습니다.이 PR 의 순변경
백엔드 7개 파일은 PR #5 로 이미 반영돼 있어 순변경 0 입니다(
git am --3way가 자동 해소). 실제로 새로 들어가는 건 프론트 4개 파일입니다.워크스페이스에서 만든 work item type 을 프로젝트에 연결하는 UI("Available in projects" 체크박스)와 그 store/service, 그리고 seed fetch race 가드입니다. PR #5 로 되살린 백엔드 API 의 실제 사용처가 이 코드입니다.
검증
git diff --stat origin/mote HEAD→apps/api0 files (백엔드 무변경 확인)otro <motemoteofficial@gmail.com>/ 2026-07-20Available in projects존재 확인 → 이 코드가 지금 운영에서 동작 중isLoadingProjectLinks)는 번들에서 확인 불가했습니다. 지역 식별자라 미니파이어가 이름을 지웁니다 — 없다는 뜻이 아니라 이 방법으로는 판정이 안 됩니다.배포는 별도
이 PR 은 소스 반영만 입니다. 프론트엔드 이미지는 아직 mote.50 이고, 재빌드하면 아래가 함께 걸립니다.
packages/editor/src/core/extensions/custom-video/가 통째로 untracked 이고 에디터 5개 파일이 미커밋입니다. 배포된 번들에videoComponent·video/quicktime이 있어 지금 운영에서 동작 중입니다. 이걸 커밋하기 전에 프론트를 재빌드하면 동영상 기능이 사라집니다.순서는 ① 이 PR → ② 동영상 기능 커밋 → ③ 그 다음에야 프론트 재빌드 입니다.
관련: PLANE-78 / PLANE-80, PR #4 · #5
🤖 Generated with Claude Code