1. 15 Apr, 2026 3 commits
  2. 14 Apr, 2026 2 commits
  3. 12 Apr, 2026 1 commit
  4. 11 Apr, 2026 8 commits
  5. 09 Apr, 2026 19 commits
    • Your Name's avatar
      Bump version to 0.99.15 · cd3769d8
      Your Name authored
      Fix Kilo OAuth2 500 errors with retry logic:
      - Root cause: Vercel edge node cdg1 returning 500 errors
      - Added retry logic with exponential backoff (3 attempts)
      - Logs Vercel edge node ID to track which node handles request
      - Retries automatically route to different edge nodes
      - Delays: 1s, 2s, 4s between retries
      cd3769d8
    • Your Name's avatar
      Bump version to 0.99.14 · f884822b
      Your Name authored
      Add detailed request/response logging for Kilo OAuth2:
      - Log exact request URL, headers, and body
      - Log httpx version being used
      - Log complete response status, headers, and body
      - This will help diagnose the 500 error difference between local and remote
      f884822b
    • Your Name's avatar
      Bump version to 0.99.13 · 5b70ef31
      Your Name authored
      Add explicit headers to Kilo OAuth2 device auth request:
      - Added Content-Length: 0 header
      - Added User-Agent header
      - Attempting to fix 500 error on remote servers
      5b70ef31
    • Your Name's avatar
      Bump version to 0.99.12 · adc12b41
      Your Name authored
      Fix Kilo OAuth2 device auth for remote servers:
      - Changed from data={} to explicit content=b'' with Content-Type header
      - This ensures proper form-urlencoded POST request format
      - Fixes 500 error when calling from remote servers behind nginx
      adc12b41
    • Your Name's avatar
      Add favicon to PyPI package · 7c82fca3
      Your Name authored
      7c82fca3
    • Your Name's avatar
      Bump version to 0.99.11 · c802cbea
      Your Name authored
      - Added version number to debug startup message
      - Fixed Kilo OAuth2 device auth endpoint (form encoding)
      - Fixed dashboard save endpoints (rotations/autoselect)
      - Fixed analytics page template syntax error
      - Fixed Kilo provider model prefetch at startup
      - Added favicon to PyPI package
      c802cbea
    • Your Name's avatar
      Bump version to 0.99.10 · 5e8dc9ad
      Your Name authored
      Fixes:
      - Kilo OAuth2 device auth endpoint now uses form encoding instead of JSON
      - Final fix for Kilo device auth 500 Internal Server Error
      5e8dc9ad
    • Your Name's avatar
      Bump version to 0.99.9 · d1ca98a2
      Your Name authored
      Fixes:
      - Kilo OAuth2 device auth initiation 500 error (missing empty json payload)
      - Kilo provider model prefetch at startup for OAuth2 credentials
      - Rotations save endpoint 500 error
      - Autoselect save endpoint config shadowing bug
      - Analytics page Jinja2 TemplateSyntaxError
      d1ca98a2
    • Your Name's avatar
      Bump version to 0.99.8 · b52224b8
      Your Name authored
      Fixes:
      - Kilo provider model prefetch at startup for OAuth2 credentials
      - Rotations save endpoint 500 error (form parameter mismatch, config shadowing)
      - Autoselect save endpoint config shadowing bug
      - Analytics page Jinja2 TemplateSyntaxError (missing closing parenthesis)
      - FormData JSON serialization in validation error handler
      b52224b8
    • Your Name's avatar
      v0.99.7 - Fixed undefined provider_key variable bug in OAuth2 handlers, fixed... · cb80847f
      Your Name authored
      v0.99.7 - Fixed undefined provider_key variable bug in OAuth2 handlers, fixed config shadowing bug in rotations save handler
      cb80847f
    • Your Name's avatar
      Fix OAuth2 provider model auto-population · 1c0f7090
      Your Name authored
      - Remove automatic model detection during provider save operations
      - OAuth2 providers now only show models when 'Get Models from Provider' is clicked
      - Users have full control over when models are fetched and saved
      - Bump version to 0.99.6
      1c0f7090
    • Your Name's avatar
      Version 0.99.5: Fix JavaScript syntax errors in templates · 483edf5b
      Your Name authored
      - Fixed malformed url_for() calls with extra quotes in providers.html
      - Corrected uploadCodexFile function JavaScript syntax
      - Fixed remaining hardcoded OAuth2 URLs
      - All JavaScript template syntax errors resolved
      - Updated version in setup.py, pyproject.toml, aisbf/__init__.py, and PYPI.md
      - Added changelog entry for 0.99.5
      483edf5b
    • Your Name's avatar
      Fix JavaScript syntax errors in providers.html template · 2fa6c455
      Your Name authored
      - Fixed malformed url_for() calls in uploadCodexFile function (extra quotes)
      - Fixed hardcoded /dashboard/claude/auth/complete URL to use url_for()
      - All JavaScript syntax errors resolved for proper template rendering
      2fa6c455
    • Your Name's avatar
      Version 0.99.4: Fix OAuth2 proxy-awareness for reverse proxy deployments · 2aa9d96d
      Your Name authored
      - Fixed OAuth2 authentication endpoints not respecting reverse proxy subpaths
      - Updated all OAuth2 JavaScript fetch calls to use url_for() instead of hardcoded /dashboard/ paths
      - Fixed Claude, Kilo, Codex, and Qwen OAuth2 authentication flows for reverse proxy deployments
      - Fixed file upload endpoints, rate limits data endpoint, user management endpoints, and autoselect save endpoint
      - OAuth2 authentication buttons now work correctly behind nginx reverse proxy with /aisbf/ location
      - Updated version in setup.py, pyproject.toml, aisbf/__init__.py, and PYPI.md
      - Added changelog entry for 0.99.4
      2aa9d96d
    • Your Name's avatar
      Version 0.99.3: Fix template download links and Jinja2 syntax errors · 8b94a935
      Your Name authored
      - Fixed malformed Jinja2 template syntax in user_providers.html causing download link issues
      - Corrected URL generation for authentication file download links
      - Fixed extension download link in providers.html template
      - All template syntax errors resolved for proper dashboard rendering
      - Updated version in setup.py, pyproject.toml, aisbf/__init__.py, and PYPI.md
      - Added changelog entry for 0.99.3
      8b94a935
    • Your Name's avatar
      Bump version to 0.99.2 · 36192a0f
      Your Name authored
      - Fixed Jinja2 template syntax errors in dashboard templates
      - Updated version in pyproject.toml, setup.py, and aisbf/__init__.py
      - Updated PYPI.md and CHANGELOG.md with new version
      36192a0f
    • Your Name's avatar
      Fix malformed Jinja2 template syntax caused by previous sed replacement · c8d67301
      Your Name authored
      - Corrected nested template tags in dashboard templates
      - All fetch() calls and URL generations now use proper url_for syntax
      - Templates should render correctly now
      c8d67301
    • Your Name's avatar
      Fix reverse proxy URL generation and bump version to 0.99.1 · a320f5af
      Your Name authored
      - Fix login redirect after authentication not respecting proxy subpaths
      - Modified url_for function to return relative URLs when behind reverse proxy
      - Updated login form action and template URLs to use url_for
      - Fixed JavaScript fetch calls in providers and rotations templates
      - Bumped version to 0.99.1 in all configuration files
      - Updated CHANGELOG.md and PYPI.md with new version
      a320f5af
    • Your Name's avatar
      feat: Add Qwen OAuth2 provider support (v0.99.0) · 328cb8bf
      Your Name authored
      - Implemented complete OAuth2 Device Authorization Grant with PKCE (S256)
      - Added aisbf/auth/qwen.py for OAuth2 authentication
      - Added aisbf/providers/qwen.py for OpenAI-compatible DashScope API
      - Cross-process token synchronization with file locking
      - Automatic token refresh with 30-second expiry buffer
      - Optional API key mode (bypass OAuth2)
      - Dashboard integration ready
      - Free tier: 1,000 requests/day, 60 requests/minute
      - Available models: qwen-plus, qwen-turbo, qwen-max, coder-model
      - Updated documentation in AI.PROMPT, README.md, and CHANGELOG.md
      - Version bumped to 0.99.0
      328cb8bf
  6. 04 Apr, 2026 7 commits
    • Your Name's avatar
    • Your Name's avatar
    • Your Name's avatar
      v0.9.9: User-based configuration routing for providers, rotations,... · faf1ac4b
      Your Name authored
      v0.9.9: User-based configuration routing for providers, rotations, autoselects, and OAuth2 credentials
      
      - Config admin (from aisbf.json, user_id=None) saves configurations to JSON files
      - Database users save configurations to the database (user_providers, user_rotations, user_autoselects tables)
      - Dashboard endpoints check user type and route accordingly
      - File upload endpoint supports both config admin (files) and database users (database)
      - MCP server tools accept user_id parameter and route to appropriate storage
      - OAuth2 credential handling already implemented this pattern (Claude, Kilo, Codex)
      - Updated CHANGELOG.md, setup.py, and pyproject.toml
      faf1ac4b
    • Your Name's avatar
    • Your Name's avatar
      Fix aisbf.sh to respect server.host from aisbf.json config · 5699cf7c
      Your Name authored
      - Added find_config_file() to check config locations in correct order
      - Added get_host() to read server.host from config (defaults to 127.0.0.1)
      - Fixed get_port() to read from server.port instead of top-level port
      - Updated start_server() and start_daemon() to use config-based host
      - Updated CHANGELOG.md with the fix
      5699cf7c
    • Your Name's avatar
      fix: Split Codex OAuth2 device flow into non-blocking start/poll pattern · e2243ed6
      Your Name authored
      - Changed authenticate_with_device_flow() to request_device_code_flow() + poll_device_code_completion()
      - /dashboard/codex/auth/start now returns immediately with verification URI and user code
      - /dashboard/codex/auth/poll checks for completion status
      - Fixed poll_device_code_token to raise exception for 403/404 (pending state)
      - Dashboard JavaScript opens popup window with verification URI immediately
      e2243ed6
    • Your Name's avatar
      feat: Add Codex provider with OAuth2 Device Authorization Grant support (v0.9.8) · 4bba04b4
      Your Name authored
      - New codex provider type using OpenAI-compatible protocol
      - OAuth2 authentication via Device Authorization Grant flow
      - Provider handler in aisbf/providers/codex.py
      - OAuth2 handler in aisbf/auth/codex.py
      - Dashboard integration with authentication UI
      - Token refresh with automatic retry
      - API key exchange from ID token
      - Updated version to 0.9.8 in setup.py and pyproject.toml
      - Updated CHANGELOG.md, README.md, PYPI.md with Codex documentation
      - Added codex provider configuration to config/providers.json
      4bba04b4