Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
ca66dd7
feat(webapp): favorite pages and sidebar customization
samejr Jul 25, 2026
d4eb604
fix(webapp): favorites and sidebar customization polish
samejr Jul 25, 2026
ab261a2
fix(webapp): serialize preference writes and improve favorite defaults
samejr Jul 25, 2026
0327877
fix(webapp): shared favorite links, flush modal scrolling, header men…
samejr Jul 25, 2026
35476fe
fix(webapp): clean up dashboard favorites on delete, header star spacing
samejr Jul 25, 2026
c9eb226
fix(webapp): filter-aware favorite labels, exact-match active state, …
samejr Jul 25, 2026
c37b871
feat(webapp): remove favorites from the customize modal, custom actio…
samejr Jul 25, 2026
a2c1230
fix(webapp): tighten the cross icon path
samejr Jul 25, 2026
228c38f
feat(webapp): custom eye icons for the sidebar visibility toggle
samejr Jul 25, 2026
e5e0387
fix(webapp): resting gap above the first customize modal section
samejr Jul 25, 2026
655321d
fix(webapp): matching resting gap below the customize modal list
samejr Jul 25, 2026
78d301b
fix(webapp): drop the Favorites section from the modal with its last …
samejr Jul 25, 2026
d6d1889
fix(webapp): address review feedback on favorites and sidebar customi…
samejr Jul 25, 2026
9376d9a
fix(webapp): name task and agent favorites after the task
samejr Jul 26, 2026
fd8f323
fix(webapp): surface customize sidebar save failures instead of closi…
samejr Jul 26, 2026
cbf3b0f
Merge remote-tracking branch 'origin/main' into samejr/favourite-views
samejr Jul 27, 2026
8a2eb70
fix(webapp): stop favorites capturing pagination position in their URLs
samejr Jul 27, 2026
929a6f9
refactor(webapp): capture Option+F with the standard shortcuts hook
samejr Jul 27, 2026
96452ad
Merge remote-tracking branch 'origin/main' into samejr/favourite-views
samejr Jul 27, 2026
d50f422
fix(webapp): address review feedback on favorites active state and co…
samejr Jul 27, 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
6 changes: 6 additions & 0 deletions .server-changes/favorite-pages-and-sidebar-customization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
area: webapp
type: feature
---

