Files
ai-code-app/docs/features/work-request-board.md

3.6 KiB

작업 요청 게시판

목적

작업 요청 게시판은 게시글 1건 안에 여러 하위 요청을 묶어 등록하고, 각 하위 요청이 자동화 작업으로 어떻게 접수되고 완료되는지 추적하는 화면입니다.

핵심 구조

  • 게시글 1건은 공통 제목, 공통 메모, 공통 첨부 파일을 가집니다.
  • 게시글 안에는 하위 요청을 1건 이상 둘 수 있습니다.
  • 각 하위 요청은 별도 Plan 항목으로 등록될 수 있고, 상태도 개별로 추적됩니다.
  • 공통 메모와 첨부 파일 경로는 하위 요청별 자동화 메모에 함께 포함됩니다.

데이터 모델

  • 게시글 테이블: board_posts
  • 하위 요청 테이블: board_post_requests
  • 주요 서버 구현:
    • 라우트: etc/servers/work-server/src/routes/board.ts
    • 서비스: etc/servers/work-server/src/services/board-service.ts
  • 주요 프런트 구현:
    • 화면: src/features/board/BoardPage.tsx
    • API 클라이언트: src/features/board/api.ts
    • 타입: src/features/board/types.ts

실행 방식

하위 요청 등록 방식은 게시글 단위로 선택합니다.

  • all_at_once: 접수 가능한 하위 요청을 한 번에 모두 Plan으로 등록합니다.
  • after_previous_finished: 앞 요청이 성공/실패와 무관하게 종료되면 다음 요청을 등록합니다.
  • after_previous_success: 앞 요청이 성공으로 완료된 경우에만 다음 요청을 등록합니다. 실패하면 뒤 요청은 blocked 상태로 남습니다.

상태 추적

각 하위 요청은 아래 정보를 기준으로 상태를 계산합니다.

  • 게시판 워크플로 상태: pending, waiting, registered, completed, failed, blocked
  • 연결된 Plan 상태: status, workerStatus, lastError

화면에서는 이를 바탕으로 다음처럼 보여줍니다.

  • 미접수: 아직 Plan 등록 전
  • 선행 대기: 순차 실행에서 앞 요청 완료를 기다리는 상태
  • 대기열: Plan 등록은 됐지만 아직 본격 처리 전
  • 진행중: worker가 작업 중
  • 완료: Plan 완료 반영
  • 실패: worker 실패 또는 오류 기록 존재
  • 차단: 성공 의존 순차 모드에서 앞 요청 실패로 후속 요청 중단

화면 동작

  • 목록 화면에서 게시글별로 완료 x/y, 실패 수, 진행 수를 요약해 보여줍니다.
  • 상세 화면에서 하위 요청을 추가, 삭제, 순서 변경할 수 있습니다.
  • 자동화 접수 후에는 게시글과 하위 요청 편집이 잠기고 읽기 전용으로 전환됩니다.
  • 하위 요청별로 연결된 Plan 링크를 바로 열 수 있습니다.
  • 여러 게시글을 선택해 일괄 접수할 수 있지만, 실제 순차 흐름은 각 게시글의 실행 옵션을 따릅니다.

자동화 연동

  • 접수 시 receiveBoardPostAutomation()이 하위 요청별 Plan을 생성합니다.
  • Plan worker가 완료/실패를 기록하면 progressBoardPostAutomationByPlanResult()가 다음 하위 요청 등록 여부를 결정합니다.
  • 레거시 호환용 board_posts.automation_plan_item_id, automation_received_at도 첫 접수 요청 기준으로 함께 동기화합니다.

검증 포인트

  • 새 게시글 저장 시 하위 요청이 1건 이상 생성되는지 확인
  • 실행 옵션별로 다음 요청 등록 시점이 의도대로 달라지는지 확인
  • 앞 요청 실패 시 after_previous_success 모드에서 후속 요청이 차단으로 남는지 확인
  • 자동화 접수 후 편집/삭제가 막히는지 확인
  • 하위 요청별 Plan 링크가 올바른 항목으로 연결되는지 확인