Files
com_r35157_nenjim-hubd-impl…/openspec/changes/archive/2026-10-22-96-extract-evelyn-perps-service/verification.md
T

3.6 KiB

Verification

Verified 2026-10-19 against Gitea issue #96 and the owner's explicit autostart requirement.

Build and specification checks

  • JAVA_HOME=/usr/local/software/java/jfx-25 ./gradlew build passed, including normal Detag processing, compilation, packaging and the existing 42 tests across six suites, with zero failures, errors or skips.
  • openspec validate 96-extract-evelyn-perps-service --strict passed.
  • git diff --check passed.
  • No automated tests were added to the repository. The runtime checks below used a temporary standalone preview under /tmp/emc96-preview.

Service and Hub verification

  • Snapshot reads before startup and duplicate startup fail clearly. The started service returns its complete fixed immutable snapshot; wallet, venue and position collections reject mutation.
  • Inspected all eight original instruments, directions and decimal USD values and stable sibling IDs. The public service API has only one snapshot read operation. Its response types contain no JavaFX, presentation formatting or exchange dependencies.
  • Parsed the actual ignored conf/NenjimHub.conf against the Hub's constructor catalogue. It includes evelyn.perps.default before EMC.
  • Exercised the Hub's normal constructRegisterAndStartProcess path for only Perps with an isolated Registry. The same object resolved as both EvelynPerpsService and NenjimProcess, returned a populated snapshot and appeared in the Hub's successful-start snapshot.
  • The tracked conf/NenjimHub.conf.example is unchanged. No operational Hub, wallet signer, financial process or exchange integration was started.

Isolated JavaFX runtime inspection

Constructed the actual EMC with empty status-service views, the real Perps sample service behind an instrumented read-only view, and the real JavaFX runtime. All instrumented snapshot calls ran outside the JavaFX thread.

  • Initial retrieval populated both environments with two wallets, four venues and eight positions: 14 expanded rows.
  • Measured the first two scheduled gaps as 2.999846105 and 2.999953679 seconds.
  • Collapsed wallet A and selected a position in wallet B. Repeated polls preserved the same selection and expansion. List/property listeners observed zero tree mutations for unchanged data. Test remained independently expanded.
  • Inspected rendered images for the original column headings, sample/Phoenix notice, USD formatting, faint Long/Short colors and selection styling.
  • Injected one read failure; the following scheduled read recovered and polling continued.
  • Blocked one read and successfully dispatched UI work while it waited; hiding the window interrupted the blocked read and stopped subsequent polling.
  • Reopened EMC and confirmed retained selection. Held an old session's queued completion across hide, emptied the preview's view, then delivered that obsolete completion; it did not repopulate the view.
  • Reopened again and issued repeated start requests while visible. Exactly two additional reads occurred over 6.4 seconds, demonstrating one three-second loop rather than accumulated loops.

Images are temporary local evidence in /tmp/emc96-preview/: expanded.png, collapsed-selected.png, after-polling.png and reopened.png. Inspection exercised actual JavaFX scenes and controls; manual mouse/keyboard use in the operational deployment was not exercised.

Review state

All work remains local, uncommitted and unpushed. The OpenSpec change remains active for owner review; its delta specs have not been archived into the main specs. The new service will autostart on the next normal Hub startup using this deployment's updated local configuration.