- 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>
42 lines
2.6 KiB
Markdown
42 lines
2.6 KiB
Markdown
# 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
|
|
|
|
- `ReflectionEngineStateProvider` is 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`
|