feat: WTM 멀티프로젝트 플랫폼 구축 (BE + FE 전체 구현)

Phase 0: wbx-spring-core 라이브러리 전환
- java-library 플러그인, WbxAutoConfiguration, Admin 조건부 활성화
- 루트 settings.gradle + build.gradle (멀티모듈)

Phase 1: wtm-api 모듈 생성
- 23개 JPA Entity, 14개 Controller, 79개 API 엔드포인트
- Flyway V100~V107 MySQL 마이그레이션
- TimesheetRuleEngine, TimesheetApprovalHandler, P6WbsParser

Phase 2: wtm-frontend (Vue 3 + PrimeVue 4)
- 10개 도메인 모듈, 17개 View, 5개 서브컴포넌트
- 반응형 레이아웃 (AppLayout, AppSidebar, AppTopbar)
- BaseCrudTable, BaseFormDialog, BasePageHeader 표준 컴포넌트
- JWT 인터셉터, 역할 기반 메뉴 필터링

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
이 Commit은 다음에 포함되어 있습니다:
2026-03-25 21:01:43 +09:00
부모 783865266b
커밋 df723f1d59
533개의 변경된 파일15528개의 추가작업 그리고 154개의 파일을 삭제

파일 보기

@@ -0,0 +1,12 @@
{"t":0,"agent":"a18f090","agent_type":"Explore","event":"agent_start","parent_mode":"none"}
{"t":0,"agent":"a18f090","agent_type":"Explore","event":"agent_stop","success":true,"duration_ms":44564}
{"t":0,"agent":"ad9b656","agent_type":"architect","event":"agent_start","parent_mode":"none"}
{"t":0,"agent":"ad9b656","agent_type":"architect","event":"agent_stop","success":true,"duration_ms":169049}
{"t":0,"agent":"ad7c101","agent_type":"architect","event":"agent_start","parent_mode":"none"}
{"t":0,"agent":"ad7c101","agent_type":"architect","event":"agent_stop","success":true,"duration_ms":202690}
{"t":0,"agent":"aeff378","agent_type":"critic","event":"agent_start","parent_mode":"none"}
{"t":0,"agent":"aeff378","agent_type":"critic","event":"agent_stop","success":true,"duration_ms":175651}
{"t":0,"agent":"a35d81f","agent_type":"general-purpose","event":"agent_start","parent_mode":"none"}
{"t":0,"agent":"a66b53d","agent_type":"general-purpose","event":"agent_start","parent_mode":"none"}
{"t":0,"agent":"a35d81f","agent_type":"general-purpose","event":"agent_stop","success":true,"duration_ms":105638}
{"t":0,"agent":"a66b53d","agent_type":"general-purpose","event":"agent_stop","success":true,"duration_ms":411042}

파일 보기

@@ -0,0 +1,62 @@
{
"agents": [
{
"agent_id": "a18f0906df8444921",
"agent_type": "Explore",
"started_at": "2026-03-25T09:57:59.104Z",
"parent_mode": "none",
"status": "completed",
"completed_at": "2026-03-25T09:58:43.668Z",
"duration_ms": 44564
},
{
"agent_id": "ad9b65686f679467a",
"agent_type": "oh-my-claudecode:architect",
"started_at": "2026-03-25T10:12:41.765Z",
"parent_mode": "none",
"status": "completed",
"completed_at": "2026-03-25T10:15:30.814Z",
"duration_ms": 169049
},
{
"agent_id": "ad7c101944473c52f",
"agent_type": "oh-my-claudecode:architect",
"started_at": "2026-03-25T10:20:25.037Z",
"parent_mode": "none",
"status": "completed",
"completed_at": "2026-03-25T10:23:47.727Z",
"duration_ms": 202690
},
{
"agent_id": "aeff378642946b837",
"agent_type": "oh-my-claudecode:critic",
"started_at": "2026-03-25T10:32:26.548Z",
"parent_mode": "none",
"status": "completed",
"completed_at": "2026-03-25T10:35:22.199Z",
"duration_ms": 175651
},
{
"agent_id": "a35d81fe5c1491345",
"agent_type": "general-purpose",
"started_at": "2026-03-25T10:54:19.348Z",
"parent_mode": "none",
"status": "completed",
"completed_at": "2026-03-25T10:56:04.986Z",
"duration_ms": 105638
},
{
"agent_id": "a66b53d0c9bd248ef",
"agent_type": "general-purpose",
"started_at": "2026-03-25T10:54:45.602Z",
"parent_mode": "none",
"status": "completed",
"completed_at": "2026-03-25T11:01:36.644Z",
"duration_ms": 411042
}
],
"total_spawned": 6,
"total_completed": 6,
"total_failed": 0,
"last_updated": "2026-03-25T11:01:36.764Z"
}