Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
e189033
fix: replace index-based list keys with stable currency ids in rates …
temisan0x Apr 23, 2026
6984844
Fix unstable keys in mint rates list
temisan0x Apr 23, 2026
6480547
fix: standardize back navigation to prevent unintentional app shell e…
1sraeliteX Apr 23, 2026
be143d5
F-050: Strong burn form validation and dependency fix
Apr 23, 2026
d0acd9e
Fix TypeScript implicit any errors
Apr 23, 2026
23a5b93
fix(reserves): add unit explanation tooltips linking to RESERVE_MANAG…
DevSolex Apr 23, 2026
09bf9a9
feat: standardize money errors using useApiError hook and align ESLint
N-thnI Apr 23, 2026
a6a6c91
feat: add savings dashboard with deposit and withdrawal pages
BigJohn-dev Apr 23, 2026
3f8d824
fix: add aria-label to mobile nav icon links
dev-RAM11 Apr 23, 2026
30d9a1b
Fix: create a fallback error boundary component
Biokes Apr 23, 2026
a5de5ff
Added global API request timeout with configurable deadline
keljoshX Apr 23, 2026
0b996dd
Fix signup passcode policy and add strength meter
Johnpii1 Apr 23, 2026
14186d6
Merge pull request #1 from Johnpii1/codex/fix-weak-signup-passcode-en…
Johnpii1 Apr 23, 2026
a1e633a
create lending application api
Cofez Apr 23, 2026
a91b24a
send sucess dialog
Apr 23, 2026
552fce4
F-060 — Performance: send page callbacks not memoized
A5cend-dev Apr 23, 2026
05e8350
fix(savings): lock withdraw recipient and require explicit change con…
pchieneye Apr 23, 2026
75276dc
currency page simulation
Cofez Apr 23, 2026
eb3d663
Added the warning in layout
GauravKarakoti Apr 23, 2026
ecb6c29
Update app/layout.tsx
GauravKarakoti Apr 23, 2026
6013433
fix: remove API key from sessionStorage to prevent XSS attacks
coderchris1234 Apr 23, 2026
5e62f4c
feat: add comprehensive help center page
coderchris1234 Apr 23, 2026
98db608
docs: add help page implementation summary
coderchris1234 Apr 23, 2026
ab83c5b
fix: address code review security issues
coderchris1234 Apr 23, 2026
7b1538a
fix: improve signin security and passcode handling
coderchris1234 Apr 23, 2026
44ce45a
fix: address additional code review issues
coderchris1234 Apr 23, 2026
a5bd281
fix: handle network errors gracefully in session validation
coderchris1234 Apr 23, 2026
d1d4f93
fix(deps): remove duplicate stellar-sdk, keep only @stellar/stellar-sdk
DavisVT Apr 23, 2026
f13d1cc
fix(me): bind KYC badge to live kyc_status from /users/me
senmalong Apr 24, 2026
26ed66d
F-027: Lock savings withdraw recipient to resolved user with explicit…
pchieneye Apr 24, 2026
2cb0a5c
Merge branch 'main' into main
A5cend-dev Apr 24, 2026
844a555
F-017: Fix SME CTA route and activate application mailto flow
pchieneye Apr 24, 2026
e295c03
fix: remove mock savings account constants, derive balance from API only
code-0-stella Apr 24, 2026
fe6bea9
F-022: Add security settings management UI with sessions and API keys
pchieneye Apr 24, 2026
c70e1fa
fix: wire savings deposit dialog to API and show pending/completed st…
code-0-stella Apr 24, 2026
503babf
fix(security): add strict CSP via nonce middleware — F-064
senmalong Apr 24, 2026
d4f8e69
Merge branch 'main' into main
blockchainrafik Apr 24, 2026
c0d7e98
fixed currency page
Cofez Apr 24, 2026
e2eb862
Resolved currency page
Cofez Apr 24, 2026
c3ca064
Merge branch 'main' into fix/unstable-list-keys
Junman140 Apr 24, 2026
70abe5d
Merge pull request #243 from temisan0x/fix/unstable-list-keys
Junman140 Apr 25, 2026
77f97f3
Merge pull request #244 from 1sraeliteX/fix/220-back-navigation-pattern
Junman140 Apr 25, 2026
b60b7de
Merge pull request #245 from fredericklamar342-prog/main
Junman140 Apr 25, 2026
bbeadd4
Merge pull request #246 from DevSolex/fix/f-057-reserves-unit-tooltips
Junman140 Apr 25, 2026
9c915b8
Merge branch 'main' into feature/money-error-standardization
Junman140 Apr 25, 2026
437f71b
Merge pull request #247 from N-thnI/feature/money-error-standardization
Junman140 Apr 25, 2026
259f231
Merge branch 'main' into Savings-deposit-URI-length-filter-too-strict
Junman140 Apr 25, 2026
12f49d2
Merge pull request #248 from BigJohn-dev/Savings-deposit-URI-length-f…
Junman140 Apr 25, 2026
b10673a
Merge pull request #249 from dev-RAM11/fix/mobile-nav-aria-labels
Junman140 Apr 25, 2026
066f577
Merge pull request #250 from blockchainrafik/main
Junman140 Apr 25, 2026
a72237f
Merge pull request #251 from keljoshX/fix/abort-controller-timeout-do…
Junman140 Apr 25, 2026
d6d4df3
Merge pull request #256 from Johnpii1/main
Junman140 Apr 25, 2026
24d6369
Merge pull request #257 from Cofez/lendingApi
Junman140 Apr 25, 2026
c5ad073
Merge branch 'main' into sendSucessDialog
Junman140 Apr 25, 2026
0ddf016
Merge pull request #258 from icedoutskay/sendSucessDialog
Junman140 Apr 25, 2026
3b1d59b
Merge branch 'main' into CurrencyPage
Junman140 Apr 25, 2026
bf98b83
Merge pull request #261 from Cofez/CurrencyPage
Junman140 Apr 25, 2026
38d8433
Merge branch 'main' into main
Junman140 Apr 25, 2026
5806ce6
Merge pull request #259 from A5cend-dev/main
Junman140 Apr 25, 2026
1382526
Merge pull request #263 from GauravKarakoti/Warning
Junman140 Apr 25, 2026
f876937
Merge branch 'main' into fix/remove-api-key-from-sessionstorage
Junman140 Apr 25, 2026
c4b876d
Merge pull request #266 from coderchris1234/fix/remove-api-key-from-s…
Junman140 Apr 25, 2026
aecaa84
Merge pull request #267 from coderchris1234/feature/comprehensive-hel…
Junman140 Apr 25, 2026
47a80bd
Merge branch 'main' into fix/signin-success-message
Junman140 Apr 25, 2026
6ebf55e
Merge pull request #268 from coderchris1234/fix/signin-success-message
Junman140 Apr 25, 2026
b3413b7
Merge branch 'main' into fix/remove-duplicate-stellar-sdk
Junman140 Apr 25, 2026
700b247
Merge pull request #269 from DavisVT/fix/remove-duplicate-stellar-sdk
Junman140 Apr 25, 2026
0591511
Merge branch 'main' into fix/f-029-kyc-badge-dynamic
Junman140 Apr 25, 2026
8713277
Merge pull request #270 from senmalong/fix/f-029-kyc-badge-dynamic
Junman140 Apr 25, 2026
093bbc0
Merge branch 'main' into fix/f-023-mint-burn-tab-real-flow
Junman140 Apr 25, 2026
714a850
Merge pull request #271 from senmalong/fix/f-023-mint-burn-tab-real-flow
Junman140 Apr 25, 2026
77b8e91
Merge branch 'main' into feature/F-027-savings-withdraw-recipient-edi…
Junman140 Apr 25, 2026
15c2a67
Merge pull request #272 from pchieneye/feature/F-027-savings-withdraw…
Junman140 Apr 25, 2026
a1efbaa
Merge pull request #273 from pchieneye/feature/F-017-sme-ctas-inert
Junman140 Apr 25, 2026
d17214e
Merge branch 'main' into feature/fix-savings-mock-data
Junman140 Apr 25, 2026
bd9bd92
Merge pull request #274 from code-0-stella/feature/fix-savings-mock-data
Junman140 Apr 25, 2026
661d637
Merge pull request #275 from pchieneye/feature/F-022-security-setting…
Junman140 Apr 25, 2026
2e58b56
Merge branch 'main' into feature/fix-savings-deposit-handler
Junman140 Apr 25, 2026
b75f4be
Merge pull request #276 from code-0-stella/feature/fix-savings-deposi…
Junman140 Apr 25, 2026
b5dfb21
Merge branch 'main' into fix/f-064-csp-nonce-middleware
Junman140 Apr 25, 2026
73ae1b7
Merge pull request #277 from senmalong/fix/f-064-csp-nonce-middleware
Junman140 Apr 25, 2026
ceb5c01
fix(deps): remove duplicate stellar-sdk, keep only @stellar/stellar-sdk
DavisVT Apr 25, 2026
63504cf
Merge branch 'dev' into fix/remove-duplicate-stellar-sdk
DavisVT Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"permissions": {
"allow": [
"Bash(git merge *)"
]
}
}
73 changes: 73 additions & 0 deletions DEPLOYMENT_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Deployment Checklist - Security Fix

