- 17 Apr, 2026 37 commits
-
-
Your Name authored
-
Your Name authored
-
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 -
Your Name authored
-
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
-
Your Name authored
-
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
-
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
-
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
-
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
-
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
-
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
-
Your Name authored
-
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
-
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
-
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
-
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.
-
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
-
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
-
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
-
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
-
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.
-
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
-
Your Name authored
-
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. -
Your Name authored
-
Your Name authored
-
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
-
Your Name authored
-
Your Name authored
- Added usage tracking to AwsEventStreamParser - Parser now stores usage_credits and context_usage_percentage - Added get_usage() method to retrieve usage data - Updated handler to pass usage data to response builder - Non-streaming: Uses actual usage_credits as total_tokens - Streaming: Includes usage_credits in final chunk - Falls back to 0 if Kiro API doesn't provide usage data - Prevents over-estimation when Kiro returns 0 tokens
-
Your Name authored
-
Your Name authored
- Changed from checking 'is_default = 1' to checking total record count - Default tier now only inserted if table has 0 records - Prevents inserting default tier when user has custom tiers - Improved logging to show tier count and skip reason
-
Your Name authored
-
Your Name authored
- Changed log message from 'Default payment system data inserted' to 'Default payment system data checked (existing records preserved)' - Added comments explaining INSERT OR IGNORE behavior - Clarifies that existing records are never overwritten - Uses INSERT OR IGNORE/INSERT IGNORE which only inserts if record doesn't exist based on UNIQUE constraints
-
Your Name authored
-
Your Name authored
- Added analytics recording for failed rotation requests - Added analytics recording for failed autoselect requests - Added analytics recording for streaming requests (success and failure) - Added analytics recording for authentication failures - Now tracks ALL requests: direct provider, rotation, autoselect, streaming - Ensures complete analytics data for dashboard visibility
-
Your Name authored
- Fixed lost account tiers after server restart - Fixed lost payment gateway configurations on MySQL - Added _create_account_tiers_table() method to create tiers table - Added admin_settings table to _create_config_tables() - Added default free tier insertion if none exists - Both fixes use CREATE TABLE IF NOT EXISTS to preserve existing data - Resolves issues introduced in commits f997a0fb and 0052431f
-
- 16 Apr, 2026 3 commits
-
-
Your Name authored
-
Your Name authored
All fixes verified and packaged: - Admin settings page os context fix - Consolidation settings UPSERT persistence - Prominent top-center notification alerts - Live crypto prices for BTC, ETH, USDT, USDC - ENCRYPTION_KEY management UI - All templates and code correctly packaged
-
Your Name authored
- Changed from small bottom-right toast to large top-center alert - Added gradient backgrounds (green for success, red for error, orange for warning) - Added large icons (check circle, exclamation circle, warning triangle) - Centered at top of page with 400-600px width - Smooth slide-down animation on appear, slide-up on dismiss - Auto-dismisses after 4 seconds - Much more noticeable for important actions like saving settings
-