mirror of
https://github.com/cline/cline.git
synced 2026-08-28 19:48:08 +08:00
8b046d04f9
* feat(desktop): merge customization pages into a Customize hub with inline marketplace Replaces the Plugins page and the dedicated Marketplace page with a single Customize hub. Tabs: Skills, MCP, Plugins, Rules, Hooks, Tools, each with live counts. Tabs backed by a marketplace catalog render the installed items followed by an inline browsable Browse section (CLI-hub style), so installing from the catalog immediately reflects in Installed above. - Installed cards restyled to mirror the browse-card anatomy: bg-card p-4 containers, absolute top-right xs Uninstall matching Install, truncating semibold titles, primary-tinted icons, real Badge components instead of ad-hoc bordered spans, un-indented line-clamped descriptions - Rules/Hooks/Tools rows brought into the same card language; redundant intro paragraphs (duplicating the page description) removed; Tools group headers match the Installed header style with counts - Marketplace section header renamed to Browse; duplicate 'N results' row removed (the header count is the single source) - MCP embedded view now shows the full marketplace instead of installed-only * feat(desktop): overhaul sidebar sessions and navigation Sessions list: - Sort toggle removed; sessions are always grouped by project, with pinned sessions leading each group (both subsets ordered by recency). The Pinned/Scheduled/Tasks category sections and their time-mode paging machinery (page-fill effect included) are deleted - Scheduled sessions get an inline clock icon next to the pin position; pin + clock render together when both apply, and the running/unread status dot now coexists with them - One font size (text-sm) across the list: titles, timestamps, project headers, show-more buttons, empty states. sidebarText needed !text-sm because the default button size's text-base wins the twMerge conflict - Gradient fade under the Sessions header once the list scrolls, so rows fade out instead of hard-clipping - The session-detail hover card is controlled from the sidebar and closes on scroll (Radix receives no pointer events while scrolling, so it used to float over moving content) - Sidebar min resize width raised 224->260px; the per-project show-more label truncates so its nowrap text can't force rows to overflow and clip timestamps at narrow widths Navigation: - Customize replaces the Plugins/Marketplace/Hooks/Rules/Tools sidebar entries; Schedules and Customize are hidden from the expanded settings nav (their top rows cover them) but stay reachable when collapsed - The settings gear always opens General instead of resuming the last section; the Account no-op hover special case is gone - The New row highlights (aria-current) while the fresh not-yet-started task page is showing and hands off to the session row once the task starts; hitting New also focuses the prompt input via a window-event signal (lib/prompt-input-focus.ts) since the sidebar and composer sit in distant subtrees - Fixed the xs button size collapsing any icon-bearing button to 12x12 (leftover has-[>svg]:size-3 from when xs was a micro button) — this was why Uninstall buttons rendered broken next to Install * feat(desktop): polish settings pages and chat composer Models page: - The provider detail panel is always open: no X button, no empty no-selection state. It defaults to the first connected provider (falling back to the first in the catalog), which also removes the layout shift that happened when the page swapped between full-width and panel variants on selection - Fixed the list pane becoming unscrollable while the panel was open: grid items default to min-size auto, so the pane grew past its track inside the overflow-hidden grid and its ScrollArea had nothing to scroll; wrapped it in a min-h-0 min-w-0 cell - Add Provider opens a Dialog instead of swapping the page (AddProviderContent gained a dialog variant that renders only the form) - Embedded inputs (provider search, model search, detail fields) share one EMBEDDED_INPUT_CLASS stripping the Input component's own border/dark bg tint/shadow/ring, which rendered as a mismatched inner box; the model search box uses the same h-9/px-3 frame as the provider search - Model list flows with the page instead of a max-h capped inner scroller Other pages: - Account uses the shared PageFrame/PageHeader: left-aligned, text-3xl title, Sign Out in the header actions slot - Desktop notifications is one General section: header row plus the Event/Notify/Sound matrix nested in a card, so its rows no longer read as top-level peers of Dark mode; 'Available in the desktop app' label removed - Schedule page retitled from Schedules with a real description; Customize description rewritten Chat composer: - The voice dictation button only renders once a voice model is configured (Settings -> Voice); the unconfigured deep-link state is gone (prop type kept for an easy restore)