## Pre-Deployment

- [ ] Review all changes in `SECURITY_FIX_SUMMARY.md`
- [ ] Verify backend is setting httpOnly cookies on login
- [ ] Test login flow in development environment
- [ ] Test 2FA flow in development environment
- [ ] Test wallet operations (mint, burn, send)
- [ ] Verify no API keys in sessionStorage (DevTools)
- [ ] Check CSP headers in browser DevTools Network tab

## Deployment Steps

1. [ ] Deploy backend changes first (if any cookie configuration needed)
2. [ ] Deploy frontend changes
3. [ ] Clear all user sessions (users will need to re-login)
4. [ ] Monitor error logs for authentication issues

## Post-Deployment Verification

- [ ] Login works correctly
- [ ] Logout clears session
- [ ] 2FA flow works
- [ ] Wallet operations work
- [ ] API requests succeed with cookies
- [ ] CSP headers are present
- [ ] No console errors related to auth
- [ ] Check sessionStorage in DevTools - should NOT contain:
- `acbu_api_key`
- `acbu_passcode`

## Rollback Plan

If issues occur:
1. Revert frontend deployment
2. Users may need to clear cookies and re-login
3. Check backend logs for cookie-related errors

## Security Verification

Run these checks in browser DevTools:

```javascript
// Should return null (no API key in sessionStorage)
sessionStorage.getItem('acbu_api_key')

// Should return null (no passcode in sessionStorage)
sessionStorage.getItem('acbu_passcode')

// Check cookies in DevTools:
// - Open DevTools > Application > Cookies
// - Or check Network tab > Headers > Set-Cookie
// - Look for httpOnly session cookie (cannot be read via document.cookie)
```