Favorite any dashboard page to a new Favorites section in the side menu, and customize the sidebar by renaming favorites, hiding items, and reordering items and sections.
14 changes: 14 additions & 0 deletions apps/webapp/app/assets/icons/CrossIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export function CrossIcon({ className }: { className?: string }) {
return (
<svg
className={className}
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M6 6L18 18M18 6L6 18" stroke="currentColor" strokeWidth="2" strokeLinecap="round" />
</svg>
);
}
35 changes: 35 additions & 0 deletions apps/webapp/app/assets/icons/EyeClosedIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
export function EyeClosedIcon({ className }: { className?: string }) {
return (
<svg
className={className}
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M10.7424 5.08581C14.6841 4.54668 18.7922 6.54985 21.4978 11.0954C21.8296 11.6529 21.8298 12.3468 21.498 12.9043C21.124 13.5326 20.7233 14.1123 20.3 14.6434"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M3.70711 2.29289C3.31658 1.90237 2.68342 1.90237 2.29289 2.29289C1.90237 2.68342 1.90237 3.31658 2.29289 3.70711L3.70711 2.29289ZM20.2929 21.7071C20.6834 22.0976 21.3166 22.0976 21.7071 21.7071C22.0976 21.3166 22.0976 20.6834 21.7071 20.2929L20.2929 21.7071ZM2.29289 3.70711L20.2929 21.7071L21.7071 20.2929L3.70711 2.29289L2.29289 3.70711Z"
fill="currentColor"
/>
<path
d="M10.3327 10.8948C10.6385 10.4349 10.5136 9.81416 10.0537 9.50837C9.59377 9.20259 8.97305 9.32753 8.66727 9.78743L10.3327 10.8948ZM14.2126 15.3328C14.6725 15.027 14.7974 14.4063 14.4916 13.9463C14.1858 13.4864 13.5651 13.3615 13.1052 13.6673L14.2126 15.3328ZM12 14C10.8954 14 10 13.1046 10 12H8C8 14.2092 9.79086 16 12 16V14ZM10 12C10 11.5897 10.1225 11.211 10.3327 10.8948L8.66727 9.78743C8.24565 10.4216 8 11.1836 8 12H10ZM13.1052 13.6673C12.789 13.8775 12.4103 14 12 14V16C12.8164 16 13.5785 15.7544 14.2126 15.3328L13.1052 13.6673Z"
fill="currentColor"
/>
<path
d="M6.12815 7C4.77316 7.99438 3.53535 9.35957 2.50209 11.0955C2.17024 11.6531 2.17115 12.3487 2.50305 12.9062C6.05251 18.8681 12.0149 20.4553 16.8492 17.6681"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
);
}
27 changes: 27 additions & 0 deletions apps/webapp/app/assets/icons/EyeOpenIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
export function EyeOpenIcon({ className }: { className?: string }) {
return (
<svg
className={className}
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 12C15 13.6569 13.6569 15 12 15C10.3431 15 9 13.6569 9 12C9 10.3431 10.3431 9 12 9C13.6569 9 15 10.3431 15 12Z"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M21.4974 11.0946C16.66 2.9684 7.33998 2.96849 2.50257 11.0947C2.17069 11.6523 2.17069 12.3479 2.50257 12.9054C7.33998 21.0316 16.66 21.0315 21.4974 12.9053C21.8293 12.3477 21.8293 11.6521 21.4974 11.0946Z"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
);
}
27 changes: 27 additions & 0 deletions apps/webapp/app/assets/icons/RenameIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
export function RenameIcon({ className }: { className?: string }) {
return (
<svg
className={className}
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M11 4H7.2C6.0799 4 5.51984 4 5.09202 4.21799C4.71569 4.40973 4.40973 4.71569 4.21799 5.09202C4 5.51984 4 6.0799 4 7.2V16.8C4 17.9201 4 18.4802 4.21799 18.908C4.40973 19.2843 4.71569 19.5903 5.09202 19.782C5.51984 20 6.0799 20 7.2 20H16.8C17.9201 20 18.4802 20 18.908 19.782C19.2843 19.5903 19.5903 19.2843 19.782 18.908C20 18.4802 20 17.9201 20 16.8V13"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M9 14.9999V12.4142C9 12.1489 9.10536 11.8946 9.29289 11.707L17.3358 3.66416C18.1168 2.88311 19.3832 2.88311 20.1642 3.66416L20.3358 3.83573C21.1168 4.61678 21.1168 5.88311 20.3358 6.66416L12.2929 14.707C12.1054 14.8946 11.851 14.9999 11.5858 14.9999H9Z"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="square"
strokeLinejoin="round"
/>
</svg>
);
}
26 changes: 26 additions & 0 deletions apps/webapp/app/assets/icons/SidebarCustomizeIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export function SidebarCustomizeIcon({ className }: { className?: string }) {
return (
<svg
className={className}
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M11 5H5C3.89543 5 3 5.89543 3 7V17C3 18.1046 3.89543 19 5 19H11M11 5H19C20.1046 5 21 5.89543 21 7V17C21 18.1046 20.1046 19 19 19H11M11 5V19"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="square"
strokeLinejoin="round"
/>
<path
d="M6.125 8.75C6.125 9.23325 6.51675 9.625 7 9.625C7.48325 9.625 7.875 9.23325 7.875 8.75C7.875 8.26675 7.48325 7.875 7 7.875C6.51675 7.875 6.125 8.26675 6.125 8.75ZM6.125 12C6.125 12.4832 6.51675 12.875 7 12.875C7.48325 12.875 7.875 12.4832 7.875 12C7.875 11.5168 7.48325 11.125 7 11.125C6.51675 11.125 6.125 11.5168 6.125 12ZM6.125 15.25C6.125 15.7332 6.51675 16.125 7 16.125C7.48325 16.125 7.875 15.7332 7.875 15.25C7.875 14.7668 7.48325 14.375 7 14.375C6.51675 14.375 6.125 14.7668 6.125 15.25Z"
fill="currentColor"
stroke="currentColor"
strokeWidth="0.75"
/>
</svg>
);
}
4 changes: 4 additions & 0 deletions apps/webapp/app/components/Shortcuts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ function ShortcutContent() {
<ShortcutKey shortcut={{ modifiers: ["mod"] }} variant="medium/bright" />
<ShortcutKey shortcut={{ key: "b" }} variant="medium/bright" />
</Shortcut>
<Shortcut name="Favorite this page">
<ShortcutKey shortcut={{ modifiers: ["alt"] }} variant="medium/bright" />
<ShortcutKey shortcut={{ key: "f" }} variant="medium/bright" />
</Shortcut>
<Shortcut name="Select filter">
<ShortcutKey shortcut={{ key: "1" }} variant="medium/bright" />
<Paragraph variant="small" className="ml-1.5">
Expand Down
Loading
Loading