Commit Graph

52 Commits

Author SHA1 Message Date
Manoj Bajaj 749e703274 feat: merge agent detail view with enhanced agents list and review fixes
Merge feature/agent-detail-view (#444) and resolve conflicts, keeping the
PR's backend-driven detail page (API endpoint, audit scoping, tests) and
our enhanced agents list view (search, card headers, claim badges).

Also fixes three review issues:
- Add 403 guard for non-admin audit identity filter (prevents querying
  events for identities the caller does not own)
- Add idx_audit_events_identity index via migration v2
- Update test assertions for new 403 behavior and migration count

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 06:06:12 -07:00
Manoj Bajaj 02658d1aee feat: Improve agents page 2026-06-17 05:24:28 -07:00
Ankit Ranjan 43f9b4ebde fix: simplify agent detail metadata layout 2026-06-17 15:53:29 +05:30
Ankit Ranjan 256753f320 feat: add agent detail view 2026-06-17 15:49:37 +05:30
Manoj Bajaj e0e6498b35 fix(ui): remove sidebar gaps in main and settings layouts
The skip-link was participating in the sidebar flex row because sr-only
was not applied via @apply, and settings pages were centered inside a
max-width wrapper that pushed the sub-sidebar away from the main nav.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 17:09:15 -07:00
Manoj Bajaj 969c068e23 feat: improve UI design system, layouts, and remaining pages
Add theme provider, dark mode toggle, and typography components.
Update globals.css with refined color palette and enterprise-grade
table/card/badge density overrides. Improve authenticated layout,
settings layout, dashboard shell, overview views, auth flow pages,
page states, and section headers with consistent styling.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 16:50:05 -07:00
Manoj Bajaj ab122f60d7 feat: improve connections and providers page design
Redesign connections list with provider logos, filter counts, grouped
global section with left-border accent, and confirmation dialogs.
Restructure connection detail into grouped cards (Identity, Token,
Endpoints, Secrets) with status badges and copyable fields. Add filter
chips (OAuth/API Key, Connected/Available) to providers list. Improve
provider cards with inline logo+name+tag layout. Refactor provider
detail with DetailField pattern, copyable callback URL, separated
revoke card, and better empty states.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 16:49:20 -07:00
Manoj Bajaj 3e04eff5a4 feat: Improve settings page 2026-06-16 14:47:48 -07:00
Ankit Ranjan 54ba7b23e2 feat: implement tooltip help text and collapsible advanced sections in custom provider form 2026-06-16 17:11:05 +05:30
Ankit Ranjan 8f4029ec7e feat: implement custom provider management with CRUD support, registration schema updates, and a dedicated UI form. 2026-06-16 14:06:11 +05:30
Ankit Ranjan 6645d7ef21 Merge branch 'main' into feature/expand-settings-page 2026-06-15 18:29:07 +05:30
beubax de814ee15e fix: restore logo dev token 2026-06-15 18:26:14 +05:30
beubax cfc14a354a Merge branch 'main' into feature/user-scoped-audit-log
# Conflicts:
#	ui/src/components/authsome-dashboard.tsx
2026-06-15 18:22:16 +05:30
beubax 71d52ad0f8 refactor: remove audit event filters 2026-06-15 18:06:50 +05:30
Ankit Ranjan 972e00c575 refactor: rename identity to agent throughout CLI and UI for improved terminology consistency 2026-06-15 17:27:10 +05:30
Ankit Ranjan d884d4842a style: update dashboard navigation buttons to use outline variant 2026-06-15 14:50:02 +05:30
Ankit Ranjan c84b90bfb1 refactor: remove interactive links from dashboard tables and adjust border styling for interactive components 2026-06-15 14:43:52 +05:30
beubax 3a94665041 Merge branch 'main' into feature/user-scoped-audit-log 2026-06-15 14:21:05 +05:30
Ankit Ranjan 7b2f4cea61 refactor: modularize the dashboard component structure by migrating features into dedicated UI components and domain-specific modules. 2026-06-15 14:17:02 +05:30
beubax 0b8d752392 feat: show scoped audit log in dashboard 2026-06-15 14:05:08 +05:30
Ankit Ranjan 29d28137ad fix: prevent daemon error card clipping 2026-06-12 17:09:54 +05:30
Ankit Ranjan da7a4017b1 fix: refine provider and connection dashboard states 2026-06-12 16:46:18 +05:30
Ankit Ranjan e5ee9b9d3e fix: clarify clickable surface hover states 2026-06-12 16:16:22 +05:30
Ankit Ranjan 8d934387fc fix: polish connection action feedback 2026-06-12 15:28:27 +05:30
Ankit Ranjan 13cbd0d54d fix: keep connections page unfiltered after detail navigation 2026-06-12 15:15:19 +05:30
Ankit Ranjan 8f35bf1216 fix: polish dashboard connection flows 2026-06-12 13:36:28 +05:30
beubax e6e51fddf3 fix: pass global connection props to connections page 2026-06-10 15:14:29 +05:30
beubax 08e9650af3 Merge branch 'main' into feature/global-connection-pointers 2026-06-10 14:03:05 +05:30
beubax b21f5b11b2 feat: show global connections in dashboard 2026-06-10 13:57:53 +05:30
Manoj Bajaj d27267fc02 feat(ui): add authenticated layout with sidebar and breadcrumbs
Move all authenticated pages into an (authenticated) route group so
sidebar and breadcrumbs are provided once by layout.tsx rather than
repeated in every page. The layout handles the SWR fetch, 401
redirect, and loading state centrally; each page is now a thin client
component that reads from the SWR cache.

Also adds the shadcn breadcrumb component and fixes the
SidebarMenuSkeleton hydration mismatch caused by Math.random() via
suppressHydrationWarning.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 01:23:15 +05:30
Manoj Bajaj 67fbe483dd fix(ui): replace Button render-as-link with Link+buttonVariants; img→Image, a→Link
- Remove all Button render={<Link>} / render={<a>} patterns — Base UI's
  Button sets nativeButton=true by default, which injects role/tabIndex
  onto the rendered <a> element server-side but not client-side, causing
  the React hydration tree mismatch. Using Link/a directly (styled via
  buttonVariants) removes the wrapper entirely and fixes the mismatch.
- Three <img> logo tags → <Image> (size-11→44px, size-9→36px, size-5→20px)
- Verification page open link → <Link>
- Sidebar footer external links: <a> → <Link> via SidebarMenuButton render prop
- Import buttonVariants alongside Button

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 01:09:32 +05:30
Manoj Bajaj ae806a3116 feat(ui): redesign provider/connection detail pages and fix accent token
- Make entire provider card clickable via router.push; stopPropagation
  on the Connect button keeps the form action independent
- Fix --accent in dark mode: was emerald (#10B981), now neutral
  surface-container-high (#2a2a2c) — fixes green hover bleed on every
  shadcn component that uses bg-accent (sidebar items, dropdowns, cards)
- Align --sidebar-accent to match the corrected --accent token
- Remove Back button and title from DashboardDetailShell; shell now
  only owns the sidebar + topbar + scroll container
- Provider detail: logo/name/description in a borderline page header,
  "New connection" button pinned top-right; redundant Connect card removed
- Connection detail: provider label + connection h1 in page header;
  Set-as-default / View-provider / Logout actions inline top-right;
  Actions card removed; layout tightened to two flat content cards
- DashboardDetailShell gains h-svh / overflow-y-auto scroll containment
  matching the main dashboard shell (detail pages were the outlier)
- Document --accent token rules in DESIGN.md to prevent regression

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 01:00:37 +05:30
Ankit Ranjan c56ccf4b95 refactor: update dashboard layout for fixed height and optimize mobile hook using useSyncExternalStore 2026-06-09 15:15:53 +05:30
Manoj Bajaj 9f622ec1ab feat: Improve UI 2026-06-09 11:26:02 +05:30
Manoj Bajaj 3a7a7b8aea feat: Improve UI 2026-06-09 09:45:23 +05:30
Manoj Bajaj 573f128f1d Merge branch 'main' into feature/provider-connection-details-pages 2026-06-09 08:36:08 +05:30
Ankit Ranjan 3b7b175b70 feat: add required field support to InputField and update UI components to respect optionality 2026-06-08 22:52:21 +05:30
beubax 73c58437b6 feat: enable admin browser sessions for provider revocation and add error handling to UI button 2026-06-08 16:17:41 +05:30
beubax 39caabec15 feat: hide configuration UI for API key providers 2026-06-08 16:01:26 +05:30
beubax f6af9a13e8 Merge branch 'main' into feature/provider-connection-details-pages 2026-06-08 15:58:10 +05:30
beubax 11d2166109 feat: implement provider and connection detail endpoints with UI support for configuration management and status monitoring 2026-06-08 15:57:50 +05:30
Manoj Bajaj 2705e8e6e5 feat: Build dependencies 2026-06-06 09:48:49 +05:30
Manoj Bajaj 10f6e8ae41 fix: Remove type checking hacks 2026-06-04 21:28:22 +05:30
Manoj Bajaj 33e13f9625 feat: Add logos and description for all bundled providers 2026-06-04 20:10:04 +05:30
Manoj Bajaj 635285a565 feat: add provider dashboard metadata 2026-06-03 15:17:43 +05:30
Manoj Bajaj 52fe7dc5c3 fix: move dashboard auth flow to Next routes 2026-06-03 14:49:56 +05:30
Manoj Bajaj ff592fde59 fix(ui): replace setState-in-effect with lazy useState initializers
Calling setActiveView/setConnectionFilter inside useEffect body triggered
the react-hooks/set-state-in-effect lint error. Initialise both states
directly from URL params via lazy useState initialisers so no effect is
needed, and remove the now-unused useEffect import.

Also scope Docker build to version tags only (release-please triggers),
and restrict Python Tests to push/PR against main.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 17:05:12 +05:30
Manoj Bajaj 60931a027b feat(ui): redirect to connections view after successful provider login
After OAuth completes, the return_url now points to
/?view=connections&provider=<name> instead of /. On load, the dashboard
reads those query params to activate the connections view and pre-populate
the search filter with the provider name, landing the user on a page that
confirms their new connection.

Fixes #355

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 16:42:12 +05:30
Manoj Bajaj 98a3351c56 feat: replace Python dashboard fallback with built Next.js static UI
- Build Next.js app and populate src/authsome/ui/web/ so GET / is served
  from the static bundle rather than a Python f-string page
- Apply DESIGN.md (Deep Emerald + Obsidian, dark-first) to the Next.js
  app: update globals.css tokens, switch fonts to Hanken Grotesk +
  JetBrains Mono, add dark class to <html>, replace all hardcoded
  bg-white/bg-slate-* with semantic CSS-variable classes
- Redesign Python interstitial pages (claim, device-code, OAuth input,
  error) using the same DESIGN.md tokens in web_theme.py
- Remove Python GET / route and dashboard_page() — Next.js AuthGate
  handles unauthenticated state; no Python fallback needed
- Remove the GET / special-case from _resolve_ui_auth
- Move DESIGN.md to ui/ (the Next.js root, the correct home)
- Delete test_ui_sessions.py and test_ui_dashboard.py; server-rendered
  dashboard UI no longer exists as Python code

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 16:18:55 +05:30
Manoj Bajaj 301d353c5e fix: Cleaner design
Entire-Checkpoint: 7b0ed9933c30
2026-06-02 02:09:39 +05:30