## Files Changed

- `contexts/auth-context.tsx` - Removed API key storage
- `lib/api/client.ts` - Removed Bearer token auth
- `app/auth/signin/page.tsx` - Updated login flow
- `app/auth/2fa/page.tsx` - Updated 2FA flow
- `lib/passcode-manager.ts` - NEW: In-memory passcode storage
- `lib/wallet-storage.ts` - Use in-memory passcode
- `middleware.ts` - NEW: CSP and security headers

## Support

If users report issues:
1. Ask them to clear cookies and sessionStorage
2. Ask them to log in again
3. Check if they can complete wallet operations
4. Verify CSP isn't blocking legitimate scripts
160 changes: 160 additions & 0 deletions HELP_PAGE_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Help Center Page Implementation

## Issue
**Severity:** Low
**Area:** frontend/support
**Problem:** Help page too thin, causing support load spikes

## Solution
Created a comprehensive Help Center page with self-service capabilities to reduce support tickets.

## Features Implemented

### 1. FAQ Section
- Accordion-style interface with 10 most common questions
- Topics covered:
- Wallet creation
- Minting ACBU tokens
- Transaction fees
- Transaction timing
- Account recovery
- 2FA setup
- Sending tokens
- Burning to fiat
- Reserve system
- Contacting support

### 2. System Status Banner
- Real-time status indicator (green = operational)
- Link to external status page (status.acbu.io)
- Visual feedback with icons

