Skip to content

feat: continuous aggregates, streaming exports, customizable dashboard grid, SDK mock sandbox harness - #1377

Merged
Mosas2000 merged 5 commits into
StellaBridge:mainfrom
Fuher1:feat/issues-1278-1285-1284-1292
Oct 5, 2026
Merged

Mosas2000 merged 5 commits into
StellaBridge:mainfrom
Fuher1:feat/issues-1278-1285-1284-1292

Conversation

@Fuher1

@Fuher1 Fuher1 commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

Summary of Changes

This pull request addresses and resolves all four requested GitHub issues across backend, frontend, and SDK modules.


1. Database Continuous Aggregates (#1278)

  • Added TimescaleDB continuous aggregate materialized view �ridge_hourly_volume_rollup grouping by time_bucket('1 hour', created_at) and bridge_name AS bridge_id.
  • Added continuous aggregate policy scheduled for every 30 minutes with a 7-day start offset and 1-hour end offset.
  • Added migration rollback and performance index on (bridge_id, bucket DESC) in migration 048_continuous_aggregates_optimizations.ts.
  • Added getBridgeHourlyVolumeRollup query method in AnalyticsService with automatic fallback to raw hypertable transactions.
  • Added comprehensive unit tests in continuousAggregates.service.test.ts.

2. Streaming CSV & JSON Export Downloads (#1285)

  • Implemented streaming file export download via Fetch ReadableStream in ExportPickerDialog.tsx.
  • Added live progress bar tracking downloaded megabytes and dynamic line/row decoding count.
  • Added cancellation support using AbortController.
  • Added unit tests in ExportPickerDialog.test.tsx.

3. Customizable Dashboard Widget Grid (#1284)

  • Implemented customizable dashboard grid allowing widget reordering, moving up/down, and visibility toggling.
  • Added persistent layout storage in localStorage with fallback sync to useUserPreferencesStore.
  • Added DashboardLayoutCustomizer modal and "Customize layout" toolbar action button.
  • Added unit tests in useDashboardLayout.test.ts and Dashboard.test.tsx.

4. SDK Mock Sandbox Harness & Fixtures (#1292)

  • Built offline sandbox client MockBridgeWatchClient in sdk/src/testing.ts.
  • Added deterministic scenario presets: HEALTHY, DEGRADED, CRITICAL_MISMATCH, EMERGENCY_PAUSED, RECOVERY.
  • Implemented ledger advancement, custom event emissions, error triggers, contract simulation, transaction submission, and event subscriptions.
  • Added unit tests in sdk/src/testing.test.ts.

Issue Resolutions

Closes #1278
Closes #1285
Closes #1284
Closes #1292

…ble dashboard grid, SDK mock sandbox harness

- Add bridge_hourly_volume_rollup continuous aggregate and 30m refresh policy (StellaBridge#1278)
- Add streaming CSV & JSON export downloads with live MB/row progress tracking (StellaBridge#1285)
- Implement customizable dashboard widget grid with persistent layout & visibility toggle (StellaBridge#1284)
- Build MockBridgeWatchClient sandbox harness with deterministic scenario presets (StellaBridge#1292)

Closes StellaBridge#1278
Closes StellaBridge#1285
Closes StellaBridge#1284
Closes StellaBridge#1292
@drips-wave

drips-wave Bot commented Sep 27, 2026

Copy link
Copy Markdown

@Fuher1 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Fuher1
Fuher1 force-pushed the feat/issues-1278-1285-1284-1292 branch from 7ea0d9d to 2341769 Compare September 29, 2026 14:28
…r in Dashboard

Dashboard.tsx used both without importing them, throwing a ReferenceError
that tripped the error boundary and blanked the page, failing the Playwright
E2E suite. Also restore the export dialog close icon aria-label to
'Close export dialog' as expected by ui-interactions.spec.ts.
@Mosas2000
Mosas2000 merged commit e7a4f46 into StellaBridge:main Oct 5, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment