# 2026-04-03 작업일지 ## 오늘 작업 - Plan 자동화 재처리 흐름과 main 반영 안정화 - release/main 브랜치 전략을 정리하고 서버 재시작 오류를 수정 - Plan 메모 검색 기능 추가 - Plan 상세에서 소스 작업 이력/미리보기 확인 흐름 보강 - 모바일 설정 아이콘 터치 불가 이슈를 제스처 오버레이 충돌 제거로 해결 - 작업 상세의 불필요한 `내용 조회` 버튼 제거 - Noti 설정의 서버 토큰 등록/삭제 연동 보강 - 작업 ID 기본값(`작업ID`) 처리 및 중복 제약 완화 - 완료/반영 단계에서도 소스 작업 이력이 누락되지 않도록 저장 로직 보강 - Web Push 등록/호환 처리 보강(미지원 API 404 노출 완화) - 4월 3일 작업 증적용 스크린샷(앱 설정, 알림 설정) 보강 - Plan 상세 증적 탭 하단에 스크린샷/작업일지/preview/source 전체화면 미리보기 추가 ## 이슈 및 메모 - release -> main 자동 머지 이후 브랜치 상태 꼬임이 반복되어 브랜치 전략 재정비 필요 - 모바일 터치 이슈는 기능 오류보다 레이어 겹침(오버레이) 영향이 컸음 - 알림 기능은 로컬 UI 상태와 서버 토큰 상태가 분리되면 재현 어려운 장애로 이어짐 - 작업/이슈 이력 누락은 재처리 판단 정확도에 직접 영향 ## 결정 사항 - Plan 자동화 브랜치 기준은 `main` 중심으로 정리 - 실패 후 재실행은 명시적 재처리 요청 기반으로 진행 - 알림 설정은 UI 토글만이 아니라 서버 토큰 등록/삭제와 동기화 - 메모/소스 작업 이력은 완료 단계 이후까지 일관 저장 ## 상세 작업 내역 - 자동화 워커의 재처리, 반영, 이력 저장 경로를 손봐 동일 이슈 반복 시 추적 가능성을 높임 - release/main 전개 과정에서 발생하던 복구성 작업을 줄이기 위해 브랜치 운영 규칙을 단순화 - Plan 보드 UX는 모바일 접근성(터치/조회/검색) 중심으로 우선 개선 - 알림 관련 API 미지원 상황에서도 사용자에게 과도한 오류를 직접 노출하지 않도록 완충 처리 추가 ## 스크린샷 ![settings-app](../assets/worklogs/2026-04-03/settings-app.png) ![settings-notification](../assets/worklogs/2026-04-03/settings-notification.png) ## 소스 - `etc/servers/work-server/src/services/git-service.ts`: 새 이슈 브랜치를 `release`가 아니라 `main` 기준으로 만들도록 바꿔 브랜치 꼬임을 줄였습니다. - `etc/servers/work-server/src/services/plan-service.ts`: 기본 작업 ID 처리, 중복 제약 해제, 완료 시 소스 이력 저장, `main` 반영 요청 단건화 등 자동화 추적 로직을 보강했습니다. - `src/features/planBoard/PlanBoardPage.tsx`: 소스 작업 이력과 증적 미리보기 흐름을 상세 화면에 반영했습니다. - `src/app/main/MainHeader.tsx`, `src/app/main/notificationApi.ts`: 알림 설정을 서버 토큰 상태와 동기화하고 미지원 환경의 404를 사용자 오류로 과하게 노출하지 않도록 조정했습니다. - `etc/servers/work-server/src/workers/plan-worker.ts`: 재처리와 반영 흐름을 `main` 중심으로 다시 맞췄습니다. ```diff diff --git a/etc/servers/work-server/src/services/git-service.ts b/etc/servers/work-server/src/services/git-service.ts - const baseBranch = releaseTarget || config.releaseBranch; + const baseBranch = config.mainBranch; diff --git a/etc/servers/work-server/src/services/plan-service.ts b/etc/servers/work-server/src/services/plan-service.ts - workId: z.string().trim().min(1), + workId: z.string().trim().optional().default('작업ID'), ... + await createPlanLifecycleSourceWorkHistory( + id, + '작업완료 처리로 release 반영 대기 상태로 전환했습니다.', + currentRow.assigned_branch ?? currentRow.release_target ?? 'release', + ); ``` ## 변경 파일 (전체, 중복 제거, KST 기준) - M etc/servers/work-server/src/services/plan-service.ts - M scripts/run-plan-codex-once.mjs - M etc/servers/work-server/.env.example - M etc/servers/work-server/README.md - M etc/servers/work-server/src/config/env.ts - M etc/servers/work-server/src/services/git-service.ts - M etc/servers/work-server/src/workers/plan-worker.ts - M src/app/main/notificationApi.ts - M src/app/main/MainHeader.tsx - M etc/servers/work-server/package-lock.json - M etc/servers/work-server/package.json - M etc/servers/work-server/src/routes/notification.ts - M etc/servers/work-server/src/services/notification-service.ts - A etc/servers/work-server/src/types/web-push.d.ts - M src/main.tsx - A src/sw.ts - M vite.config.ts - M src/features/planBoard/PlanBoardPage.tsx - M etc/servers/work-server/src/routes/plan.ts - M src/features/planBoard/api.ts - M src/features/planBoard/types.ts - A etc/servers/work-server/src/services/plan-notification-service.ts - A src/app/main/notificationApi.ts - M src/layer/gesture/context/GestureContext.tsx - M src/styles.css - M etc/servers/work-server/src/app.ts - A etc/servers/work-server/src/routes/notification.ts - M etc/servers/work-server/src/server.ts - A etc/servers/work-server/src/services/notification-service.ts - M README.md - A docs/assets/worklogs/2026-04-02/plan-board-mobile-memo-detail.png - M docs/worklogs/2026-04-02.md - M package.json - M scripts/capture-component-screenshot.mjs - M scripts/capture-fullscreen-toggle-screenshot.mjs - A scripts/capture-plan-board-mobile-screenshot.mjs - M scripts/capture-search-command-screenshot.mjs - A scripts/worklog-capture-utils.mjs - M src/app/main/MainSidebar.tsx - M docs/README.md - M index.html - M src/app/main/MainView.tsx - M src/app/main/types.ts - M docker-compose.yml - M src/features/planBoard/index.ts - A docs/test001.md - M etc/servers/work-server/docker-compose.yml ## 실행 커맨드 ```bash npm run plan:codex:once npm run build npm run capture:settings -- --date 2026-04-03 ``` ## 변경 파일 - `docs/worklogs/2026-04-03.md` - `src/features/planBoard/PlanBoardPage.tsx` - `etc/servers/work-server/src/workers/plan-worker.ts` - `etc/servers/work-server/src/services/plan-service.ts` - `etc/servers/work-server/src/services/git-service.ts` - `src/app/main/MainHeader.tsx` - `src/app/main/notificationApi.ts` - `src/layer/gesture/context/GestureContext.tsx` - `scripts/run-plan-codex-once.mjs` - `src/styles.css`