1. 19 Apr, 2026 12 commits
  2. 17 Apr, 2026 28 commits
    • Your Name's avatar
      0.99.32 · 11f1173b
      Your Name authored
      11f1173b
    • Your Name's avatar
      Update pyproject.toml to version 0.99.32 · c9d4dba1
      Your Name authored
      c9d4dba1
    • Your Name's avatar
      v0.99.32 - Fix OAuth authentication UI and restore full functionality · 7fdaca09
      Your Name authored
      - Fixed duplicate authentication area in providers dashboard
      - Restored full OAuth authentication with popup windows for all providers
      - Added missing JavaScript authentication functions (authenticateClaude, authenticateQwen, authenticateCodex, authenticateKilo)
      - Added missing backend endpoint /dashboard/providers/{provider_name}/auth/check
      - Fixed import errors and attribute access for OAuth provider configs
      - Fixed credential structure access for each OAuth provider type
      - Fixed polling status responses (approved -> completed)
      - Added human-readable expiration time formatting (days, hours, minutes, seconds)
      - All OAuth flows now work with proper popup windows, polling, and status updates
      7fdaca09
    • Your Name's avatar
      Update version 0.99.31 · e7663cb5
      Your Name authored
      e7663cb5
    • Your Name's avatar
      fix: restore dashboard functionality and add response cache page · 0a61873a
      Your Name authored
      - Restore Rate Limits and Response Cache links in analytics page for admin users
      - Add detailed Optimization Savings section with token and cost breakdown
      - Fix JavaScript syntax error in rate limits page
      - Add response cache dashboard page with statistics and management
      - Update setup.py to include new response cache template
      0a61873a
    • Your Name's avatar
    • Your Name's avatar
      feat: add savings estimation to analytics dashboard · 75ee3b84
      Your Name authored
      - Add Estimated Savings card showing money saved from cache hits
      - Fetch cache statistics via AJAX and calculate savings
      - Display savings prominently in Cost Overview section
      - Assumes average cost of $0.002 per cached request
      75ee3b84
    • Your Name's avatar
      feat: add navigation links and response cache page to analytics dashboard · 99d1cd6c
      Your Name authored
      - Add quick links navigation to Analytics, Response Cache, and Rate Limits pages
      - Create response_cache.html template with cache statistics and management
      - Add /dashboard/response-cache route to display cache page (not just JSON)
      - Fix rate_limits URL in navigation (use /dashboard/rate-limits)
      - All three pages now have consistent navigation between them
      99d1cd6c
    • Your Name's avatar
      fix: move updateUsers function to global scope to fix bulk operations · a656cec9
      Your Name authored
      - Move updateUsers and getUrlParams functions outside DOMContentLoaded
      - Add attachEventListeners function to reattach event handlers after AJAX updates
      - Fixes 'updateUsers is not defined' error when performing bulk operations
      a656cec9
    • Your Name's avatar
      fix: add missing status_filter and role_filter parameters to dashboard users route · c16ccbf5
      Your Name authored
      - Add status_filter and role_filter query parameters with validation
      - Pass filter parameters to database method
      - Include filter values in template context for UI persistence
      c16ccbf5
    • Your Name's avatar
      fix: add missing search controls, filter dropdowns, and bulk action helper functions · 8b65f56e
      Your Name authored
      - Add back search controls with filter dropdowns (status/role) that were accidentally removed
      - Add missing bulk action helper functions: updateBulkActionsVisibility, updateSelectAllState, clearSelection, performBulkAction
      - Ensure bulk selection and bulk operations work correctly
      8b65f56e
    • Your Name's avatar
      Add backend bulk operations API for user management · f54c15df
      Your Name authored
      - Implement POST /dashboard/users/bulk route for bulk operations
      - Support enable, disable, delete, and tier change actions
      - Add input validation for action and user_ids parameters
      - Include error handling and appropriate JSON responses
      - Log errors for debugging purposes
      f54c15df
    • Your Name's avatar
    • Your Name's avatar
      feat: add status/role filter dropdowns and bulk selection UI · 4cb5844f
      Your Name authored
      - Add status filter (active/inactive) and role filter (admin/user) dropdowns
      - Add select all checkbox and individual user checkboxes
      - Add bulk action bar with tier change, enable/disable, delete buttons
      - Include selection counter and clear selection button
      4cb5844f
    • Your Name's avatar
      feat: add status and role filtering to get_users_paginated method · 829c0e37
      Your Name authored
      - Add status_filter parameter (active/inactive)
      - Add role_filter parameter (admin/user)
      - Combine filters with existing search functionality
      - Update both main query and count query
      829c0e37
    • Your Name's avatar
      Add user management enhancement phase 2 plan · 30e4719b
      Your Name authored
      - Advanced filtering by user status (active/inactive) and role (admin/user)
      - Bulk selection with checkboxes and select all functionality
      - Bulk operations: enable, disable, delete, change tier
      - Confirmation dialogs for destructive actions
      - Selection counter and clear selection
      - Combined filtering with existing search/sorting/pagination
      30e4719b
    • Your Name's avatar
      test: verify complete user management enhancement functionality · 79e801da
      Your Name authored
      - Pagination works correctly across page sizes
      - Search filters users by username, email, display name
      - Sorting works for all columns in both directions
      - URL state maintained for bookmarking
      - Edge cases handled gracefully
      
      All 30+ test cases passed successfully.
      79e801da
    • Your Name's avatar
      feat: add AJAX functionality for search, sorting, and pagination · 5fbd21e1
      Your Name authored
      - Debounced search input with clear functionality
      - Clickable sortable headers with direction indicators
      - Pagination controls with previous/next buttons and page size selector
      - URL state management for bookmarking
      - Loading states and error handling
      5fbd21e1
    • Your Name's avatar
      feat: add search input and sortable headers to users template · 0a970415
      Your Name authored
      - Add search input field with current search value
      - Make username, created_at, last_login headers sortable with indicators
      - Add pagination controls with page size selector
      - Include 'showing X-Y of Z' counter
      0a970415
    • Your Name's avatar
      feat: update /dashboard/users route for pagination and filtering · aa85681b
      Your Name authored
      - Add query parameters: page, limit, search, order_by, direction
      - Use new get_users_paginated database method
      - Calculate pagination metadata (total pages, current range)
      - Pass filters and pagination data to template
      aa85681b
    • Your Name's avatar
      feat: add get_users_paginated method to database layer · 8c0fdd1f
      Your Name authored
      - Support pagination with LIMIT/OFFSET
      - Case-insensitive search across username, email, display_name
      - Sorting by username, last_login, created_at, tier_name
      - Return both users list and total count for pagination
      8c0fdd1f
    • Your Name's avatar
      Add user management enhancement implementation plan · 52c2bd65
      Your Name authored
      - Database layer: get_users_paginated method with search and sorting
      - API layer: /dashboard/users route with query parameters
      - Frontend: Search input, sortable headers, pagination controls
      - JavaScript: AJAX updates with URL state management
      - Testing: Complete functionality verification
      
      Plan structured as 5 bite-sized tasks with TDD approach.
      52c2bd65
    • Your Name's avatar
      Add user management page enhancement design document · af76c07e
      Your Name authored
      - Pagination with customizable page sizes (10, 25, 50, 100)
      - Search by username, email, display name (case-insensitive)
      - Multi-column sorting (username, last login, signup date, tier)
      - URL state management for bookmarking
      - AJAX-based updates for smooth UX
      - Comprehensive error handling and performance considerations
      af76c07e
    • Your Name's avatar
      Analytics system · fe8b625a
      Your Name authored
      fe8b625a
    • Your Name's avatar
      fix: initialize providers list on page load · 823291c7
      Your Name authored
      - Moved JavaScript to {% block extra_js %} at end of body for proper DOM timing
      - Added renderProvidersList() call to populate providers on page load
      - Added debug console.log statements for troubleshooting
      - Moved CSS styles to {% block content %} to keep them in head section
      
      The providers page was empty because renderProvidersList() was never called.
      Now it executes after DOM is ready and populates all 23 providers.
      823291c7
    • Your Name's avatar
      a2aaca0c
    • Your Name's avatar
      e48a89f5
    • Your Name's avatar
      feat: add subscription-based provider and custom pricing configuration · ae1fb479
      Your Name authored
      - Added is_subscription, price_per_million_prompt, and price_per_million_completion fields to Provider model
      - Updated analytics to check provider config for subscription status and custom pricing
      - Subscription providers have $0 cost but usage is still tracked
      - Added _get_provider_pricing() method to get provider-specific pricing
      - Updated provider configuration UI with pricing section:
        - Checkbox for subscription-based provider (free)
        - Input fields for custom prompt/completion token pricing
        - Pricing fields hidden when subscription is checked
      - Falls back to default pricing if not configured
      - Allows admins and users to configure per-provider pricing
      ae1fb479