feat: pin frequently-used tools to the top of the dashboard (#440)

* feat(i18n): add pin/unpin/pinned strings, retire addToFavourites stub

Claude-Session: https://claude.ai/code/session_01Ad5LjCDJyW1tLFd3P4Hedp

* feat(web): add per-user pinned-tools store

Claude-Session: https://claude.ai/code/session_01Ad5LjCDJyW1tLFd3P4Hedp

* feat(web): add opt-in pin toggle to ToolCard

Claude-Session: https://claude.ai/code/session_01Ad5LjCDJyW1tLFd3P4Hedp

* feat(web): render Pinned section on the dashboard All tab

Claude-Session: https://claude.ai/code/session_01Ad5LjCDJyW1tLFd3P4Hedp

* test(web): cover pin toggle (component) and dashboard pin flow (e2e)

Claude-Session: https://claude.ai/code/session_01Ad5LjCDJyW1tLFd3P4Hedp
This commit is contained in:
SnapOtter
2026-07-06 17:59:30 +08:00
committed by GitHub
parent ec78d36d95
commit 3aaaacc7a1
27 changed files with 472 additions and 35 deletions
+3 -1
View File
@@ -2967,6 +2967,7 @@ export const ru: TranslationKeys = {
allTools: "Все инструменты",
searchPlaceholder: "Поиск среди {count} инструментов...",
recent: "Недавние",
pinned: "Закреплённые",
popular: "Популярные",
browseByCategory: "По категориям",
gettingStarted: "Начало работы",
@@ -3872,7 +3873,8 @@ export const ru: TranslationKeys = {
settings: "Настройки",
},
toolCard: {
addToFavourites: "Добавить в избранное",
pin: "Закрепить",
unpin: "Открепить",
},
appLayout: {
mobileNavTools: "Инструменты",