- Plugin masquerade pass (11 tests), drop-in via HmEG.PluginLoader (no MEF) - Smoke test guide covers recorder/player/runner/plugin end-to-end manual steps - PROGRESS.md Done rows, PLAN.md pivoted to v3 reflection mapping Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
engine-bridge v2 — Evaluation
Verdict: PASS
Generator commit: b1c2383
Evaluator: independent eval pass, 2026-04-07
Issue: #10
DoD verdict table
| # | DoD item | Result | Evidence |
|---|---|---|---|
| 1 | dotnet build recordingtest.sln green |
PASS | 0 warnings, 0 errors, 6.55s |
| 2 | Integration tests = 6 pass | PASS | Recordingtest.EngineBridge.IntegrationTests 6/6 in 687 ms |
| 3 | EgPlugin tests >= 3 pass | PASS | Recordingtest.EgPlugin.Tests 5/5 (exceeds claim of 5) |
| 4 | csproj: net8.0-windows + HintPath to EG-BIM Modeler/, Private=false, no local copy | PASS | csproj L3, L11-19; no DLL copies under src/ |
| 5 | HmEgBridgePlugin: inherits EditorPlugin, overrides Name/Description/Initialize, ctor boots listener, Dispose closes it | PASS | HmEgBridgePlugin.cs L10-47 |
| 6 | StateRouter: 5 endpoints, 404 for unknown, try/catch -> {"error":...} |
PASS | StateRouter.cs L28-42 |
| 7 | PortResolver: env var RECORDINGTEST_BRIDGE_PORT, default 38080, safe parse |
PASS | PortResolver.cs L5-17 (also bounds-checks 1..65535) |
| 8 | HmEgHttpSnapshot: IEngineSnapshot impl, GET per property, 2s default timeout w/ ctor override, throws EngineBridgeException | PASS | HmEgHttpSnapshot.cs L13-107 |
| 9 | Tests meaningful (FakeBridgeServer + real client; pure-logic plugin tests) | PASS | FakeBridgeServer.cs, HmEgHttpSnapshotTests.cs, StateRouterTests.cs |
| 10 | deploy guide: Build/Copy/Env/Launch/Verify/Troubleshoot/Uninstall + SUT-write warning | PASS | docs/guides/engine-bridge-deploy.md sec 1-7, warning in sec 2 |
| 11 | No writes to EG-BIM Modeler/ from src |
PASS | grep finds only csproj read-only HintPaths |
| 12 | No copy of Editor03.PluginInterface.dll / HmEG.dll in src/ |
PASS | glob returns 0 matches |
Notes
ReflectionEngineStateProvideris a skeleton returning defaults. Contract explicitly allows this ("진짜 매핑은 smoke test 후 조정"). Graded PASS with note — production mapping deferred to v3 post-smoke.- StateRouter returns HTTP 200 for provider-thrown errors with
{"error":"..."}payload (per contract spec line 22). Acceptable per DoD wording. - BridgeHttpServer swallows listener errors so SUT stability is preserved (port-conflict path handled).
- EgPlugin test count is 5, exceeding the contract minimum of 3.
Artifacts
- src:
src/Recordingtest.EgPlugin/,src/Recordingtest.EngineBridge.Client/ - tests:
tests/Recordingtest.EngineBridge.IntegrationTests/,tests/Recordingtest.EgPlugin.Tests/ - guide:
docs/guides/engine-bridge-deploy.md - history:
docs/history/2026-04-07_이슈10-engine-bridge-v2-evaluator.md