feat: add flutter-desktop-control-ui & unity-3d-desktop-character milestones, update roadmap
This commit is contained in:
parent
cc5f99bd11
commit
12a48fe0c3
8 changed files with 201 additions and 13 deletions
|
|
@ -75,7 +75,7 @@ Phase는 실행 순서가 아니라 도메인/책임 영역의 구조적 지도
|
|||
|
||||
- [진행중] Automation Runtime과 Bridge 확장
|
||||
- 경로: [PHASE.md](phase/automation-runtime-bridge/PHASE.md)
|
||||
- 요약: 정적 lane/G 이후의 시간대·quota 기반 `adapter + target` 선택과 작업별 failover를 우선 구현하고, provider/grade routing 뒤에는 Node와 독립 `iop-agent` CLI가 공유하는 공통 Go Agent Task runtime으로 현재 Python 감시 루프를 전체 동등성 기준에서 이전한다. Flutter 설정 UI와 Unity 3D Character는 CLI 이후 별도 Milestone으로 두고, 원격 터널링과 oto scheduler/CI-CD는 2차로 잠근다.
|
||||
- 요약: 정적 lane/G 이후의 시간대·quota 기반 선택과 failover를 공통 Go Agent Task runtime으로 확장해 Node와 독립 `iop-agent` CLI가 공유하고, 현재 Python 감시 루프를 전체 동등성 기준에서 이전한다. Flutter Desktop Control UI와 Unity 3D Desktop Character는 CLI 이후 별도 Milestone으로 두고, provider/grade routing은 같은 공통 경계에 연결하며 원격 터널링과 oto scheduler/CI-CD는 2차로 잠근다.
|
||||
|
||||
- [계획] 지식과 도구 최적화 확장
|
||||
- 경로: [PHASE.md](phase/knowledge-tool-optimization-extension/PHASE.md)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
Runtime과 Automation 실행 흐름을 공통화하고, agent 설치형 대상과 비설치형 대상의 제어 경로를 분리해 확장한다.
|
||||
CLI 실행, specialized agent 등록, bootstrap/enrollment, OpenAI-compatible workspace agent 실행 계약을 서로 충돌하지 않는 운영 경로로 정리했다.
|
||||
NomadCode가 IOP를 실행 백엔드로 사용할 수 있도록 하는 Responses 기반 workspace agent 실행 계약과 정적 lane/G 결과를 시간대·quota·실행 상태와 결합하는 Agent Task 동적 실행 Target Selector를 완료했다. 후속으로 provider/grade routing을 닫고, Node와 독립 `iop-agent` CLI가 함께 사용하는 공통 Go Agent Task runtime으로 현재 Python 감시 루프를 전체 동등성 기준에서 이전한다. Flutter 설정 UI와 Unity 3D Character는 CLI 이후의 별도 Milestone으로 둔다.
|
||||
NomadCode가 IOP를 실행 백엔드로 사용할 수 있도록 하는 Responses 기반 workspace agent 실행 계약과 정적 lane/G 결과를 시간대·quota·실행 상태와 결합하는 Agent Task 동적 실행 Target Selector를 완료했다. 후속으로 Node와 독립 `iop-agent` CLI가 함께 사용하는 공통 Go Agent Task runtime으로 현재 Python 감시 루프를 전체 동등성 기준에서 이전하고 provider/grade routing을 같은 공통 경계에 연결한다. Flutter Desktop Control UI와 Unity 3D Desktop Character는 CLI 이후의 별도 Milestone으로 둔다.
|
||||
원격 터미널/CLI 터널링과 oto scheduler/CI-CD 자동화는 2차 스케치로 잠그고, 현재 활성 구현 범위로 끌어오지 않는다.
|
||||
|
||||
## Milestone 흐름
|
||||
|
|
@ -98,6 +98,14 @@ Phase를 가로지르는 실제 다음 작업 선택은 [전역 마일스톤 실
|
|||
- 경로: [iop-agent-cli-runtime](milestones/iop-agent-cli-runtime.md)
|
||||
- 요약: 현재 Python 감시·dispatcher와 Node CLI runtime의 전체 동등성을 공통 Go CLI Provider·AgentTaskManager 및 독립 `iop-agent` binary로 이전하고 UI 구현은 후속 Milestone으로 분리한다.
|
||||
|
||||
- [스케치] Flutter Desktop Control UI
|
||||
- 경로: [flutter-desktop-control-ui](milestones/flutter-desktop-control-ui.md)
|
||||
- 요약: `iop-agent` local proto-socket을 소비해 YAML 전체 설정, project registry, 실행 상태·오류·로그와 macOS app lifecycle을 제공하는 Flutter 설정·운영 UI를 스케치한다.
|
||||
|
||||
- [스케치] Unity 3D Desktop Character
|
||||
- 경로: [unity-3d-desktop-character](milestones/unity-3d-desktop-character.md)
|
||||
- 요약: Flutter와 독립적으로 같은 local proto-socket을 소비하고 작업 상태를 투명 배경 3D 캐릭터와 animation으로 표현하는 macOS Unity client를 스케치한다.
|
||||
|
||||
- [스케치] 에이전트 작업 루프 오케스트레이션 MVP
|
||||
- 경로: [agent-workflow-loop-orchestration-mvp](milestones/agent-workflow-loop-orchestration-mvp.md)
|
||||
- 요약: 교체 가능한 최초 요청 라우터가 코딩·저장소 조회·일반 요청을 direct, Plan, Milestone과 lane/G0X로 분류하고, 사용자 agent의 tool call로 작업 파일을 만든 뒤 파일 상태, 하이브리드 실행과 상위 모델 리뷰를 연결하는 작업 루프를 스케치한다.
|
||||
|
|
|
|||
|
|
@ -107,5 +107,6 @@ CLI provider agent와 목적별 agent group, 예약어 설정을 runtime이 해
|
|||
- 표준선(선택): selector는 provider/agent 하나만 반환한다. known failure의 retry/failover는 공통 runtime이 소유하고 unknown 오류는 추정 복구 없이 표면화한다.
|
||||
- 표준선(선택): 같은 provider credential/profile의 cloud quota는 project별로 분할하지 않는 app-global 공유 snapshot이며 group routing은 공통 quota 입력을 읽기만 한다.
|
||||
- 선행 작업: CLI Automation Runtime 안정화, OpenAI Responses Input Surface, OpenAI Workspace Agent Execution Contract
|
||||
- 후속 작업: [IOP Agent CLI Runtime](iop-agent-cli-runtime.md), [Provider 사용량 알림과 운영 표면](provider-usage-notification-operations-surface.md)
|
||||
- 관련 공통화 작업: [IOP Agent CLI Runtime](iop-agent-cli-runtime.md)
|
||||
- 후속 작업: [Provider 사용량 알림과 운영 표면](provider-usage-notification-operations-surface.md)
|
||||
- 확인 필요: 없음
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
# Milestone: Flutter Desktop Control UI
|
||||
|
||||
## 위치
|
||||
|
||||
- Roadmap: [ROADMAP.md](../../../ROADMAP.md)
|
||||
- Phase: [PHASE.md](../PHASE.md)
|
||||
|
||||
## 목표
|
||||
|
||||
`iop-agent`의 전체 YAML 설정과 실행 상태를 macOS Flutter 앱에서 관리할 수 있는 설정·운영 표면을 제공한다.
|
||||
binary가 소유하는 local proto-socket을 소비하고 Flutter에 provider 선택, 작업 실행 또는 복구 로직을 복제하지 않은 채 설치 가능한 Desktop 제품으로 패키징한다.
|
||||
|
||||
## 상태
|
||||
|
||||
[스케치]
|
||||
|
||||
## 승격 조건
|
||||
|
||||
- [ ] [IOP Agent CLI Runtime](iop-agent-cli-runtime.md)의 config/status/event/control 계약과 macOS binary lifecycle 경계가 구현 계획의 입력으로 고정되어 있다.
|
||||
- [ ] YAML 전체 설정, project registry, 실행 상태와 오류 표면을 agent-ui 화면 정의로 옮길 수 있도록 UI 정보 구조와 상태 목록을 확정한다.
|
||||
- [ ] macOS app bundle, background 실행, 종료, 재연결과 실제 로그인 환경 smoke 범위를 기능 Task와 연결한다.
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
- 상태: 잠금
|
||||
- SDD: 불필요
|
||||
- SDD 문서: 없음
|
||||
- SDD 사유: 현재는 확정된 `iop-agent` local 계약을 소비할 Flutter client 범위를 나누는 스케치이며, process lifecycle·config write·배포 계약을 구현 가능한 계획으로 승격할 때 SDD 필요 여부를 다시 판정한다.
|
||||
- 잠금 해제 조건: 아래 체크리스트
|
||||
- [ ] 승격 조건을 모두 충족해 `[계획]`으로 전환되어 있다.
|
||||
- [ ] agent-ui 정의와 구현 계획이 binary 계약 및 기능 Task에 연결되어 있다.
|
||||
- 결정 필요: 없음
|
||||
|
||||
## 범위
|
||||
|
||||
- macOS 우선 Flutter 설정·운영 UI와 설치 가능한 `.app` shell
|
||||
- binary 측 local proto-socket을 통한 provider/project 조회, config read/write, 실행 상태·event·control 소비
|
||||
- YAML에서 설정 가능한 provider/global 기본값, project override, ordered selection rule과 자동 실행 설정 전체의 UI 편집 표면
|
||||
- `iop-agent` sidecar 시작·중단·재연결, background lifecycle, tray/menu와 project별 상태·오류·로그 표면
|
||||
|
||||
## 기능
|
||||
|
||||
### Epic: [config-ops-ui] 설정과 운영 표면
|
||||
|
||||
CLI 사용 없이 runtime 설정과 project 작업 상태를 관리하는 UI capability를 묶는다.
|
||||
|
||||
- [ ] [config-parity] UI가 현재 YAML schema의 모든 사용자 설정을 손실 없이 조회·편집·검증하고 project override와 ordered rule priority를 보존한다.
|
||||
- [ ] [project-registry] 명시 등록 project와 workspace instance를 조회·추가·수정·제거하고 clone/worktree/branch 식별 정보를 표시한다.
|
||||
- [ ] [runtime-control] project별 auto-run, start, stop, resume와 대기 중인 작업·Milestone 상태를 local control 계약으로 관리한다.
|
||||
- [ ] [ops-surface] provider/model, quota/status, 작업 loop, 오류와 project-local log 위치를 현재 runtime 관측 수준보다 축소하지 않고 표시한다.
|
||||
|
||||
### Epic: [macos-delivery] macOS 제품 수명주기
|
||||
|
||||
Flutter shell과 `iop-agent` binary를 하나의 설치·실행 경험으로 제공하는 산출물을 묶는다.
|
||||
|
||||
- [ ] [binary-lifecycle] 앱이 포함된 `iop-agent` binary를 단일 owner로 시작·종료하고 창 종료, 명시 종료, 재실행과 비정상 종료에서 orphan·중복 process를 만들지 않는다.
|
||||
- [ ] [desktop-shell] 설정 창, background/tray 진입점과 최소 상태·오류 surface가 macOS app bundle로 패키징된다.
|
||||
- [ ] [reconnect] socket 단절, binary 재시작과 config revision 변경 후 UI가 마지막 확인 상태를 오인하지 않고 재동기화한다.
|
||||
- [ ] [logged-smoke] 실제 로그인된 macOS 환경에서 설치, 최초 실행, YAML import/편집, 다중 project 제어, 종료·재시작과 오류 표면화를 검증한다.
|
||||
|
||||
## 완료 리뷰
|
||||
|
||||
- 상태: 없음
|
||||
- 요청일: 없음
|
||||
- 완료 근거: 후속 Flutter 제품 범위를 분리한 최초 스케치이며 승격 조건과 구현 gate가 남아 있다.
|
||||
- 검토 항목: 없음
|
||||
- agent-ui 상태 반영: 해당 없음
|
||||
- 리뷰 코멘트: 없음
|
||||
|
||||
## 범위 제외
|
||||
|
||||
- Unity 3D Character, transparent character window와 animation
|
||||
- provider credential 로그인, token 저장과 계정 전환
|
||||
- provider 선택, retry/failover, AgentTaskManager와 workflow 상태 머신의 Flutter 재구현
|
||||
- Edge/Control Plane 포함, Windows/Linux packaging과 배포 채널 운영
|
||||
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 경로: `apps/desktop-agent-ui`, `apps/desktop-agent`, `packages/go`, `proto/iop`, `agent-ui`
|
||||
- 표준선(선택): Flutter는 client이며 설정 원본, config validation, provider 실행과 작업 상태 전이는 `iop-agent` binary가 소유한다.
|
||||
- 표준선(선택): 화면 설정은 YAML의 부분집합이 아니라 전체 사용자 설정을 다루며, binary 조회 결과로 안전한 초기값을 제안하되 project override를 명시적으로 보존한다.
|
||||
- 표준선(선택): macOS를 최초 지원 플랫폼으로 고정하고 Windows/Linux는 별도 후속 범위로 둔다.
|
||||
- 큐 배치: [oto 자동화 스케줄러와 CI-CD 연동 (2차)](oto-automation-scheduler-second-wave.md) 뒤, [Unity 3D Desktop Character](unity-3d-desktop-character.md) 앞
|
||||
- 선행 작업: [IOP Agent CLI Runtime](iop-agent-cli-runtime.md)
|
||||
- 후속 작업: [Unity 3D Desktop Character](unity-3d-desktop-character.md), Windows/Linux Desktop packaging
|
||||
- 확인 필요: 없음
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
- [ ] 보류된 [공통 Agent Task Runtime과 Desktop Agent](shared-agent-task-runtime-desktop-agent.md)와 [기존 SDD](../../../sdd/automation-runtime-bridge/shared-agent-task-runtime-desktop-agent/SDD.md)의 runtime 요구사항을 CLI 범위로 이관하고 Python·Node 참조 동작의 parity inventory를 고정한다.
|
||||
- [x] 공통 runtime lifecycle, YAML config, checkpoint, provider process와 binary 측 local proto-socket 경계를 [SDD](../../../sdd/automation-runtime-bridge/iop-agent-cli-runtime/SDD.md)에 고정하고 필요한 agent-contract 작성 범위를 확정했다.
|
||||
- [x] 기능 Task와 Acceptance Scenario·Evidence Map을 연결했다.
|
||||
- [ ] Flutter 설정 UI와 Unity 3D Character를 각각 후속 Milestone 후보로 분리하고 현재 범위에 UI 구현이 섞이지 않았는지 확인한다.
|
||||
- [x] [Flutter Desktop Control UI](flutter-desktop-control-ui.md)와 [Unity 3D Desktop Character](unity-3d-desktop-character.md)를 각각 후속 Milestone으로 분리하고 현재 범위에서 client UI 구현을 제외했다.
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
|
|
@ -103,13 +103,14 @@ UI 없이도 설치·설정·실행·관측 가능한 제품 표면을 묶는다
|
|||
- 관련 경로: `packages/go`, `apps/node`, `proto/iop`, `agent-task`, `agent-roadmap`
|
||||
- 표준선(선택): `iop-agent`는 headless runtime과 CLI entry이며 설정·project registry·최소 checkpoint의 관리 주체다. workspace는 작업 파일의 source of truth이지 runtime 설정 소유자가 아니다.
|
||||
- 표준선(선택): Node와 `iop-agent`는 공통 provider/manager package를 소비하고 host-specific command, wire와 lifecycle adapter만 가진다.
|
||||
- 표준선(선택): Python은 정책·오류·관측 behavior fixture로만 사용하고 Go 타입과 테스트로 재구현한다. Python에 없는 선택 엔진은 완료된 selector와 group routing Milestone을 기준으로 작성한다.
|
||||
- 표준선(선택): Python은 정책·오류·관측 behavior fixture로만 사용하고 Go 타입과 테스트로 재구현한다. Python에 없는 선택 엔진은 완료된 selector와 group routing Milestone 요구사항을 기준으로 작성한다.
|
||||
- 표준선(선택): CLI는 모든 선언 provider를 대상으로 전체 동등성을 제공하며 지원 provider, 선택 엔진, quota, review와 복구 기능을 축소한 선행판을 두지 않는다.
|
||||
- 표준선(선택): local proto-socket은 binary가 소유하는 client-neutral 경계다. Flutter와 Unity는 후속 Milestone에서 서로 통신하지 않고 각자 이 경계를 소비한다.
|
||||
- 표준선(선택): 자동 실행과 provider approval bypass는 기본 on이며 사용자는 언제든 project를 중단할 수 있다. provider authentication과 credential은 각 CLI가 소유하고 `iop-agent`는 이미 인증된 실행만 사용한다.
|
||||
- 표준선(선택): 세부 command 이름, package/file 배치, proto field, retry backoff 수치와 log serialization은 계획·SDD·contract 단계에서 기존 구조와 표준안으로 정하며 사용자 결정 항목으로 올리지 않는다.
|
||||
- 이전 설계 참조: [공통 Agent Task Runtime과 Desktop Agent](shared-agent-task-runtime-desktop-agent.md)와 [기존 SDD](../../../sdd/automation-runtime-bridge/shared-agent-task-runtime-desktop-agent/SDD.md). 결합된 Desktop delivery는 구현하지 않고 CLI parity 요구사항만 계획 승격 시 이관한다.
|
||||
- 큐 배치: [CLI Agent Group Grade Routing](cli-agent-group-grade-routing.md) 뒤, [에이전트 작업 루프 오케스트레이션 MVP](agent-workflow-loop-orchestration-mvp.md) 앞
|
||||
- 선행 작업: [Agent Task 동적 실행 Target Selector](../../../archive/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md), [Pi CLI Provider Integration](pi-cli-provider-integration.md), [CLI Agent Group Grade Routing](cli-agent-group-grade-routing.md)
|
||||
- 후속 작업: Flutter Desktop 설정·운영 UI Milestone, Unity 3D Character Milestone, [에이전트 작업 루프 오케스트레이션 MVP](agent-workflow-loop-orchestration-mvp.md), [Provider 사용량 알림과 운영 표면](provider-usage-notification-operations-surface.md)
|
||||
- 큐 배치: [Stream Evidence Gate Core](../../knowledge-tool-optimization-extension/milestones/stream-evidence-gate-core.md) 뒤, [Flutter Desktop Control UI](flutter-desktop-control-ui.md) 앞
|
||||
- 선행 작업: [Stream Evidence Gate Core](../../knowledge-tool-optimization-extension/milestones/stream-evidence-gate-core.md), [Agent Task 동적 실행 Target Selector](../../../archive/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md)
|
||||
- 참조·연결 작업: [Pi CLI Provider Integration](pi-cli-provider-integration.md), [CLI Agent Group Grade Routing](cli-agent-group-grade-routing.md)
|
||||
- 후속 작업: [Flutter Desktop Control UI](flutter-desktop-control-ui.md), [Unity 3D Desktop Character](unity-3d-desktop-character.md), [에이전트 작업 루프 오케스트레이션 MVP](agent-workflow-loop-orchestration-mvp.md), [Provider 사용량 알림과 운영 표면](provider-usage-notification-operations-surface.md)
|
||||
- 확인 필요: 없음
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
## 보류 사유
|
||||
|
||||
- 공통 runtime, Flutter Desktop과 배포를 한 번에 구현하는 결합 범위는 더 이상 실행하지 않는다.
|
||||
- 현재 첫 구현 범위는 [IOP Agent CLI Runtime](iop-agent-cli-runtime.md)으로 분리했으며, 이 문서와 SDD는 CLI 요구사항 이관 및 후속 Flutter·Unity Milestone 작성의 참조로만 유지한다.
|
||||
- 현재 범위는 [IOP Agent CLI Runtime](iop-agent-cli-runtime.md), [Flutter Desktop Control UI](flutter-desktop-control-ui.md), [Unity 3D Desktop Character](unity-3d-desktop-character.md)로 분리했으며, 이 문서와 SDD는 이관 요구사항의 참조로만 유지한다.
|
||||
|
||||
## 승격 조건
|
||||
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
- [ ] SDD 사용자 리뷰가 없거나 승인·해결되었다.
|
||||
- [ ] Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다.
|
||||
- [ ] Evidence Map이 완료 시 `Roadmap Completion`과 최종 검증 evidence로 검증 가능하게 연결되어 있다.
|
||||
- 결정 필요: 현재 보류. [D01 범위 이관 기록](../../../sdd/automation-runtime-bridge/shared-agent-task-runtime-desktop-agent/user_review_0.log)은 후속 Flutter Desktop Milestone 범위이며 IOP Agent CLI 결정 항목이 아니다.
|
||||
- 결정 필요: 현재 보류. [D01 범위 이관 기록](../../../sdd/automation-runtime-bridge/shared-agent-task-runtime-desktop-agent/user_review_0.log)은 [Flutter Desktop Control UI](flutter-desktop-control-ui.md) 범위이며 IOP Agent CLI 결정 항목이 아니다.
|
||||
|
||||
## 범위
|
||||
|
||||
|
|
@ -188,7 +188,7 @@ Edge 없이 실행되는 macOS 제품 껍데기와 설치·운영 기준을 제
|
|||
- 표준선(선택): Desktop은 Flutter가 관리하는 local Go sidecar process를 기본 topology로 삼고, Node는 동일 library를 in-process로 사용한다. 정확한 IPC와 lifecycle 계약은 SDD 잠금에서 고정한다.
|
||||
- 표준선(선택): 설정 merge는 app-owned defaults 뒤 app registry의 project override를 적용하며 ordered rule array는 전체 교체한다. 현재 실행은 immutable revision을 사용하고 hot reload는 다음 agent invocation 경계에서만 활성화한다.
|
||||
- 표준선(선택): 자동 실행과 approval bypass는 기본 on이다. auth는 CLI가 소유하고 app은 이미 인증된 실행만 사용한다.
|
||||
- 큐 배치: [CLI Agent Group Grade Routing](cli-agent-group-grade-routing.md) 뒤, [Provider 사용량 알림과 운영 표면](provider-usage-notification-operations-surface.md) 앞의 기존 작업 루프 위치를 유지한다.
|
||||
- 큐 배치: 보류되어 전역 큐에서 제외하고 [IOP Agent CLI Runtime](iop-agent-cli-runtime.md) -> [Flutter Desktop Control UI](flutter-desktop-control-ui.md) -> [Unity 3D Desktop Character](unity-3d-desktop-character.md)로 대체한다.
|
||||
- 선행 작업: [Agent Task 동적 실행 Target Selector](../../../archive/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md), [Pi CLI Provider Integration](pi-cli-provider-integration.md), [CLI Agent Group Grade Routing](cli-agent-group-grade-routing.md)
|
||||
- 후속 작업: [에이전트 작업 루프 오케스트레이션 MVP](agent-workflow-loop-orchestration-mvp.md), 완성형 Flutter 설정 UI, Windows/Linux packaging, 외부 알림·운영 dashboard, signing/notarization과 배포 채널
|
||||
- 확인 필요: 현재 없음. Desktop background lifecycle은 후속 Flutter Desktop Milestone을 만들 때 다시 검토한다.
|
||||
- 후속 작업: [Flutter Desktop Control UI](flutter-desktop-control-ui.md), [Unity 3D Desktop Character](unity-3d-desktop-character.md), [에이전트 작업 루프 오케스트레이션 MVP](agent-workflow-loop-orchestration-mvp.md), Windows/Linux packaging, 외부 알림·운영 dashboard, signing/notarization과 배포 채널
|
||||
- 확인 필요: 현재 없음. Desktop background lifecycle은 [Flutter Desktop Control UI](flutter-desktop-control-ui.md)의 승격 조건에서 검토한다.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
# Milestone: Unity 3D Desktop Character
|
||||
|
||||
## 위치
|
||||
|
||||
- Roadmap: [ROADMAP.md](../../../ROADMAP.md)
|
||||
- Phase: [PHASE.md](../PHASE.md)
|
||||
|
||||
## 목표
|
||||
|
||||
`iop-agent`의 작업 상태를 투명 배경의 3D 캐릭터로 표현하는 macOS Unity client를 제공한다.
|
||||
Flutter UI와 직접 결합하거나 실행 로직을 중복하지 않고, 같은 local proto-socket을 독립적으로 소비하는 데스크톱 캐릭터 표면으로 구현한다.
|
||||
|
||||
## 상태
|
||||
|
||||
[스케치]
|
||||
|
||||
## 승격 조건
|
||||
|
||||
- [ ] [IOP Agent CLI Runtime](iop-agent-cli-runtime.md)의 client-neutral status/event/control 계약에서 캐릭터가 소비할 상태와 재연결 규칙을 확정한다.
|
||||
- [ ] idle, working, reviewing, waiting, error와 completed 상태를 교체 가능한 3D avatar·animation state로 매핑하고 transparent window 상호작용 범위를 정리한다.
|
||||
- [ ] macOS transparent rendering, click-through, drag, always-on-top, resource budget과 실제 로그인 환경 smoke를 기능 Task와 연결한다.
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
- 상태: 잠금
|
||||
- SDD: 불필요
|
||||
- SDD 문서: 없음
|
||||
- SDD 사유: 현재는 확정된 local event 계약을 소비할 독립 Unity client의 제품 범위를 나누는 스케치이며, native window plugin·process lifecycle·배포 계약을 구현 가능한 계획으로 승격할 때 SDD 필요 여부를 다시 판정한다.
|
||||
- 잠금 해제 조건: 아래 체크리스트
|
||||
- [ ] 승격 조건을 모두 충족해 `[계획]`으로 전환되어 있다.
|
||||
- [ ] avatar 상태 모델과 macOS window/platform 검증 계획이 기능 Task에 연결되어 있다.
|
||||
- 결정 필요: 없음
|
||||
|
||||
## 범위
|
||||
|
||||
- macOS 우선 Unity 3D client와 transparent·frameless character window
|
||||
- binary 측 local proto-socket을 통한 runtime 상태·event 소비와 연결 상태 표시
|
||||
- idle, working, reviewing, waiting, error, completed를 표현하는 avatar·animation state machine
|
||||
- drag, click/click-through, always-on-top, 위치 저장과 binary 단절·재연결 동작
|
||||
|
||||
## 기능
|
||||
|
||||
### Epic: [character-runtime] 캐릭터 상태 client
|
||||
|
||||
runtime event를 안정된 3D 표현 상태로 바꾸는 client capability를 묶는다.
|
||||
|
||||
- [ ] [socket-client] Unity client가 Flutter와 독립적으로 `iop-agent`에 연결하고 snapshot 이후 event를 순서대로 소비하며 재연결 시 상태를 재동기화한다.
|
||||
- [ ] [state-mapping] provider/model 내부 세부를 캐릭터에 하드코딩하지 않고 runtime 상태를 idle, working, reviewing, waiting, error와 completed animation으로 결정적으로 매핑한다.
|
||||
- [ ] [avatar-contract] 교체 가능한 avatar, animation clip과 상태 transition 계약을 제공해 특정 캐릭터 asset에 runtime을 종속시키지 않는다.
|
||||
- [ ] [error-surface] 인증·provider·quota·작업 오류와 binary 연결 실패를 정상 작업 animation으로 오인하지 않고 명시적인 상태로 표현한다.
|
||||
|
||||
### Epic: [transparent-delivery] 투명 창과 macOS 배포
|
||||
|
||||
3D 캐릭터를 데스크톱 표면에 안정적으로 표시하는 플랫폼 산출물을 묶는다.
|
||||
|
||||
- [ ] [transparent-window] alpha 투명 배경, frameless·always-on-top 창과 다중 모니터 좌표를 macOS에서 제공한다.
|
||||
- [ ] [pointer-policy] 캐릭터 hit 영역의 click/drag와 배경 click-through를 전환 가능하게 제공하고 사용자가 언제든 창을 이동·숨김·종료할 수 있다.
|
||||
- [ ] [lifecycle-budget] 독립 client가 `iop-agent` binary를 중복 실행하지 않고 연결·종료하며 idle/active resource budget과 animation throttling을 지킨다.
|
||||
- [ ] [logged-smoke] 실제 로그인된 macOS 환경에서 투명 렌더링, 입력, animation, socket 재연결, sleep/wake와 다중 모니터 동작을 검증한다.
|
||||
|
||||
## 완료 리뷰
|
||||
|
||||
- 상태: 없음
|
||||
- 요청일: 없음
|
||||
- 완료 근거: 후속 Unity 캐릭터 범위를 분리한 최초 스케치이며 승격 조건과 구현 gate가 남아 있다.
|
||||
- 검토 항목: 없음
|
||||
- agent-ui 상태 반영: 해당 없음
|
||||
- 리뷰 코멘트: 없음
|
||||
|
||||
## 범위 제외
|
||||
|
||||
- Flutter 설정·운영 화면과 YAML 편집 기능
|
||||
- provider 선택, task orchestration, retry/failover와 binary lifecycle의 Unity 재구현
|
||||
- 최종 캐릭터 IP·아트 스타일 확정과 대규모 avatar marketplace
|
||||
- Windows/Linux transparent window와 mobile/web 배포
|
||||
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 경로: `apps/desktop-character`, `packages/go`, `proto/iop`, `agent-ui`
|
||||
- 표준선(선택): Unity는 독립 표시 client이며 `iop-agent`가 상태·event 원본과 control 권한을 소유한다.
|
||||
- 표준선(선택): Flutter와 Unity는 서로의 process나 protocol을 소유하지 않고 같은 client-neutral local proto-socket을 각각 소비한다.
|
||||
- 표준선(선택): 첫 avatar는 교체 가능한 검증 asset으로 두고 최종 캐릭터 디자인은 runtime·window capability와 분리한다.
|
||||
- 큐 배치: [Flutter Desktop Control UI](flutter-desktop-control-ui.md) 뒤, 전역 큐 마지막
|
||||
- 선행 작업: [IOP Agent CLI Runtime](iop-agent-cli-runtime.md)
|
||||
- 후속 작업: Windows/Linux Character packaging과 avatar content 확장
|
||||
- 확인 필요: 없음
|
||||
|
|
@ -75,3 +75,9 @@
|
|||
|
||||
24. [oto 자동화 스케줄러와 CI-CD 연동 (2차)](phase/automation-runtime-bridge/milestones/oto-automation-scheduler-second-wave.md)
|
||||
oto 기반 자동화, scheduler, CI-CD 연동 후보를 스케치한다.
|
||||
|
||||
25. [Flutter Desktop Control UI](phase/automation-runtime-bridge/milestones/flutter-desktop-control-ui.md)
|
||||
`iop-agent` local proto-socket을 소비해 YAML 전체 설정과 project·실행·오류·로그를 관리하는 macOS Flutter 설정·운영 UI를 제공한다.
|
||||
|
||||
26. [Unity 3D Desktop Character](phase/automation-runtime-bridge/milestones/unity-3d-desktop-character.md)
|
||||
같은 local proto-socket을 독립적으로 소비하고 작업 상태를 투명 배경 3D 캐릭터와 animation으로 표현하는 macOS Unity client를 제공한다.
|
||||
|
|
|
|||
Loading…
Reference in a new issue