feat(dashboard): Add "Pick up where you left off" personalization panel#935
feat(dashboard): Add "Pick up where you left off" personalization panel#935ishaanxgupta wants to merge 21 commits into
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
supermemory-mcp | 504490f | May 21 2026, 10:46 AM |
|
Claude finished @ishaanxgupta's task in 1m 51s —— View job Review Complete
Overview: Adds a "Pick up where you left off" panel showing recent plugin/MCP activity. Issues found:
The new feature logic is well-implemented — date validation, error handling, deduplication, and query gating are all correct. The redirect fix for the reported issue also looks good. Score: 6/10 — Once the encoding issue is fixed, this is ready to ship. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
supermemory-app | 504490f | Commit Preview URL Branch Preview URL |
May 21 2026, 10:47 AM |
There was a problem hiding this comment.
Overview: Adds a "Pick up where you left off" panel showing recent plugin/MCP activity by parsing API key metadata and document sources.
Issues found: None — this looks good to ship.
The implementation is solid:
toValidDateproperly handles invalid dates withNumber.isNaNcheck- JSON.parse of metadata is wrapped in try-catch with graceful fallback
- Deduplication logic correctly keeps the most recent usage per tool
- Sorting prioritizes used items over never-used, then by recency
- Empty state handling is clean
- React Query usage is correct with appropriate
staleTimeandenabledconditions
Score: 9/10
Minor note (not blocking): The API keys fetch uses raw fetch while other endpoints use the typed $fetch wrapper. This is fine if /v3/auth/keys isn't in the API schema, but worth considering adding it for consistency if the endpoint stabilizes.
- Replace non-null assertions with nullish coalescing fallbacks - Rename unused parameter with underscore prefix - Apply Biome formatting fixes Co-Authored-By: Claude Opus 4.5 <[email protected]>
…ai/supermemory into feat/personalisation
Co-Authored-By: Claude Opus 4.5 <[email protected]>
Co-Authored-By: Claude Opus 4.5 <[email protected]>
There was a problem hiding this comment.
Overview: Adds a "Pick up where you left off" panel showing recent plugin/MCP activity by parsing API key metadata and document sources.
Issues found: None — this looks good to ship.
The implementation is solid:
toValidDateproperly handles invalid dates withNumber.isNaNcheck- JSON.parse of metadata is wrapped in try-catch with graceful fallback
- Deduplication logic correctly keeps the most recent usage per tool
- Sorting prioritizes used items over never-used, then by recency
- Empty state handling is clean
- React Query usage is correct with appropriate
staleTimeandenabledconditions
Score: 9/10
Minor note (not blocking): The API keys fetch uses raw fetch while other endpoints use the typed $fetch wrapper. This is fine if /v3/auth/keys isn't in the API schema, but worth considering adding it for consistency if the endpoint stabilizes.
Co-Authored-By: Claude Opus 4.5 <[email protected]>
|
@MaheshtheDev resolved, please have a look |
There was a problem hiding this comment.
Overview: Adds a "Pick up where you left off" panel showing recent plugin/MCP activity, with a fix for the redirect issue reported by @MaheshtheDev.
Issues found: None — this looks good to ship.
The fix for the reported issue is correctly implemented:
- New
handleOpenToolDocumentfunction (page.tsx:408-421) properly extracts the document's space/container tag and callssetSelectedProject()before opening the document - This ensures clicking a tool usage item navigates to the correct space context instead of redirecting to the plugins page
The implementation remains solid:
toValidDateproperly handles invalid dates withNumber.isNaNcheck- JSON.parse of metadata is wrapped in try-catch with graceful fallback
- Deduplication logic correctly keeps the most recent usage per tool
- Query enabled condition now includes
!!org?.idto prevent premature fetching - Empty state handling is clean
Score: 9/10
|
@claude resolve these conflicts |
|
Claude encountered an error after 1m 40s —— View job Resolving Merge Conflicts
|
# Conflicts: # apps/web/components/dashboard-view.tsx # apps/web/middleware.ts
There was a problem hiding this comment.
Overview: Adds a "Pick up where you left off" panel showing recent plugin/MCP activity by parsing API key metadata and document sources.
Issues found:
- Character encoding corruption (blocking): The
TIPSarray and several other strings throughoutdashboard-view.tsxhave corrupted Unicode characters. Special characters like⌘,—,✓,→, and·are displaying as mojibake (⌘,â€",âœ",â†',·). This will cause garbled text in the UI for all users.
The new feature implementation itself is solid:
toValidDatecorrectly usesNumber.isNaNfor date validation- JSON.parse of metadata is properly wrapped in try-catch
- Deduplication and sorting logic is correct
- Query enabled conditions properly gate fetches on
org?.id - The fix for @MaheshtheDev's reported redirect issue looks correct
Score: 6/10 — The encoding issue is a significant visual bug that affects the entire dashboard. Once fixed, this should be ready to ship.
| const TIPS: Record<Profession, string[]> = { | ||
| developer: [ | ||
| "Use ⌘K to search code snippets and docs by intent, not just keywords", | ||
| "Use ⌘K to search code snippets and docs by intent, not just keywords", |
There was a problem hiding this comment.
Bug: Character encoding corruption
The entire TIPS array and other strings have corrupted Unicode characters:
⌘→⌘(command symbol)—→â€"(em dash)✓→âœ"(checkmark)→→â†'(arrow)·→·(middle dot)
This will cause garbled text to appear in the UI. For example, users will see "Use ⌘K to search..." instead of "Use ⌘K to search...".
This appears to be a UTF-8 encoding issue that occurred during the commit process (possibly text was re-encoded as Latin-1 then interpreted as UTF-8, or vice versa).
Fix: Restore the original UTF-8 characters throughout this file. You can run:
git diff origin/main -- apps/web/components/dashboard-view.tsx | grep "^-.*[⌘—✓→·]"to see the original correct characters that need to be restored.
There was a problem hiding this comment.
Claude finished @ishaanxgupta's task in 1m 2s —— View job
Fixing Character Encoding
- Read
dashboard-view.tsxto identify all corrupted characters - Fix UTF-8 encoding issues (⌘, —, ✓, →, · etc.)
- Commit and push the fix
Fixed all corrupted Unicode characters in dashboard-view.tsx:
⌘→⌘(command symbol)â€"→—(em dash)âœ"→✓(checkmark)â†'→→(arrow)·→·(middle dot)
55 occurrences replaced across the TIPS array, plugin taglines, and UI strings.
Fix corrupted Unicode characters (⌘, —, ✓, →, ·) that were displaying as mojibake (⌘, â€", âœ", â†', ·) in the TIPS array and other strings. Co-authored-by: Ishaan Gupta <[email protected]>


Summary
Adds a new "Pick up where you left off" panel to the home dashboard that displays the user's most recent plugin and MCP activity, filling the empty space to the right of "Suggested for you" on desktop.
Changes
Data Layer: