861 Commits

Author SHA1 Message Date
spencrmartin 05dc08a036 Replace blue ring with blue dot indicator in bottom-right on tile update 2025-11-10 14:53:01 -05:00
spencrmartin 4305108078 feat(navigation): add full-width last tile in 3-column layout
In the 3-column responsive layout (640-1023px), the last tile now
spans the full width while maintaining the same height as other tiles.

- Last tile uses 3:1 aspect ratio (sm/md) instead of 1:1 (square)
- Spans 3 columns in sm/md breakpoints, returns to 1 column in lg+
- Position-based logic works regardless of tile arrangement
- Creates a featured, banner-like appearance for the 10th tile

Layout progression:
- < 640px: 2 cols, all square tiles
- 640-1023px: 3 cols + full-width last tile (3:1 ratio)
- ≥ 1024px: 5 cols, all square tiles
2025-11-07 09:26:17 -05:00
spencrmartin 57696160c0 fix(navigation): simplify responsive grid to 2 cols until lg breakpoint
Remove awkward 3 and 4 column layouts at sm/md breakpoints.
Now maintains clean 2-column vertical layout until 1024px,
then switches to 5-column horizontal layout.

This eliminates layout shifts in the 930-1023px range that
were affecting the bottom bar positioning.
2025-11-07 09:17:36 -05:00
spencrmartin 0d2cd0d7e1 fix(clock): remove unused seconds variable
- Remove unused 'seconds' variable declaration
- Fixes TypeScript error TS6133
- Second hand increments independently without needing seconds value
2025-11-07 08:55:12 -05:00
spencrmartin b5ff0be7d9 fix(clock): simplify second hand to continuously increment
- Replace complex rotation tracking with simple increment
- Second hand now increments by 6° each second: prev => prev + 6
- Continuously rotates forward: 0°, 6°, 12°... 354°, 360°, 366°...
- CSS handles visual wrapping naturally (360° = 0°)
- Eliminates counter-clockwise jump at 12 o'clock
2025-11-07 08:19:18 -05:00
spencrmartin d74efc0160 fix(clock): prevent second hand from rotating backwards at 12
- Track cumulative rotation for second hand
- Detect when crossing from 59s to 0s and add 360° to rotation
- Second hand now continuously rotates clockwise through 12
- Fixes counter-clockwise jump when transitioning from 354° to 0°
2025-11-07 08:17:39 -05:00
spencrmartin c8d2edd429 fix(ui): remove top padding from navigation grid
- Remove pt-0.5 from inner motion.div container
- Grid now sits flush at top with 0px padding
- Maintains pb-0.5 for bottom spacing
2025-11-07 08:15:35 -05:00
spencrmartin f038eebac1 feat(ui): add text label to navigation toggle button
- Add 'Show menu' / 'Hide menu' text next to chevron icon
- Uses text-text-muted and font-mono for consistency
- Improves button discoverability and clarity
2025-11-07 08:08:00 -05:00
spencrmartin 41e4879d5a feat(ui): use accent color for selected navigation tiles
- Apply bg-background-accent and text-text-on-accent to active tiles
- Matches primary button color scheme (Switch models button)
- Update both TopNavigation and Settings tiles
- Active state now clearly distinguishable with accent color
- Description text uses text-on-accent/70 when active for contrast
2025-11-06 15:12:44 -05:00
spencrmartin 0cf932bb33 fix(settings): improve text color contrast in settings tiles
- Add explicit text-text-default class to icon and label
- Ensures consistent text color with TopNavigation tiles
- Improves readability and visual consistency
2025-11-06 14:55:35 -05:00
spencrmartin 21abf99b51 fix(navigation): add type casting for drag event handlers in motion.div
- Cast drag events to React.DragEvent for motion.div components
- Fixes TypeScript errors with framer-motion drag handlers
- Resolves TS2345 type assignment errors
2025-11-06 14:28:24 -05:00
spencrmartin a3d6f3f9f6 feat(navigation): replace CSS transitions with framer-motion spring animations
- Add framer-motion dependency (^11.15.0)
- Implement spring physics for drawer open/close animation
  - Stiffness: 300, Damping: 30, Mass: 0.8 for natural feel
  - Replaces inconsistent CSS transitions (700ms open, 1000ms close)
