Skip to content

feat: resolve issues #975, #981, #985, #992 - #1012

Open
Joel234-png wants to merge 1 commit into
StellarDevHub:mainfrom
Joel234-png:feat/issues-975-981-985-992
Open

feat: resolve issues #975, #981, #985, #992#1012
Joel234-png wants to merge 1 commit into
StellarDevHub:mainfrom
Joel234-png:feat/issues-975-981-985-992

Conversation

@Joel234-png

Copy link
Copy Markdown

#975 [Frontend] Audit app directory routes

  • Add ExperimentalBanner component for work-in-progress routes
  • Add loading.tsx skeleton states to 10 async routes (blog, forum, bridge-tracker, network-streamer, mempool-auction, merkle-tree, chain-reorg, yield-calculator, webrtc, microfrontends)
  • Mark webrtc and microfrontends pages with ExperimentalBanner
  • Add frontend/ROUTES.md documenting all 50+ routes with status, purpose, and loading-state coverage

#981 [Observability] Distributed trace-id propagation

  • Replace executionAsyncId-based correlation with AsyncLocalStorage (traceContext) for true async propagation across Promises, timers, and I/O callbacks
  • requestLogger wraps every request in traceContext.run() so all downstream code (Prisma, Redis, BullMQ) inherits the traceId
  • Every response gets X-Request-ID and X-Correlation-ID headers
  • BullMQ webhook jobs carry traceId in job data; worker runs inside traceContext.run() for correlated job logs
  • Backward-compat shims kept for existing setCorrelationId callers

#985 [Reliability] Idempotency keys for critical endpoints

  • New idempotency middleware (Redis-backed, 24 h TTL, SET NX EX lock)
  • Concurrent duplicate requests receive 409; replays get cached response with X-Idempotency-Replay: true header
  • Applied to: POST /certificates, POST /subscriptions/plans, POST /subscriptions/subscribe, POST /enrollments, POST /webhooks/ingest, POST /webhooks/dispatch, POST /webhooks/subscriptions

#992 [Data] Soroban gradual storage migration pattern

chore: update .gitignore

  • Exclude test snapshots, playwright output, all log files, .db files, PID files, benchmarks/results, contracts/check_output

…Hub#985, StellarDevHub#992

StellarDevHub#975 [Frontend] Audit app directory routes
- Add ExperimentalBanner component for work-in-progress routes
- Add loading.tsx skeleton states to 10 async routes (blog, forum,
  bridge-tracker, network-streamer, mempool-auction, merkle-tree,
  chain-reorg, yield-calculator, webrtc, microfrontends)
- Mark webrtc and microfrontends pages with ExperimentalBanner
- Add frontend/ROUTES.md documenting all 50+ routes with status,
  purpose, and loading-state coverage

StellarDevHub#981 [Observability] Distributed trace-id propagation
- Replace executionAsyncId-based correlation with AsyncLocalStorage
  (traceContext) for true async propagation across Promises, timers,
  and I/O callbacks
- requestLogger wraps every request in traceContext.run() so all
  downstream code (Prisma, Redis, BullMQ) inherits the traceId
- Every response gets X-Request-ID and X-Correlation-ID headers
- BullMQ webhook jobs carry traceId in job data; worker runs inside
  traceContext.run() for correlated job logs
- Backward-compat shims kept for existing setCorrelationId callers

StellarDevHub#985 [Reliability] Idempotency keys for critical endpoints
- New idempotency middleware (Redis-backed, 24 h TTL, SET NX EX lock)
- Concurrent duplicate requests receive 409; replays get cached
  response with X-Idempotency-Replay: true header
- Applied to: POST /certificates, POST /subscriptions/plans,
  POST /subscriptions/subscribe, POST /enrollments,
  POST /webhooks/ingest, POST /webhooks/dispatch,
  POST /webhooks/subscriptions

StellarDevHub#992 [Data] Soroban gradual storage migration pattern
- New contracts/src/storage_migration.rs implementing:
  - StorageVersion field in instance storage
  - Lazy migration: V1 records upgraded to V2 transparently on read
  - Eager migration: admin migrate_batch(keys) for time-sensitive changes
  - pause() / unpause() to prevent writes during batch migration
  - Migration registry (Migrated key per record)
  - Full test suite covering all paths
- Registered module in contracts/src/lib.rs

chore: update .gitignore
- Exclude test snapshots, playwright output, all log files,
  *.db files, PID files, benchmarks/results, contracts/check_output*
@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown

@Joel234-png is attempting to deploy a commit to the Ayomide Adeniran's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jul 28, 2026

Copy link
Copy Markdown

@Joel234-png 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment