Initial import
This commit is contained in:
129
docs/worklogs/2026-04-05.md
Executable file
129
docs/worklogs/2026-04-05.md
Executable file
@@ -0,0 +1,129 @@
|
||||
# 2026-04-05 작업일지
|
||||
|
||||
## 오늘 작업
|
||||
|
||||
- Plan 작업 등록 시 `메인까지 자동등록` 옵션 추가 및 자동 main 반영 흐름 연결
|
||||
- 대기성 알림을 줄이고 실제 자동화 시작/핵심 단계 중심 알림으로 재정렬
|
||||
- 기본 진입 화면을 Plans로 조정하고 알림 진입 시 plan 상세 연결 개선
|
||||
- Plan 성과 차트를 보드 하단에서 별도 사이드 메뉴(차트) 화면으로 분리
|
||||
- 작업 ID 기본값일 때 알림 제목을 `#채번번호` 기준으로 표기
|
||||
- Codex Live 채팅 기능 추가 후 별도 Chat 메뉴/사이드바로 분리
|
||||
- 채팅을 폴링 기반에서 `work-server /ws/chat` WebSocket 기반으로 전환
|
||||
- Vite 개발 환경에 `/ws/chat` 프록시 추가 및 재연결 안정화
|
||||
- 채팅 UI를 하단 입력 고정형으로 개편하고 진단/오프라인 폴백 개선
|
||||
- 진행 알림(1분/3분) 메시지에 현재 처리 단계/요약 반영
|
||||
- 재처리/재시작 알림 조건 정교화(실제 재실행 예약 시만 노출)
|
||||
- Web Push 알림 태그 충돌(덮어쓰기) 방지 처리
|
||||
- Noti 토큰 관리 UI 및 전송 조건(토큰 등록 시) 정리
|
||||
- Docs 기본 선택을 `worklogs`로 조정
|
||||
- Plan 목록에서 `정상처리 구분(상/중/하)` 즉시 변경 기능 추가
|
||||
|
||||
## 이슈 및 메모
|
||||
|
||||
- 채팅 연결 이슈는 프론트 코드보다 프록시/업그레이드 헤더/URL 계산의 영향이 큼
|
||||
- 진행 알림은 내용 품질이 낮으면 오히려 운영 피로도를 높임
|
||||
- Web Push는 `tag` 충돌 시 중요한 이벤트가 사라질 수 있어 이벤트 키 설계가 중요
|
||||
- 재처리 알림은 "실행 예약"과 "단순 응답" 구분이 필요
|
||||
|
||||
## 결정 사항
|
||||
|
||||
- 채팅은 WebSocket 기본, 실패 시 진단 가능 메시지와 폴백 제공
|
||||
- 진행 알림은 `1분 후`, 이후 `3분마다` 유지하되 현재 단계 중심 문구 사용
|
||||
- 알림 제목은 사용자 입력값보다 채번 ID 우선 전략 유지
|
||||
- 재시작 알림은 실제 재실행이 예약된 경우에만 발송
|
||||
- Docs 진입 기본 탭은 작업일지 우선
|
||||
|
||||
## 상세 작업 내역
|
||||
|
||||
- Plan/Chat 네비게이션을 재구성해 상단 메뉴-사이드바-콘텐츠 관계를 명확히 분리
|
||||
- 워커 알림 체계를 시작/경과/완료/재시작으로 세분화하고 노이즈 이벤트를 제거
|
||||
- 채팅은 UI 레이아웃, 연결 안정성, 진단 문구, 오프라인 대체 응답까지 함께 다듬어 실사용 대응 범위를 확장
|
||||
- 푸시 알림은 iOS/Web 공통 이벤트 일관성을 높이고 덮어쓰기 문제를 줄이도록 이벤트 키 전략을 조정
|
||||
- Plan 보드 운영 기능(정상처리 구분, 상세 이동, 자동화 상태 반영)을 보강해 운영 화면으로서 활용도를 높임
|
||||
|
||||
## 스크린샷
|
||||
|
||||

|
||||

|
||||
|
||||
## 소스
|
||||
|
||||
- `etc/servers/work-server/src/services/chat-service.ts`, `src/app/main/MainChatPanel.tsx`: Codex Live 채팅을 WebSocket 기반으로 연결하고, 현재 화면/Plan 상태를 반영한 응답 흐름을 추가했습니다.
|
||||
- `src/features/planBoard/charts.tsx`, `src/features/planBoard/PlanBoardPage.tsx`: Plan 성과 차트를 별도 메뉴로 분리하고 보드 운영 기능을 확장했습니다.
|
||||
- `src/features/planBoard/api.ts`: Plan 데이터 조회를 `no-store` 중심으로 바꿔 현재 상태가 바로 반영되게 조정했습니다.
|
||||
- `etc/servers/work-server/src/services/plan-service.ts`, `etc/servers/work-server/src/workers/plan-worker.ts`: `메인까지 자동등록`, 정상처리 구분, 진행 알림/재시작 조건을 서버 흐름에 연결했습니다.
|
||||
|
||||
```diff
|
||||
diff --git a/etc/servers/work-server/src/services/chat-service.ts b/etc/servers/work-server/src/services/chat-service.ts
|
||||
+type ChatInboundMessage =
|
||||
+ | { type: 'context:update'; payload: ChatContext }
|
||||
+ | { type: 'message:send'; payload: { text: string } };
|
||||
...
|
||||
+function isWorklogRequest(input: string) {
|
||||
+ return mentionsWorklog || (normalized.includes('log') && asksToWrite);
|
||||
+}
|
||||
...
|
||||
+function buildWorklogReply(context: ChatContext | null, snapshot: PlanSnapshot | null) {
|
||||
+ return [
|
||||
+ `# ${today} 작업일지`,
|
||||
+ '## 오늘 작업',
|
||||
+ ].join('\\n');
|
||||
```
|
||||
|
||||
## 변경 파일 (전체, 중복 제거, KST 기준)
|
||||
|
||||
- M etc/servers/work-server/src/services/chat-service.ts
|
||||
- M etc/servers/work-server/src/routes/plan.ts
|
||||
- M src/app/main/MainChatPanel.tsx
|
||||
- M etc/servers/work-server/src/services/plan-notification-service.ts
|
||||
- M src/app/main/MainHeader.tsx
|
||||
- A src/app/main/tokenAccess.ts
|
||||
- M src/features/planBoard/PlanBoardPage.tsx
|
||||
- M etc/servers/work-server/src/config/env.ts
|
||||
- M etc/servers/work-server/src/services/plan-service.ts
|
||||
- M scripts/run-plan-codex-once.mjs
|
||||
- M src/features/planBoard/types.ts
|
||||
- M src/styles.css
|
||||
- M etc/servers/work-server/src/workers/plan-worker.ts
|
||||
- M src/app/main/MainContent.tsx
|
||||
- M vite.config.ts
|
||||
- M etc/servers/work-server/package-lock.json
|
||||
- M etc/servers/work-server/package.json
|
||||
- M etc/servers/work-server/src/server.ts
|
||||
- A etc/servers/work-server/src/services/chat-service.ts
|
||||
- M src/app/main/MainSidebar.tsx
|
||||
- M src/app/main/MainView.tsx
|
||||
- M src/app/main/types.ts
|
||||
- M src/store/appStore/types/index.ts
|
||||
- A src/app/main/MainChatPanel.tsx
|
||||
- A src/features/planBoard/charts.tsx
|
||||
- M src/features/planBoard/index.ts
|
||||
- M src/store/appStore/context/AppStoreContext.tsx
|
||||
- M src/sw.js
|
||||
- M src/features/planBoard/api.ts
|
||||
- M docker-compose.yml
|
||||
- M scripts/serve-app-dist.mjs
|
||||
- R src/sw.ts -> src/sw.js
|
||||
- A scripts/serve-app-dist.mjs
|
||||
- M src/app/main/appUpdate.ts
|
||||
|
||||
## 실행 커맨드
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
npm run capture:feature -- --date 2026-04-05 --target chat-live
|
||||
npm run capture:feature -- --date 2026-04-05 --target plans-charts
|
||||
```
|
||||
|
||||
## 변경 파일
|
||||
|
||||
- `docs/worklogs/2026-04-05.md`
|
||||
- `src/app/main/MainChatPanel.tsx`
|
||||
- `src/features/planBoard/PlanBoardPage.tsx`
|
||||
- `src/features/planBoard/charts.tsx`
|
||||
- `src/features/planBoard/api.ts`
|
||||
- `etc/servers/work-server/src/services/plan-service.ts`
|
||||
- `etc/servers/work-server/src/services/plan-notification-service.ts`
|
||||
- `etc/servers/work-server/src/services/plan-notification-policy.ts`
|
||||
- `etc/servers/work-server/src/services/chat-service.ts`
|
||||
- `etc/servers/work-server/src/workers/plan-worker.ts`
|
||||
Reference in New Issue
Block a user