### 3. Quick Links Section
- Documentation (docs.acbu.io)
- System Status (status.acbu.io)
- Community Forum (community.acbu.io)
- External link indicators

### 4. Contact Support Form
- Fields: Name, Email, Subject, Message
- Form validation
- Success confirmation message
- Loading states
- Security contact information for urgent issues

### 5. Navigation Integration
- Added "Help Center" link to Me page
- Placed in Support section alongside Activity History
- Uses HelpCircle icon for visual consistency

## User Experience

### Self-Service Flow
1. User visits /help page
2. Checks FAQ for common questions
3. If not resolved, checks status page for incidents
4. If still needed, submits support ticket via form

### Mobile-First Design
- Responsive layout
- Touch-friendly accordion
- Mobile-optimized form
- Accessible navigation

## Technical Details

### File Structure
```
app/help/page.tsx - Main help center page
app/me/page.tsx - Updated with help link
```

### Components Used
- Card (UI container)
- Button (form submission)
- Input (form fields)
- Textarea (message field)
- Accordion (FAQ section)
- Icons from lucide-react

### State Management
- Form state (name, email, subject, message)
- Submission state (loading, submitted)
- Success message with auto-dismiss

## Acceptance Criteria

✅ Users can self-serve top 10 questions via FAQ
✅ Status page link for service uptime
✅ Ticket form for support requests
✅ Quick access from Me page
✅ Mobile-responsive design
✅ Accessible navigation

## Impact

### Before
- No centralized help resources
- Users had to contact support for basic questions
- No status page visibility
- Support team overwhelmed with common questions

### After
- Self-service FAQ for top 10 questions
- Status page integration
- Structured support ticket system
- Reduced support load
- Better user experience

## Future Enhancements

1. **Search Functionality**
- Add search bar to filter FAQ
- Search across all help content

2. **Backend Integration**
- Connect form to actual ticketing system
- Email notifications
- Ticket tracking

3. **Analytics**
- Track most viewed FAQ items
- Monitor form submission rates
- Identify knowledge gaps

4. **Live Chat**
- Add live chat widget for urgent issues
- Business hours indicator

5. **Video Tutorials**
- Embed video guides
- Step-by-step walkthroughs

6. **Multi-language Support**
- Translate FAQ content
- Localized support

## Testing Checklist

- [ ] FAQ accordion expands/collapses correctly
- [ ] Form validation works (required fields)
- [ ] Form submission shows success message
- [ ] External links open in new tab
- [ ] Status banner displays correctly
- [ ] Help link appears in Me page
- [ ] Mobile layout is responsive
- [ ] Keyboard navigation works
- [ ] Screen reader accessibility

## Deployment Notes

- No backend changes required (form is frontend-only for now)
- No database migrations needed
- No environment variables required
- Can be deployed independently

## Links

- **PR Link:** https://github.com/coderchris1234/acbu-frontend/pull/new/feature/comprehensive-help-page
- **Page Route:** /help
- **Navigation:** Me > Support > Help Center
Loading