- Add content slide animation with spring physics
- Enhance tile entrance animations with spring and scale effects
  - 30ms stagger between tiles (reduced from 50ms)
  - Smooth fade-in with scale from 0.9 to 1.0
- Add interactive hover/tap animations on navigation buttons
  - whileHover: scale 1.02
  - whileTap: scale 0.98
- Replace max-height animation with height: auto for better performance
- Integrate drag state animations with spring physics

Benefits:
- Natural, organic animation feel with physics-based motion
- Consistent timing for open and close (adaptive spring)
- Better performance using GPU-accelerated transforms
- Proper exit animations with AnimatePresence
- Built-in reduced-motion support from framer-motion
2025-11-06 14:19:46 -05:00
spencrmartin 0c9ba8eb27 fix(test): add null check for extensionsList in TopNavigation
- Add safety check for extensionsList before calling filter
- Prevents test failure when extensionsList is undefined
- Returns '0 of 0 enabled' as fallback
2025-11-06 13:19:29 -05:00
spencrmartin b70d393667 fix(lint): add eslint-disable comments for React Hook warnings
- Disable exhaustive-deps for fetchNavigationData effect (intentional)
- Disable exhaustive-deps for tileOrder initialization (runs once)
- Disable exhaustive-deps for pulse animation effect (intentional)
2025-11-06 13:14:20 -05:00
spencrmartin ca09dd90df fix(lint): properly handle unused variables with underscore prefix
- Rename insights and error to _insights and _error (TypeScript convention)
- Remove documentTools.ts file that was causing type errors
- This file was accidentally included and is unrelated to navigation work
2025-11-06 13:11:08 -05:00
spencrmartin 0223f4cd61 fix(lint): remove unused variables and imports
- Remove unused setIsGoosehintsModalOpen parameter in AppLayout
- Add eslint-disable comments for insights and error in SessionsInsights
- Remove unused TabsList and TabsTrigger imports in SettingsView
2025-11-06 12:59:50 -05:00
spencrmartin 9305153407 fix(navigation): implement recipes count using listSavedRecipes API
- Import listSavedRecipes from recipe_management
- Fetch actual recipe count instead of placeholder
- Add error handling for recipe fetch
- Recipes tile now shows correct count
2025-11-06 12:54:06 -05:00
spencrmartin b230df5b4d feat(navigation): add drag-and-drop reordering and pulse animations
- Add drag-and-drop functionality for tile reordering
  - Users can drag any tile to customize layout
  - Visual feedback with opacity, scale, and ring indicators
  - Grip handle icon appears on hover
  - Order persists during session

- Add pulse animation on data updates
  - Tiles pulse with blue ring when data changes
  - 2-second animation provides visual feedback
  - Tracks previous values to detect changes

- Fix clock animation precision
  - Recalculate angles from current time instead of incrementing
  - Eliminates time drift over long sessions

- Optimize todayChatsCount calculation
  - Single-pass counting instead of double iteration
  - More efficient and cleaner code

Technical changes:
- Add unique id to NavItem interface
- Add state management for drag-and-drop (draggedItem, dragOverItem, tileOrder)
- Add state management for pulse animation (prevValues, pulsingItems)
- Import GripVertical icon from lucide-react
- Implement HTML5 drag-and-drop API handlers
2025-11-06 12:53:02 -05:00
spencrmartin a7b76b303e Redesign navigation and settings with tile-based UI
- Replace sidebar navigation with expandable top navigation bar
- Implement iOS-style dock with glass effect app icons (Plus, FileEdit, Globe, FileText)
- Add dynamic data pills to navigation tiles (time, chat counts, sessions, etc.)
- Create widget tiles: analog clock, activity heatmap, token counter
- Redesign settings page with smaller tile-based navigation
- Fix clock animation to prevent counter-clockwise rotation
- Remove useSidebar dependencies from pair.tsx and BaseChat2.tsx
- Adjust animation timing for smoother expand/collapse transitions
- Ensure proper spacing and rounded corners throughout
2025-11-06 11:55:30 -05:00
Douwe Osinga 5b93ee587f Sessions required (#5548)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
2025-11-03 21:04:44 -05:00
jom-sq 86c3e42e43 feat: add grouped extension loading notification (#5529)
Signed-off-by: jom-sq <148157197+jom-sq@users.noreply.github.com>
2025-11-03 19:43:20 -06:00
dependabot[bot] 723cbce7ee chore(deps): bump prismjs and react-syntax-highlighter in /ui/desktop (#5549)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 16:09:29 -05:00
Sheikh Limon 13a4985527 fix: update Husky prepare script to v9 format (#5522)
Signed-off-by: sheikhlimon <sheikhlimon404@gmail.com>
2025-11-03 12:55:38 -05:00
BestCodes bb2c27b4d8 fix hermit text file busy issues on linux (#5372)
Signed-off-by: The-Best-Codes <bestcodes.official@gmail.com>
2025-11-03 12:37:25 -05:00
Zane 9d07497050 Improve system theme detection and fallback (#5427) 2025-10-31 11:13:08 -07:00
Douwe Osinga 4201e80e8e Goose recover (#5450)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
2025-10-30 18:12:46 -04:00
Zane e586e13d9d Removed drafts and agentIsReady in ChatInput (#5366) 2025-10-30 14:04:53 -07:00
Zane c39775ea44 nextcamp - fix session resume when navigating back to chat in sidebar (#5370) 2025-10-30 13:40:32 -07:00
Jack Amadeo ad4269330e feat/fix: set optional config params, and don't overwrite unset secrets (#5325) 2025-10-30 16:04:38 -04:00
David Katz 1714990d42 Fix: Compaction client <-> server sync (#5481) 2025-10-30 14:14:10 -04:00
Zane cb2303107d Add menu option for setting window always on top (#5429) 2025-10-30 09:24:24 -07:00
Alex Hancock 96bac11460 chore: upgrade rmcp to 0.8.3 (#5458) 2025-10-30 11:03:36 -04:00
David Katz 37e1bb1d37 Stream token usage on every agent message (#5342) 2025-10-29 23:23:25 -04:00
Zane c875f13757 rpm install in /opt/Goose to avoid conflicts with chrome-sandbox (#5421) 2025-10-29 17:31:53 -07:00
Zane b4f2382dee Don't disable extensions after they fail to activate in new chat session (#5464) 2025-10-29 15:43:27 -07:00
Alex Hancock f98458323f fix(extensions/desktop): only show env vars for stdio mcps (#5430) 2025-10-29 12:14:26 -04:00
Douwe Osinga e7ca2e3bf7 Agent extension api (#5281)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
2025-10-29 11:16:06 -04:00
Michael Neale f0056e6cd1 removing golang/temporal building 2025-10-29 12:20:08 +11:00
Douwe Osinga 5e0b074a98 Don't die on strange chars (#5415)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
2025-10-28 20:08:15 -04:00
Douwe Osinga 4034f3fcef Make reply use the API (#5389)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
2025-10-28 15:27:28 -04:00
Spence 35f286a9d1 Fix/icon ii (#5413) 2025-10-28 11:38:45 -07:00
Douwe Osinga fb95068e4a Recipe variables (#5365)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
Co-authored-by: Zane Staggs <zane@squareup.com>
2025-10-28 09:28:47 -04:00
David Katz 77fe4f329f Auto-compact Threshold UI improvements (#5354) 2025-10-27 15:22:06 -04:00
Amed Rodriguez f0cffdb4ac include sessionId in tool request (#5394) 2025-10-27 11:14:02 -07:00
Amed Rodriguez 774baf1cdb Fix scheduler jobs dates formatting (#5368) 2025-10-24 15:18:02 -07:00
Zane 8b3e3a8357 Add bottom menu extension selection (#5352) 2025-10-24 14:03:01 -07:00
Will Pfleger 044b227fdb (re)Standardize Session Name Attribute (#5279) 2025-10-24 13:34:08 -04:00
Alex Hancock b22abfc623 chore: improve timeout for entering password when running goose ui from source (#5349) 2025-10-24 10:16:40 -04:00
Zane 4acb4871b7 Unify loading goose messages and usechatstream determines chat state (#5306)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
2025-10-23 15:51:01 -07:00
Manik Surtani 8d9c19f2c2 fix: remove dependency on gsap library (#5330)
gsap's highly limited use in this codebase can easily be achieved using the native JS Web Animations API.
2025-10-22 22:15:13 -04:00