feat: add reminders page, BMad skills upgrade, MCP server refactor

- Add reminders page with navigation support
- Upgrade BMad builder module to skills-based architecture
- Refactor MCP server: extract tools and auth into separate modules
- Add connections cache, custom AI provider support
- Update prisma schema and generated client
- Various UI/UX improvements and i18n updates
- Add service worker for PWA support

Made-with: Cursor
This commit is contained in:
Sepehr Ramezani
2026-04-13 21:02:53 +02:00
parent 18ed116e0d
commit fa7e166f3e
3099 changed files with 397228 additions and 14584 deletions

View File

@@ -76,11 +76,11 @@ export function MemoryEchoNotification({ onOpenNote }: MemoryEchoNotificationPro
})
// Show success message and open modal
toast.success('Opening connection...')
toast.success(t('toast.openingConnection'))
setShowModal(true)
} catch (error) {
console.error('[MemoryEcho] Failed to view connection:', error)
toast.error('Failed to open connection')
toast.error(t('toast.openConnectionFailed'))
}
}
@@ -100,16 +100,16 @@ export function MemoryEchoNotification({ onOpenNote }: MemoryEchoNotificationPro
// Show feedback toast
if (feedback === 'thumbs_up') {
toast.success('Thanks for your feedback!')
toast.success(t('toast.thanksFeedback'))
} else {
toast.success('Thanks! We\'ll use this to improve.')
toast.success(t('toast.thanksFeedbackImproving'))
}
// Dismiss notification
setIsDismissed(true)
} catch (error) {
console.error('[MemoryEcho] Failed to submit feedback:', error)
toast.error('Failed to submit feedback')
toast.error(t('toast.feedbackFailed'))
}
}
@@ -123,8 +123,8 @@ export function MemoryEchoNotification({ onOpenNote }: MemoryEchoNotificationPro
}
// Calculate values for both notification and modal
const note1Title = insight.note1.title || 'Untitled'
const note2Title = insight.note2.title || 'Untitled'
const note1Title = insight.note1.title || t('notification.untitled')
const note2Title = insight.note2.title || t('notification.untitled')
const similarityPercentage = Math.round(insight.similarityScore * 100)
// Render modal if requested
@@ -286,7 +286,7 @@ export function MemoryEchoNotification({ onOpenNote }: MemoryEchoNotificationPro
{note2Title}
</Badge>
<Badge variant="secondary" className="ml-auto text-xs">
{similarityPercentage}% match
{t('memoryEcho.match', { percentage: similarityPercentage })}
</Badge>
</div>
</div>