feat(frontend): add useBridgeStats telemetry tracking - #905
Conversation
…thony-19/Stellar-Dex-Chat into add-Foundry-deployment-script
… short-lived entries
…m/emarc99/Stellar-Dex-Chat into fix/transfer_admin_validation_bug
…iling ttl extension
…-net#294, leojay-net#301 - fix(contract): emit event in set_operator for off-chain monitoring (leojay-net#390) - feat(frontend): add CSV export to ReceiptDrawer with accessible button (leojay-net#391) - feat(frontend): add Zod validation schemas for all API route inputs (leojay-net#294) - fix(frontend): deduplicate chat history entries on page reload (leojay-net#301) Changes: - Added event emission in set_operator function with EVENT_VERSION - Implemented CSV export functionality in ReceiptDrawer with proper escaping - Created apiSchemas.ts with Zod schemas for create-recipient, initiate-transfer, and verify-account - Updated all API routes to use Zod validation with structured error responses - Added deduplicateSessions method to ChatHistoryManager - Updated loadFromLocalStorage to deduplicate sessions on load - Updated createNewSession to deduplicate before saving - Added unit tests for deduplication logic - Fixed duplicate section in ChatHistorySidebar All tests passing, lint checks clean.
- Change error.errors to error.issues (correct Zod API) - Fix TransactionAmountDisplay import (named export) - Update CSV export to use correct TransactionHistoryEntry properties - Remove duplicate imports in ReceiptDrawer
…196-187 feat: add split-view comparison, advanced search, and markdown hardening
…y-consent-toggle feat(frontend): add telemetry consent toggle in user settings
…draft-messages feat(frontend): persist chat drafts with 500ms debounce
…r-rate-limit-utility-module test(lib): add unit tests for rateLimit utility
fix(contract): prevent ReceiptIndex from using persistent storage for…
…es-390-391-294-301 Fix: Combined Fixes for Issues leojay-net#390, leojay-net#391, leojay-net#294, leojay-net#301
…idation_bug Fix: Admin Transfer Validation & Test Stability
Repo Avatar
Feat/chat telemetry
…ontrast feat(frontend): add accessible contrast to transaction filter chips
…t#521 leojay-net#522 feat(frontend): add auto-scroll behavior to TransactionAmountDisplay (leojay-net#522) - Attach a containerRef to the wrapper div - useEffect scrolls the element into view (smooth, nearest) whenever displayText changes, keeping the latest amount visible without manual scrolling - Add two new unit tests: scroll on mount and scroll on displayText change feat(frontend): add accessible color contrast telemetry to chatTelemetry (leojay-net#521) - Add avatar_color_check to ChatEventName union - Expose chatTelemetry.avatarColorCheck() public method that emits the new event with the payload enriched by withAccessibleAvatarContrast (contrast ratio, compliant flag, accessible text color) - Add four unit tests covering compliant dark/light backgrounds, consent guard, and enriched payload shape fix(frontend): resolve race condition in CCIPBridgeModal (leojay-net#520) - Introduce transactionHashRef kept in sync with transactionHash state so pollTransferStatus always reads the latest hash without closing over a stale value - Pass an abort signal object into each poll invocation; cleanup sets signal.aborted = true so in-flight async calls cannot mutate state after the modal closes or the effect re-runs - Add two regression tests: no state update after modal closes mid-poll, and stale slow response does not overwrite a faster terminal response docs: improve inline documentation for timelock role check (leojay-net#519) - Add full JSDoc to queue_admin_action explaining the admin role check, timelock enforcement, arguments, return value, and error variants - Add full JSDoc to execute_admin_action covering the role check rationale, off-by-one boundary semantics, arguments, and error variants - Expand set_operator docs with a dedicated 'Role separation (timelock role check)' section explaining why admin/operator must stay separate, the two boundary checks (fix leojay-net#525), and all error variants Closes leojay-net#519 Closes leojay-net#520 Closes leojay-net#521 Closes leojay-net#522
…0-521-522 feat/fix/docs: resolve issues leojay-net#519 leojay-net#520 leojay-net#521 leojay-net#522
- Add integration test for MigrationCheckEvent emission in validate_withdrawal_quota - Test verifies event is emitted when storage_version < ESCROW_STORAGE_VERSION - Closes leojay-net#510
…ch-withdrawal feat(contract): implement migration check for validate_withdrawal_quota
- Add Cmd/Ctrl+N for new chat - Add Cmd/Ctrl+H for open history - Add Cmd/Ctrl+B for open bridge modal - Add Cmd/Ctrl+Shift+C for cancel request - Add comprehensive unit tests for all keyboard shortcuts - Ensure no regressions in existing functionality Closes leojay-net#561
…rd-shortcuts feat(frontend): add keyboard shortcuts to ChatInput.tsx
- Add smooth modal entrance/exit animations with backdrop blur - Implement step-by-step slide transitions between form steps - Add animated loading states, error messages, and success indicators - Include beneficiary dropdown and save prompt animations - Animate transfer timeline and status updates - Use AnimatePresence for proper animation lifecycle management Issue: leojay-net#556
…ortcuts Feat/556 add framer-motion animation
…-527-multi-issue fix(frontend): resolve race condition in useChat.ts (leojay-net#530)
…work-status-toast feat(frontend): add network status toast to AuditTable
- Add detailed Rustdoc comments for set_limit_max_cap, get_set_limit_max_cap, and SetLimitMaxCapEvent - Clarify that the global cap prevents future set_limit calls from exceeding the ceiling - Note that existing token limits are not retroactively reduced - Update FIAT_BRIDGE_README.md to include the new admin functions - Improve DataKey::SetLimitMaxCap documentation Closes leojay-net#552
…-limit-docs docs: improve inline documentation for maximum cap limit
|
Payment / contact note for bounty payout: I am based in mainland China and Stripe onboarding may not be available for me. If this PR is accepted for the bounty, PayPal would be the preferred payout method: hooqee@126.com. Contact email: chaoqiang.tian@gmail.com Please let me know which payout route is supported. |
|
CI follow-up after the latest run: I cleaned up the explicit-any lint errors in the touched chatTelemetry test file and pushed that to the PR branch. The remaining CI failures appear unrelated to this PR:
Local validation for this PR still passes:
|
Summary
Closes #586
Validation