engine-bridge v2 (MEF plugin masquerade) #10
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
목표
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.