Extract Perps sample data into EvelynPerpsService and poll it from EMC #96

Closed
opened 2026-10-19 13:20:56 +02:00 by minimons · 0 comments
Owner

The Perps tab currently displays hardcoded sample data owned by Evelyn Mission Control. Introduce a separate, view-only EvelynPerpsService that owns this data, and have EMC retrieve it automatically.

This establishes the service boundary while preserving the existing UI and behavior.

Scope

  • Create EvelynPerpsService using the project's existing service and process lifecycle patterns.
  • Move the existing hardcoded Perps sample data from EMC into the service implementation.
  • Expose a read operation returning the complete current positions snapshot.
  • Have EMC request the snapshot every three seconds without blocking the UI.
  • Preserve the existing columns, wallet → venue → position hierarchy, row colors, formatting, and sample-data indication.
  • Preserve expanded/collapsed groups and selection across polling cycles. Repeated retrieval of unchanged data must not cause flicker or reset the view.

The service owns position data. EMC owns presentation, including tree-table elements, colors, and formatting. The service response must not contain UI components.

EMC's polling interval is independent of any future integration update interval. Reading the snapshot returns the service's current in-memory data; it must not trigger requests to Jupiter or Phoenix. The hardcoded snapshot remains unchanged for this task.

Structure the snapshot so that wallets, venues, and positions can be consistently identified across responses. Future snapshots may add or remove positions, but implementing or simulating changing data is outside this task.

Polling follows the existing EMC lifecycle conventions and must not accumulate duplicate polling loops when the window is reopened.

Out of scope

  • Real Jupiter or Phoenix integrations.
  • Opening, closing, or modifying positions.
  • Simulated data changes.
  • Stale-data detection or indicators.
  • Refresh buttons or other UI additions.

Acceptance criteria

  • EvelynPerpsService runs as a separate service using the existing project conventions.
  • The existing hardcoded sample positions are owned by the service, not EMC.
  • EMC retrieves the current snapshot from the service every three seconds.
  • Service calls do not block the UI.
  • The Perps tab retains its existing appearance and sample-data indication.
  • Repeated polling preserves expansion state and selection without visible flicker.
  • Reopening EMC does not create duplicate polling loops.
  • Snapshot reads make no requests to Jupiter or Phoenix.
  • The service is view-only and exposes no position-management operations.
The Perps tab currently displays hardcoded sample data owned by Evelyn Mission Control. Introduce a separate, view-only `EvelynPerpsService` that owns this data, and have EMC retrieve it automatically. This establishes the service boundary while preserving the existing UI and behavior. **Scope** - Create `EvelynPerpsService` using the project's existing service and process lifecycle patterns. - Move the existing hardcoded Perps sample data from EMC into the service implementation. - Expose a read operation returning the complete current positions snapshot. - Have EMC request the snapshot every three seconds without blocking the UI. - Preserve the existing columns, wallet → venue → position hierarchy, row colors, formatting, and sample-data indication. - Preserve expanded/collapsed groups and selection across polling cycles. Repeated retrieval of unchanged data must not cause flicker or reset the view. The service owns position data. EMC owns presentation, including tree-table elements, colors, and formatting. The service response must not contain UI components. EMC's polling interval is independent of any future integration update interval. Reading the snapshot returns the service's current in-memory data; it must not trigger requests to Jupiter or Phoenix. The hardcoded snapshot remains unchanged for this task. Structure the snapshot so that wallets, venues, and positions can be consistently identified across responses. Future snapshots may add or remove positions, but implementing or simulating changing data is outside this task. Polling follows the existing EMC lifecycle conventions and must not accumulate duplicate polling loops when the window is reopened. **Out of scope** - Real Jupiter or Phoenix integrations. - Opening, closing, or modifying positions. - Simulated data changes. - Stale-data detection or indicators. - Refresh buttons or other UI additions. **Acceptance criteria** - `EvelynPerpsService` runs as a separate service using the existing project conventions. - The existing hardcoded sample positions are owned by the service, not EMC. - EMC retrieves the current snapshot from the service every three seconds. - Service calls do not block the UI. - The Perps tab retains its existing appearance and sample-data indication. - Repeated polling preserves expansion state and selection without visible flicker. - Reopening EMC does not create duplicate polling loops. - Snapshot reads make no requests to Jupiter or Phoenix. - The service is view-only and exposes no position-management operations.
minimons added the enhancement label 2026-10-19 13:20:56 +02:00
minimons self-assigned this 2026-10-19 13:20:56 +02:00
minimons added this to the Evelyn project 2026-10-19 13:20:56 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: r35157/com_r35157_nenjim-hubd-impl_ref#96