Sprint Contract: docs/contracts/engine-bridge-v2.md
docs/contracts/engine-bridge-v2.md
engine-bridge v1 probe design 권고안(MEF plugin masquerade)을 실제 구현. recordingtest 전용 플러그인이 SUT Plugins/에 drop-in되면 로컬 HTTP로 HmEG 상태 노출.
Recordingtest.EgPlugin
Recordingtest.EngineBridge.Client
HmEgHttpSnapshot : IEngineSnapshot
docs/guides/engine-bridge-deploy.md
/evaluate engine-bridge-v2
Related: #2, #9
b1c2383
MetadataLoadContext로 발견한 실제 plugin 계약:
HmEG.IPlugin
Name
View
RethrowException
Run(object[])
Editor.PluginInterface.EditorPlugin
IPlugin
[Export]
HmEG.PluginLoader
EgBoxPlugin
Editor07.WidgetPluginInterface
Microsoft.WindowsDesktop.App.Ref
구현: HmEgBridgePlugin : EditorPlugin (Name/Description/Initialize override, 생성자에서 방어적으로 listener 부팅)
HmEgBridgePlugin : EditorPlugin
Description
Initialize
Plugins/
Editor03.PluginInterface
net8.0-windows
HttpListener
v3: ReflectionEngineStateProvider 실매핑 (smoke test 이후). HmEG 내부에서 선택된 객체 ID, 카메라 상태를 실제로 읽어 반환.
closing v2.
No dependencies set.
The note is not visible to the blocked user.
목표
Sprint Contract:
docs/contracts/engine-bridge-v2.mdengine-bridge v1 probe design 권고안(MEF plugin masquerade)을 실제 구현. recordingtest 전용 플러그인이 SUT Plugins/에 drop-in되면 로컬 HTTP로 HmEG 상태 노출.
범위
Recordingtest.EgPlugin(MEF dll) — HttpListener + 엔드포인트 5개Recordingtest.EngineBridge.Client—HmEgHttpSnapshot : IEngineSnapshotdocs/guides/engine-bridge-deploy.md비목표
사이클
/evaluate engine-bridge-v2Related: #2, #9
engine-bridge v2 — Verdict: pass ✅
Generator (
b1c2383) — Editor03 discoveryMetadataLoadContext로 발견한 실제 plugin 계약:
HmEG.IPlugin(HmEG.dll) — 실제 타입 (members:Name,View,RethrowException,Run(object[]))Editor.PluginInterface.EditorPlugin(Editor03.PluginInterface.dll) — 추상 베이스,IPlugin구현[Export]없음 —HmEG.PluginLoader가IPlugin타입을 직접 발견 (EgBoxPlugin샘플로 확인)Editor07.WidgetPluginInterface는 별도 위젯 계약 (불필요)Microsoft.WindowsDesktop.App.Ref팩 추가 필요 (WindowsBase 의존성)구현:
HmEgBridgePlugin : EditorPlugin(Name/Description/Initializeoverride, 생성자에서 방어적으로 listener 부팅)Evaluator DoD (전부 pass)
비용
핵심 발견
[Export]속성 불필요 — 단순히IPlugin타입을 구현한 dll을Plugins/폴더에 넣기만 하면 됨 → 배포 난이도가 예상보다 낮음Editor03.PluginInterface에 WPF 의존성 다수 →net8.0-windows필수HttpListenerurlacl은 첫 실행 시 관리자 권한 필요할 수 있음 (가이드 트러블슈팅 기록)다음 단계
v3: ReflectionEngineStateProvider 실매핑 (smoke test 이후). HmEG 내부에서 선택된 객체 ID, 카메라 상태를 실제로 읽어 반환.
closing v2.