Skip to content

Open422 - #550

Open
talktosam2003 wants to merge 3 commits into
OpenLedger-Foundation:mainfrom
talktosam2003:open422
Open

Open422#550
talktosam2003 wants to merge 3 commits into
OpenLedger-Foundation:mainfrom
talktosam2003:open422

Conversation

@talktosam2003

Copy link
Copy Markdown
Contributor

close #422
I Replaced in-memory upload rate limiting with Redis store on this issue

semantic-release-bot and others added 3 commits July 28, 2026 12:12
# 1.0.0 (2026-07-28)

### Bug Fixes

* add pt-BR locale support and fix missing env/middleware references ([f9307ae](f9307ae))
* **ci:** green CI gates for invoice SEO PR ([34d2662](34d2662))
* **ci:** green CI gates for marketplace prefetch PR ([1530afb](1530afb))
* **ci:** green CI gates for portfolio allocation PR ([c25fd5c](c25fd5c))
* **ci:** green CI gates for testnet USDC faucet PR ([9ec9f5f](9ec9f5f))
* **ci:** repair print CSS escape and soften broken suite gates ([8236ae3](8236ae3))
* **ci:** sync package.json next/axios with lockfile ([9e56eb6](9e56eb6))
* **ci:** unblock CI for marketplace prefetch PR ([5691679](5691679))
* **ci:** unblock CI for testnet USDC faucet PR ([3af28d6](3af28d6))
* **dashboard:** implement responsive multi-panel layout for SME and investor dashboards ([4062aac](4062aac))
* **dashboard:** memoize positionsData to clear exhaustive-deps lint warning ([c070a03](c070a03))
* make lint-staged type-check read tsconfig.json again ([64b51f7](64b51f7))
* move themeColor to viewport export and fix JSX in translation calls ([495c102](495c102))
* remove duplicate MOCK_INVOICES export, docs restructure  and convert forbidden next/dynamic ssr=false imports to client components ([35b851f](35b851f))
* resolve all ESLint hook warnings — useMemo, useCallback, aria roles ([d844b60](d844b60))
* resolve build errors — duplicate export, broken JSON, missing imports ([cca1341](cca1341))
* resolve issue [OpenLedger-Foundation#2](https://github.com/talktosam2003/Kora-Frontend/issues/2) — improve invoice creation wizard UX flow ([2fc869c](2fc869c))
* resolve issue [OpenLedger-Foundation#3](https://github.com/talktosam2003/Kora-Frontend/issues/3) — design marketplace listing and invoice detail pages ([331084d](331084d))
* resolve issues [OpenLedger-Foundation#186](https://github.com/talktosam2003/Kora-Frontend/issues/186), [OpenLedger-Foundation#187](https://github.com/talktosam2003/Kora-Frontend/issues/187), [OpenLedger-Foundation#190](https://github.com/talktosam2003/Kora-Frontend/issues/190), [OpenLedger-Foundation#223](https://github.com/talktosam2003/Kora-Frontend/issues/223) ([cf9e5b7](cf9e5b7))
* resolve issues [OpenLedger-Foundation#191](https://github.com/talktosam2003/Kora-Frontend/issues/191) [OpenLedger-Foundation#193](https://github.com/talktosam2003/Kora-Frontend/issues/193) [OpenLedger-Foundation#196](https://github.com/talktosam2003/Kora-Frontend/issues/196) [OpenLedger-Foundation#198](https://github.com/talktosam2003/Kora-Frontend/issues/198) ([edba15a](edba15a))
* resolve issues [OpenLedger-Foundation#212](https://github.com/talktosam2003/Kora-Frontend/issues/212), [OpenLedger-Foundation#214](https://github.com/talktosam2003/Kora-Frontend/issues/214), [OpenLedger-Foundation#216](https://github.com/talktosam2003/Kora-Frontend/issues/216), [OpenLedger-Foundation#218](https://github.com/talktosam2003/Kora-Frontend/issues/218) ([45b223d](45b223d))
* resolve merge conflicts with upstream/main ([c5ac024](c5ac024))
* resolve upstream merge and type errors blocking production build ([f768625](f768625))
* resolve upstream merge and type errors blocking production build ([3d3e2cb](3d3e2cb))
* resolve upstream merge and type errors blocking production build ([eae8f32](eae8f32))
* resolve upstream merge and type errors blocking production build ([7bdc6dc](7bdc6dc))
* **security:** bind upload pinning to cryptographically verified wallet session ([29481fc](29481fc))
* **security:** enforce CSRF verification on upload and vitals mutation routes ([83e8610](83e8610))
* **security:** nonce-based script-src CSP and add mainnet RPC to connect-src ([9ce2149](9ce2149))
* **security:** reject dangerous URL schemes in IPFS metadata sanitization ([69fdf92](69fdf92))
* stabilize CI unit and Playwright checks ([6643524](6643524))
* sync package-lock.json so npm ci succeeds in CI ([f20db5d](f20db5d))
* unblock CI for invoice SEO PR ([8529b50](8529b50))
* use separate hook instances in prefetch concurrency test ([29cc1a8](29cc1a8))

### Features

* **accessibility:** add screen-reader announcements for transaction toasts ([08b8b78](08b8b78)), closes [OpenLedger-Foundation#441](https://github.com/talktosam2003/Kora-Frontend/issues/441)
* **accessibility:** build shortcutreferencemodal with searchable shortcut list ([be65efe](be65efe)), closes [OpenLedger-Foundation#480](https://github.com/talktosam2003/Kora-Frontend/issues/480)
* **accessibility:** fix axe violations on analytics and transactions routes ([2e712ed](2e712ed))
* **accessibility:** implement keyboard-navigable marketplace filter panel ([20ffd68](20ffd68)), closes [OpenLedger-Foundation#440](https://github.com/talktosam2003/Kora-Frontend/issues/440)
* add command palette (Cmd+K) and changelog modal ([4af3a8f](4af3a8f)), closes [OpenLedger-Foundation#117](https://github.com/talktosam2003/Kora-Frontend/issues/117) [OpenLedger-Foundation#114](https://github.com/talktosam2003/Kora-Frontend/issues/114)
* add components ([834823b](834823b))
* add devtools coverage and runtime flags ([a47e123](a47e123))
* add environment variable validation on startup ([46ca764](46ca764))
* add i18n (EN/ES) and transaction simulation preview ([8f8b19f](8f8b19f)), closes [OpenLedger-Foundation#113](https://github.com/talktosam2003/Kora-Frontend/issues/113) [OpenLedger-Foundation#112](https://github.com/talktosam2003/Kora-Frontend/issues/112) [OpenLedger-Foundation#113](https://github.com/talktosam2003/Kora-Frontend/issues/113) [OpenLedger-Foundation#112](https://github.com/talktosam2003/Kora-Frontend/issues/112)
* add invoice risk score gauge visualization ([658157a](658157a))
* add invoice wizard E2E tests, WebVitals dev overlay shortcut, reduced-motion support, and Husky pre-commit hooks ([OpenLedger-Foundation#230](https://github.com/talktosam2003/Kora-Frontend/issues/230) [OpenLedger-Foundation#231](https://github.com/talktosam2003/Kora-Frontend/issues/231) [OpenLedger-Foundation#295](https://github.com/talktosam2003/Kora-Frontend/issues/295) [OpenLedger-Foundation#297](https://github.com/talktosam2003/Kora-Frontend/issues/297)) ([cc3f2b4](cc3f2b4))
* add pt-BR locale, wallet session expiry, sanitizeInput, and env-driven resource hints ([c52ab46](c52ab46)), closes [OpenLedger-Foundation#292](https://github.com/talktosam2003/Kora-Frontend/issues/292) [OpenLedger-Foundation#267](https://github.com/talktosam2003/Kora-Frontend/issues/267) [OpenLedger-Foundation#261](https://github.com/talktosam2003/Kora-Frontend/issues/261) [OpenLedger-Foundation#260](https://github.com/talktosam2003/Kora-Frontend/issues/260)
* add route-level code splitting ([OpenLedger-Foundation#253](https://github.com/talktosam2003/Kora-Frontend/issues/253)) and service worker static asset caching ([OpenLedger-Foundation#255](https://github.com/talktosam2003/Kora-Frontend/issues/255)) ([bab73ef](bab73ef))
* add scripts/seed-testnet.ts for local testnet data seeding ([c6ca500](c6ca500)), closes [OpenLedger-Foundation#310](https://github.com/talktosam2003/Kora-Frontend/issues/310)
* add SEO routes, feature flags, Docker setup, and bundle size tracking ([2527a18](2527a18)), closes [OpenLedger-Foundation#305](https://github.com/talktosam2003/Kora-Frontend/issues/305) [OpenLedger-Foundation#308](https://github.com/talktosam2003/Kora-Frontend/issues/308) [OpenLedger-Foundation#301](https://github.com/talktosam2003/Kora-Frontend/issues/301) [OpenLedger-Foundation#306](https://github.com/talktosam2003/Kora-Frontend/issues/306)
* Add Snapshot Tests for All Storybook Stories ([4ec276d](4ec276d))
* add test coverage reporting to CI workflow ([10b0782](10b0782))
* add testnet contract configuration support ([0004a43](0004a43))
* add testnet funding via friendbot and faucet ([90202d9](90202d9))
* add user-facing VirusTotal rejection reason parser for upload flow ([9e2f169](9e2f169))
* add wallet disconnect cleanup and confirmation ([68e04a8](68e04a8))
* add Web Vitals monitoring and portfolio composition donuts ([1367117](1367117)), closes [OpenLedger-Foundation#139](https://github.com/talktosam2003/Kora-Frontend/issues/139) [OpenLedger-Foundation#159](https://github.com/talktosam2003/Kora-Frontend/issues/159)
* all issues resolved ([e87a5df](e87a5df))
* all task is resolved ([933fa64](933fa64))
* **analytics:** add portfolio allocation breakdown from live positions ([d309d1d](d309d1d)), closes [OpenLedger-Foundation#390](https://github.com/talktosam2003/Kora-Frontend/issues/390)
* **analytics:** implement analytics date-range filter bar with query sync - Add 1y preset to DateRangePicker (7d/30d/90d/1y/YTD/All) - Add invalid range validation in custom date picker (from > to shows error) - Fix duplicate positionsQuery declaration that caused a compile error - Remove unused range/setRange state; filters.dateRange drives all slices - Persist custom date range (from/to) in URL search params and restore on load - sliceByRange covers 1y (full 12-month dataset) and handles unknown keys - filtersFromParams validates custom range and falls back to default if invalid Closes [OpenLedger-Foundation#388](https://github.com/talktosam2003/Kora-Frontend/issues/388) ([28252d3](28252d3))
* **analytics:** wire portfolio CSV/PDF export to live filtered positions ([7a6739e](7a6739e)), closes [OpenLedger-Foundation#387](https://github.com/talktosam2003/Kora-Frontend/issues/387)
* **api:** add Pinata proxy route with rate limiting, PDF validation, and optional VirusTotal; route IPFS uploads through API; update services ([c1d2a44](c1d2a44))
* **auth:** add wallet ownership verification system ([aa13ad0](aa13ad0))
* Complete all 7 dashboard & onboarding features ([e8d06eb](e8d06eb))
* CSRF protection, Navbar selector optimisation, Suspense boundaries, SVG single-pass ([17ccf46](17ccf46)), closes [OpenLedger-Foundation#265](https://github.com/talktosam2003/Kora-Frontend/issues/265) [OpenLedger-Foundation#259](https://github.com/talktosam2003/Kora-Frontend/issues/259) [OpenLedger-Foundation#258](https://github.com/talktosam2003/Kora-Frontend/issues/258) [OpenLedger-Foundation#256](https://github.com/talktosam2003/Kora-Frontend/issues/256)
* **dashboard:** add skeleton loading states to investor dashboard ([4ef9747](4ef9747)), closes [OpenLedger-Foundation#207](https://github.com/talktosam2003/Kora-Frontend/issues/207)
* **documentation:** add contributor quick-start guide for stellar wave participants ([ea85731](ea85731)), closes [OpenLedger-Foundation#482](https://github.com/talktosam2003/Kora-Frontend/issues/482)
* EmptyState variants, comparison wiring, settings persistence, flag icons ([01c989d](01c989d))
* enhance accessibility and i18n support with focus traps, validation messages, ([ca11d48](ca11d48))
* env validation, upload signing, error boundaries, X-Request-ID ([OpenLedger-Foundation#269](https://github.com/talktosam2003/Kora-Frontend/issues/269) [OpenLedger-Foundation#275](https://github.com/talktosam2003/Kora-Frontend/issues/275) [OpenLedger-Foundation#276](https://github.com/talktosam2003/Kora-Frontend/issues/276) [OpenLedger-Foundation#277](https://github.com/talktosam2003/Kora-Frontend/issues/277)) ([bc53379](bc53379))
* feedback widget and global keyboard shortcuts ([fbf4ae3](fbf4ae3)), closes [OpenLedger-Foundation#115](https://github.com/talktosam2003/Kora-Frontend/issues/115) [OpenLedger-Foundation#116](https://github.com/talktosam2003/Kora-Frontend/issues/116)
* **frontend:** improve investor discovery flows ([34c4fdf](34c4fdf))
* **hero:** add animated landing page hero and live stats ([255c5bb](255c5bb))
* Implement 4 frontend issues simultaneously ([5d2582f](5d2582f)), closes [OpenLedger-Foundation#143](https://github.com/talktosam2003/Kora-Frontend/issues/143) [OpenLedger-Foundation#129](https://github.com/talktosam2003/Kora-Frontend/issues/129) [OpenLedger-Foundation#146](https://github.com/talktosam2003/Kora-Frontend/issues/146) [OpenLedger-Foundation#142](https://github.com/talktosam2003/Kora-Frontend/issues/142) [OpenLedger-Foundation#143](https://github.com/talktosam2003/Kora-Frontend/issues/143) [OpenLedger-Foundation#129](https://github.com/talktosam2003/Kora-Frontend/issues/129) [OpenLedger-Foundation#146](https://github.com/talktosam2003/Kora-Frontend/issues/146) [OpenLedger-Foundation#142](https://github.com/talktosam2003/Kora-Frontend/issues/142)
* implement issues [OpenLedger-Foundation#192](https://github.com/talktosam2003/Kora-Frontend/issues/192), [OpenLedger-Foundation#194](https://github.com/talktosam2003/Kora-Frontend/issues/194), [OpenLedger-Foundation#195](https://github.com/talktosam2003/Kora-Frontend/issues/195), [OpenLedger-Foundation#202](https://github.com/talktosam2003/Kora-Frontend/issues/202) ([e78c280](e78c280))
* implement marketplace virtual scrolling ([OpenLedger-Foundation#251](https://github.com/talktosam2003/Kora-Frontend/issues/251)) and add error boundary tests ([OpenLedger-Foundation#250](https://github.com/talktosam2003/Kora-Frontend/issues/250)) ([13752d5](13752d5))
* implement notification preferences settings ([OpenLedger-Foundation#122](https://github.com/talktosam2003/Kora-Frontend/issues/122)) ([ef4a7f5](ef4a7f5))
* implement SME/Investor dashboards, analytics CSV & wallet flows ([9df88cd](9df88cd))
* Implement VerificationProvider wallet signature challenge ([d3c5ee4](d3c5ee4))
* implement wallet modal, copy utility, funding progress bar, and marketplace search ([OpenLedger-Foundation#45](https://github.com/talktosam2003/Kora-Frontend/issues/45) [OpenLedger-Foundation#47](https://github.com/talktosam2003/Kora-Frontend/issues/47) [OpenLedger-Foundation#29](https://github.com/talktosam2003/Kora-Frontend/issues/29) [OpenLedger-Foundation#49](https://github.com/talktosam2003/Kora-Frontend/issues/49)) ([8bb7189](8bb7189))
* improve accessibility, storage resilience, and transaction history ([d03ab0e](d03ab0e))
* integrate yield calculator, batch toolbar, filter chips, PWA install prompt ([a5d0764](a5d0764))
* investor yield claim flow ([OpenLedger-Foundation#61](https://github.com/talktosam2003/Kora-Frontend/issues/61)) and debounce/throttle hooks ([OpenLedger-Foundation#68](https://github.com/talktosam2003/Kora-Frontend/issues/68)) ([5216e7c](5216e7c))
* invoice NFT metadata v1 schema + Lighthouse optimization ([c63bbba](c63bbba)), closes [OpenLedger-Foundation#121](https://github.com/talktosam2003/Kora-Frontend/issues/121) [OpenLedger-Foundation#125](https://github.com/talktosam2003/Kora-Frontend/issues/125)
* invoice state machine refactor with transition buttons and cancel dialog tests ([5fc0a13](5fc0a13))
* **invoice-lifecycle:** complete live createinvoice mint pipeline on testnet - Add infinite query key to queryKeys for marketplace cache invalidation - Add per-stage progress UI (IPFS pin vs on-chain mint) with stage indicators - Invalidate marketplace infinite/all cache after successful mint so new invoice appears immediately on /marketplace without manual refresh - Progress callbacks drive uploadStage state (ipfs → chain → done) Closes [OpenLedger-Foundation#379](https://github.com/talktosam2003/Kora-Frontend/issues/379) ([6a70e30](6a70e30))
* **invoice:** implement step 3 wizard with file validation, IPFS uploads, and minting status ([d6d673e](d6d673e))
* **invoice:** implement wizard step 2 financing terms form & live preview. Closes [OpenLedger-Foundation#13](https://github.com/talktosam2003/Kora-Frontend/issues/13) ([b635555](b635555))
* **ipfs:** migrate all pinata uploads to server-side api route ([16d58fd](16d58fd))
* **ipfs:** resilient IPFS layer — gateway fallback, CID integrity, metadata versioning, Pinata degradation UX ([b08a796](b08a796)), closes [OpenLedger-Foundation#392](https://github.com/talktosam2003/Kora-Frontend/issues/392) [OpenLedger-Foundation#393](https://github.com/talktosam2003/Kora-Frontend/issues/393) [OpenLedger-Foundation#393](https://github.com/talktosam2003/Kora-Frontend/issues/393) [OpenLedger-Foundation#392](https://github.com/talktosam2003/Kora-Frontend/issues/392) [OpenLedger-Foundation#394](https://github.com/talktosam2003/Kora-Frontend/issues/394)
* Kora Protocol on-chain invoice financing frontend ([7f46caf](7f46caf))
* kora-frontend issues is done ([f25e760](f25e760))
* **marketplace:** add marketplace prefetch strategy for invoice detail navigation ([44ce5bd](44ce5bd)), closes [OpenLedger-Foundation#378](https://github.com/talktosam2003/Kora-Frontend/issues/378)
* **marketplace:** build server-side SEO for invoice detail pages ([eb762bc](eb762bc)), closes [OpenLedger-Foundation#375](https://github.com/talktosam2003/Kora-Frontend/issues/375)
* **marketplace:** enable invoice comparison feature behind feature flag ([64d9964](64d9964)), closes [OpenLedger-Foundation#373](https://github.com/talktosam2003/Kora-Frontend/issues/373)
* **marketplace:** implement advanced marketplace filter persistence and deep linking ([4f01b60](4f01b60)), closes [OpenLedger-Foundation#483](https://github.com/talktosam2003/Kora-Frontend/issues/483)
* **marketplace:** implement advanced marketplace filter persistence and deep linking - Import and render ActiveFilterChips below the search/sort bar when any filter is active — chips sync with URL via the existing Zustand↔URL loop - Clear-all on chips calls resetFilters() which zeroes the store; the debounced URL sync effect then strips all params from the address bar - Mobile bottom sheet already shares renderFiltersList() so all filter controls are at full parity between mobile and desktop Closes [OpenLedger-Foundation#377](https://github.com/talktosam2003/Kora-Frontend/issues/377) ([f7115e2](f7115e2))
* **marketplace:** implement core filters, skeleton loading, and url sync ([d795ddc](d795ddc))
* **marketplace:** implement marketplace infinite scroll with indexer pagination ([8d76e3a](8d76e3a)), closes [OpenLedger-Foundation#374](https://github.com/talktosam2003/Kora-Frontend/issues/374)
* **marketplace:** integrate invoice detail page and mock transaction pipeline ([25f33b6](25f33b6)), closes [OpenLedger-Foundation#16](https://github.com/talktosam2003/Kora-Frontend/issues/16)
* **observability:** add query cache rules and performance workflow ([5c77fba](5c77fba))
* optimize wallet logos, dynamic OG tags, structured API logging, and semantic release ([8a0c41c](8a0c41c))
* **perf:** image optimization, asset pipeline, and wallet SVG logos ([484a075](484a075))
* **performance:** add web vitals regression gate in ci ([f8ca527](f8ca527))
* **performance:** optimize ipfs invoice svg previews for lcp ([9bcf251](9bcf251))
* **performance:** tune tanstack query stale times per network mode ([e2d9e62](e2d9e62))
* persist TanStack Query invoice cache to IndexedDB with stale/last-sync tracking ([a1da54e](a1da54e))
* **pwa:** audit pwa cache exclusions for wallet and tx routes ([55eac6f](55eac6f))
* queue signed XDR drafts in IndexedDB for offline resubmission ([9aea95e](9aea95e))
* route-based code splitting, responsive marketplace mobile UX, optimistic invoice funding, and system dark mode support ([a708422](a708422))
* search invoices in command palette by debtor, token ID, or amount ([c1e0631](c1e0631)), closes [OpenLedger-Foundation#213](https://github.com/talktosam2003/Kora-Frontend/issues/213)
* **secondary-market:** design secondary market listing ui for invoice positions ([1e0777b](1e0777b)), closes [OpenLedger-Foundation#442](https://github.com/talktosam2003/Kora-Frontend/issues/442)
* **secondary-market:** implement transfer_position soroban contract integration ([aadcdd7](aadcdd7)), closes [OpenLedger-Foundation#443](https://github.com/talktosam2003/Kora-Frontend/issues/443)
* set up Playwright component testing for key UI primitives ([OpenLedger-Foundation#249](https://github.com/talktosam2003/Kora-Frontend/issues/249)) ([8224b98](8224b98))
* **share:** canonical token-id deep links, post-mint CTA, PNG OG ([59d0a2e](59d0a2e)), closes [OpenLedger-Foundation#383](https://github.com/talktosam2003/Kora-Frontend/issues/383)
* **sme:** enable batch cancel/repay with sequential tx queue ([cc784f6](cc784f6)), closes [OpenLedger-Foundation#382](https://github.com/talktosam2003/Kora-Frontend/issues/382)
* Soroban contract event subscription + invoice comparison ([OpenLedger-Foundation#119](https://github.com/talktosam2003/Kora-Frontend/issues/119), [OpenLedger-Foundation#120](https://github.com/talktosam2003/Kora-Frontend/issues/120)) ([5e20f95](5e20f95))
* **soroban:** implement live invoice listing via soroban event indexer ([e9bb445](e9bb445))
* **soroban:** replace contract event polling with streaming subscription ([e372994](e372994)), closes [OpenLedger-Foundation#368](https://github.com/talktosam2003/Kora-Frontend/issues/368)
* stabilize production build and harden validations ([aef4a6e](aef4a6e))
* systematic lazy loading for wallet kit, Recharts, Stellar SDK, and pdf export ([6340129](6340129))
* tooltip component, print/export, and advanced analytics filters ([66dac25](66dac25))
* track InstallPrompt install/dismiss analytics with SME/investor cohorts ([12cc5e7](12cc5e7))
* transaction lifecycle, IPFS progress, invoice store, and query hooks ([f74a851](f74a851))
* **tx:** add simulation preview to claim and map Soroban errors ([828ec3b](828ec3b)), closes [OpenLedger-Foundation#385](https://github.com/talktosam2003/Kora-Frontend/issues/385)
* type-safe contract client, responsive navbar, GlassCard, and RiskBadge components ([ee9f378](ee9f378))
* **ui:** implement data-table component for sme invoice management ([d0d250e](d0d250e)), closes [OpenLedger-Foundation#481](https://github.com/talktosam2003/Kora-Frontend/issues/481)
* **wallet:** add testnet USDC faucet flow for investor onboarding ([b8cd7c5](b8cd7c5)), closes [OpenLedger-Foundation#371](https://github.com/talktosam2003/Kora-Frontend/issues/371)
* **wallet:** complete wallet ownership verification challenge flow ([10a5229](10a5229))
* **wallet:** implement wallet session re-establishment after page refresh ([3ac4c43](3ac4c43))
- Add lib/redis.ts: Redis client singleton (ioredis) with in-memory
  fallback for dev/test when REDIS_URL is unset
- Add lib/rateLimiter.ts: distributed fixed-window rate limiter using
  Redis INCR+EXPIRE; keys scoped by scope:identifier:windowBucket
- Update app/api/upload/route.ts: replace in-memory Maps with
  checkIpRateLimit() and checkWalletRateLimit() from lib/rateLimiter
- All 429 responses include Retry-After header (seconds until window resets)
- Graceful degradation: Redis errors allow the request through and log
- Update __tests__/uploadRateLimit.test.ts: mock Redis via vi.mock on
  lib/rateLimiter; add MemoryRedisClient unit tests (11 tests, all pass)
- Document REDIS_URL and REDIS_TLS_URL in .env.example
- Add ioredis@5.4.2 as a direct dependency
- Remove std-env override that was incompatible with vitest@4.1.9

Closes #
@drips-wave

drips-wave Bot commented Jul 30, 2026

Copy link
Copy Markdown

@talktosam2003 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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace in-memory upload rate limiting with Redis store

2 participants