Releases: chungty/abm-research
Releases · chungty/abm-research
v0.13.0: Critical UX Fixes & Feedback Collection
Critical Bug Fixes
Focus Jump Bug in Add Account Modal
- Fixed issue where typing in Domain field would jump focus back to Company Name
- Root cause: FocusTrap component's useEffect was re-running on every render due to non-memoized callback
- Solution: Added
useCallbackmemoization and "latest ref" pattern for stable references
Race Condition in Account Detail Loading
- Fixed stale data display when rapidly switching between accounts
- Added
AbortControllerto cancel in-flight requests when account selection changes - Proper cleanup on component unmount
Null Safety in Outreach Generation
- Fixed potential crash when
contact.nameis null/undefined - Added defensive fallbacks:
contact.name || 'there'with safe string splitting
Memory Leaks in Progress Intervals
- Fixed
setIntervalnot being cleared on component unmount in:- ResearchButton
- VendorDiscoveryButton
- Added
useRefto track intervals anduseEffectcleanup
Domain Validation
- Added frontend validation: must include TLD (
.), no spaces, valid characters only - Added matching backend validation in
/api/accountsPOST endpoint - Visual feedback with red border and error message
New Features
Feedback Collection
- New "Submit Feedback" button in dashboard header
- Modal with category selection (Feature Request, Bug Report, Improvement, Other)
- Posts directly to Slack #team-plg channel
- Graceful fallback if Slack is unavailable
Filter Persistence
- Sort field, sort direction, priority filters, status filters, and GPU-only toggle now persist across page reloads
- Uses
sessionStorage(clears on browser close, persists during session) - Search query intentionally NOT persisted
Files Changed
dashboard/src/components/AddAccountModal.tsxdashboard/src/components/shared/index.tsx(FocusTrap fix)dashboard/src/api/client.ts(AbortController)dashboard/src/utils/outreachGenerator.ts(null safety)dashboard/src/components/ResearchButton.tsxdashboard/src/components/VendorDiscoveryButton.tsxdashboard/src/components/AccountList.tsxdashboard/src/components/FeedbackModal.tsx(NEW)dashboard/src/hooks/useSessionStorage.ts(NEW)src/abm_research/api/server.py
v0.12.0: Account Urgency & BD Workflow Improvements
Highlights
- Hot/Warming/Quiet account status for BD prioritization
- Partnership UX redesign with BD-focused defaults
- Partner Paths on Account Detail page
Account Status System
Urgency computed from buying_signals_score:
- 🔴 Hot (≥50): Strong signals - immediate outreach candidates
- 🟡 Warming (20-50): Some activity detected
- ⚪ Quiet (<20): No recent signals
Status badges show the reason (e.g., "Hiring ML engineers") directly on account cards.
UI/UX Improvements
- Clickable status filter buttons with counts in account list header
- Improved Add Account flow with View/Add Another/Close actions
- Partnership page: summary stats, smart defaults showing only partners with account coverage
- Partner Paths section on Account Detail showing intro routes to each account
Intelligence
getAccountStatus()computes urgency from buying signals breakdownusePartnersForAccounthook filters partners for specific accounts- Extracts reasons from trigger events, expansion signals, hiring signals
Commits
- Account list: Add urgency status (Hot/Warming/Quiet) and improved Add flow
- Account Detail: Add Partner Paths section for BD workflow
- Partnership UX redesign: BD-focused first principles approach
- UI improvements: Trigger events, contact cards, enrichment UX