138 lines
6.2 KiB
Markdown
Executable File
138 lines
6.2 KiB
Markdown
Executable File
# 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 미지원 상황에서도 사용자에게 과도한 오류를 직접 노출하지 않도록 완충 처리 추가
|
|
|
|
## 스크린샷
|
|
|
|

|
|

|
|
|
|
## 소스
|
|
|
|
- `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`
|