1. 26 Mar, 2026 1 commit
    • Your Name's avatar
      feat: Add NSFW/privacy content filtering and semantic classification · e02ed7fc
      Your Name authored
      - Add NSFW/privacy boolean fields to models (providers.json, rotations.json, autoselect.json)
      - Implement content classification using last 3 messages for performance
      - Add semantic classification with hybrid BM25 + sentence-transformer re-ranking
      - Update autoselect handler to support classify_semantic flag
      - Add new semantic_classifier.py module with hybrid search capabilities
      - Update dashboard templates to manage new configuration fields
      - Update documentation (README.md, DOCUMENTATION.md) with new features
      - Bump version to 0.6.0 in pyproject.toml and setup.py
      - Add new dependencies: sentence-transformers, rank-bm25
      - Update package configuration for PyPI distribution
      e02ed7fc
  2. 23 Mar, 2026 24 commits
    • Your Name's avatar
      Update CHANGELOG with all changes since 0.1.2 · b2151583
      Your Name authored
      - Added Kiro AWS Event Stream parsing and converters
      - Added TOR hidden service support
      - Added MCP server endpoint
      - Added credential validation for kiro/kiro-cli
      - Added various Python 3.13 compatibility fixes
      - Added intelligent 429 rate limit handling
      - Updated venv handling and auto-update features
      b2151583
    • Your Name's avatar
      Merge branch 'experimental' · 8a986192
      Your Name authored
      8a986192
    • Your Name's avatar
      Update CHANGELOG with recent changes · 50f5d67a
      Your Name authored
      - Added Unreleased section for OpenRouter fields implementation
      - Added web dashboard documentation updates
      - Documented Model class fixes for API compatibility
      50f5d67a
    • Your Name's avatar
      Add web dashboard section to README with screenshot · 9467bd25
      Your Name authored
      - Added screenshot.png reference at top of README
      - Added Web Dashboard section describing features
      - Includes dashboard access information and default credentials
      9467bd25
    • Your Name's avatar
      Add OpenRouter-style extended fields to Model class · 27da6f46
      Your Name authored
      - Added description, context_length, architecture, pricing, top_provider, supported_parameters, and default_parameters fields
      - Fixes crash when returning model data through API with OpenRouter metadata
      - Aligns Model class with ProviderModelConfig, RotationConfig, and AutoselectConfig
      27da6f46
    • Your Name's avatar
      feat: Add Kiro AWS Event Stream parsing, converters, and TODO roadmap · 2e7a8460
      Your Name authored
      - Add aisbf/kiro_parsers.py: AWS Event Stream parser for Kiro API responses
      - Update kiro_converters_openai.py: Add build_kiro_payload_from_dict function
      - Update kiro_converters.py: Minor fixes
      - Update kiro_auth.py: Add AWS SSO OIDC authentication support
      - Update handlers.py: Enhance streaming and error handling
      - Update main.py: Add proxy headers middleware and configuration
      - Update setup.py: Add version bump
      - Add TODO.md: Comprehensive roadmap for caching and performance improvements
      
      Features:
      - Kiro AWS Event Stream parsing for non-streaming responses
      - OpenAI-to-Kiro payload conversion
      - AWS SSO OIDC authentication for Kiro
      - Proxy headers middleware for reverse proxy support
      - TODO roadmap with prioritized items for future development
      2e7a8460
    • Your Name's avatar
      Fix premature tool call finalization in Kiro streaming responses · 52b44029
      Your Name authored
      - Avoid calling parser.get_tool_calls() during streaming loop
      - Only call get_tool_calls() after all chunks are processed
      - Send tool calls in separate chunk after content streaming completes
      - Prevents empty arguments issue caused by premature finalization
      52b44029
    • Your Name's avatar
      Fix kiro credential validation to handle dict-based config · 15f8fff0
      Your Name authored
      - Updated validate_kiro_credentials() to handle both dict and object config access
      - Added get_config_value() helper function for flexible config access
      - Now correctly detects kiro-cli credentials from SQLite database
      - Validation now works out of the box when kiro-cli is installed
      15f8fff0
    • Your Name's avatar
      Add credential validation for kiro/kiro-cli providers · 4718ce47
      Your Name authored
      - Added validate_kiro_credentials() function to check credential availability
      - Validates kiro IDE credentials from ~/.config/Code/User/globalStorage/amazon.q/credentials.json
      - Validates kiro-cli credentials from ~/.local/share/kiro-cli/data.sqlite3
      - Integrated validation into get_provider_models() to exclude providers without credentials
      - Added validation checks to all request endpoints (chat, audio, images, embeddings)
      - Providers only appear in model listings and accept requests when credentials are valid
      - Returns HTTP 403 when credentials are missing or invalid
      4718ce47
    • Your Name's avatar
      Fix template session references for Python 3.13 compatibility · 1da131cd
      Your Name authored
      - Updated base.html to use request.session instead of session
      - Resolves jinja2.exceptions.UndefinedError: 'session' is undefined
      - Completes Python 3.13 compatibility fix
      1da131cd
    • Your Name's avatar
      Improve venv handling to use system-installed aisbf package · 9ee547d7
      Your Name authored
      - Create venv with --system-site-packages flag to access system aisbf
      - Remove redundant aisbf package installation in venv
      - Venv now only contains requirements.txt dependencies
      - On upgrade detection, only update requirements.txt dependencies
      - System-installed aisbf package is automatically accessible in venv
      9ee547d7
    • Your Name's avatar
      Fix Python 3.13 compatibility issue with Jinja2 template caching · 1d62a6d8
      Your Name authored
      - Removed redundant 'session' parameter from all template responses
      - request.session is already accessible in templates via request object
      - Fixes TypeError: unhashable type: 'dict' in Jinja2 cache with Python 3.13
      1d62a6d8
    • Your Name's avatar
      Add auto-update venv feature on pip package upgrade · be97e35e
      Your Name authored
      - Added check_package_upgrade() function to detect when aisbf package is upgraded
      - Modified ensure_venv() to automatically update venv when package upgrade is detected
      - Version tracking using .aisbf_version file in venv directory
      - Ensures venv stays in sync with pip-installed package version
      be97e35e
    • Your Name's avatar
    • Your Name's avatar
      Add 'Create Persistent' button to TOR settings · fc19aae4
      Your Name authored
      - Add button to easily create persistent hidden service directory
      - Automatically fills in default path (~/.aisbf/tor_hidden_service)
      - Includes confirmation dialog if path already exists
      - Visual feedback on button click
      fc19aae4
    • Your Name's avatar
      Add TOR hidden service support (v0.5.0) · 6baea83b
      Your Name authored
      - Add full TOR hidden service support for exposing AISBF over TOR network
      - Create aisbf/tor.py module with TorHiddenService class
      - Add TorConfig model to config.py for TOR configuration
      - Update config/aisbf.json with TOR settings
      - Integrate TOR service into main.py with startup/shutdown handlers
      - Add TOR configuration UI to dashboard settings with real-time status
      - Add get_tor_status MCP tool for monitoring TOR service
      - Update README.md and DOCUMENTATION.md with TOR guides
      - Add stem library dependency to requirements.txt
      - Bump version to 0.5.0 in pyproject.toml
      - Support both ephemeral and persistent hidden services
      - All AISBF endpoints accessible over TOR network
      6baea83b
    • Your Name's avatar
      Add MCP documentation and dashboard settings · 96379f03
      Your Name authored
      - Add MCP features to README.md key features
      - Add MCP configuration section to dashboard settings page
      - Add MCP form handling in main.py dashboard_settings_save
      - Add comprehensive MCP documentation to API_EXAMPLES.md
      96379f03
    • Your Name's avatar
      Add MCP (Model Context Protocol) server endpoint · 924dfeeb
      Your Name authored
      - Implement MCP server module (aisbf/mcp.py) with SSE and HTTP stream support
      - Add two authentication levels: autoselect-only and fullconfig
      - Add MCP configuration to config/aisbf.json (disabled by default)
      - Add MCP endpoints to main.py: GET/POST /mcp, GET /mcp/tools, POST /mcp/tools/call
      - Both token types give access to standard APIs (list_models, chat_completion)
      - autoselect_tokens: access to autoselection/autorotation settings
      - fullconfig_tokens: access to full system configuration including providers
      
      This allows remote agents to configure the system and/or just the
      autoselections/rotations, as well as make requests for models.
      924dfeeb
    • Your Name's avatar
      Add proxy-awareness and configurable error cooldown features · 673281d1
      Your Name authored
      Proxy-Awareness:
      - Added ProxyHeadersMiddleware to detect and handle reverse proxy headers
      - Implemented get_base_url() and url_for() helper functions for proxy-aware URL generation
      - Updated all RedirectResponse calls to use url_for()
      - Updated templates/base.html to use url_for() for all links and fetch calls
      - Added comprehensive nginx proxy configuration examples to DOCUMENTATION.md
      - Supports X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port, X-Forwarded-Prefix, X-Forwarded-For headers
      - Application now fully supports deployment behind reverse proxies with subpaths
      
      Configurable Error Cooldown:
      - Added error_cooldown field to Model class in aisbf/models.py
      - Added error_cooldown to ProviderModelConfig in aisbf/config.py
      - Added default_error_cooldown to ProviderConfig in aisbf/config.py
      - Added default_error_cooldown to RotationConfig in aisbf/config.py
      - Updated BaseProviderHandler.record_failure() in aisbf/providers.py to use cascading cooldown configuration
      - Cooldown configuration follows cascading pattern: model-specific > provider default > system default (300 seconds)
      - Updated DOCUMENTATION.md with error_cooldown configuration examples
      - Updated AI.PROMPT with error_cooldown documentation
      
      Both features are fully documented and ready for production use.
      673281d1
    • Your Name's avatar
      Add Kiro to key features in README · 49538169
      Your Name authored
      - Updated Key Features section to mention Kiro (Amazon Q Developer) alongside other providers
      - Ensures Kiro is prominently featured in the project overview
      49538169
    • Your Name's avatar
      Add Kiro provider to documentation · 837b88d8
      Your Name authored
      - Updated README.md to list Kiro (Amazon Q Developer / AWS CodeWhisperer) as a supported provider
      - Updated DOCUMENTATION.md Provider Support section with Kiro details
      - Kiro provider uses native authentication (IDE credentials or CLI)
      - Supports Claude models through Kiro with streaming, tool calling, and extended thinking
      837b88d8
    • Your Name's avatar
      Remove external kiro-gateway integration documentation · e1ac419c
      Your Name authored
      - Deleted KIRO_GATEWAY.md and KIRO_INTEGRATION.md
      - AISBF has native Kiro support built-in via KiroProviderHandler
      - No need for external kiro-gateway integration documentation
      e1ac419c
    • Your Name's avatar
      Remove vendor/kiro-gateway directory and update documentation · 0d684270
      Your Name authored
      - Removed vendor/kiro-gateway submodule/directory as Kiro support is fully integrated into AISBF
      - Updated KIRO_GATEWAY.md to reference external GitHub repository (https://github.com/jwadow/kiro-gateway)
      - Updated AI.PROMPT to remove vendor directory reference
      - Kiro integration remains fully functional through KiroProviderHandler
      0d684270
    • Your Name's avatar
      All update up to proxy · a3506741
      Your Name authored
      a3506741
  3. 22 Mar, 2026 11 commits
    • Your Name's avatar
      fix: Add bs4 and fix protobuf version constraint · 36fc3e9f
      Your Name authored
      - Add bs4 to requirements.txt (required by debgpt)
      - Pin protobuf to >=3.20,<4 to fix compatibility with electrum
      - Resolves dependency conflicts
      36fc3e9f
    • Your Name's avatar
      feat: Add automatic --break-system-packages detection to build.sh · 8cb6eb36
      Your Name authored
      - Add pip_install() function that detects externally-managed-environment errors
      - Automatically retry with --break-system-packages flag when needed
      - Improves compatibility with modern Linux distributions that use PEP 668
      8cb6eb36
    • Your Name's avatar
      feat: Add intelligent 429 rate limit handling and improve configuration · 0c895e05
      Your Name authored
      - Implement intelligent 429 rate limit parsing in providers
        - Parse Retry-After and X-RateLimit-Reset headers
        - Extract wait time from response body fields
        - Parse error messages for time patterns
        - Automatically disable providers for exact duration specified
      
      - Update aisbf.sh to read port from config file dynamically
        - Add get_port() function to parse aisbf.json
        - Remove hardcoded port 17765
        - Show port number when starting server
      
      - Implement SHA256 password hashing for dashboard
        - Store password as hash in aisbf.json
        - Hash passwords during login validation
        - Hash passwords when updating settings
      
      - Add templates to package distribution
        - Update setup.py to include dashboard templates
        - Update MANIFEST.in (already included templates)
        - Add aisbf.json to package
      
      - Update documentation
        - Add OpenAI-compatible v1 endpoints to README
        - Add dashboard endpoints documentation
        - Create comprehensive API_EXAMPLES.md with examples in cURL, Python, and JavaScript
      
      - Add GPL license headers to all template files
        - HTML templates in templates/ directory
        - JavaScript code in templates/base.html
      
      All changes maintain backward compatibility while adding new features.
      0c895e05
    • Your Name's avatar
      Implement full web dashboard with authentication · 3f6647d2
      Your Name authored
      - Added jinja2 and itsdangerous dependencies to requirements.txt
      - Created templates directory with base layout and dashboard pages
      - Implemented login/logout with session-based authentication
      - Added dashboard overview page showing server stats
      - Added configuration editors for:
        - Providers (providers.json)
        - Rotations (rotations.json)
        - Autoselect (autoselect.json)
        - Condensation prompts (markdown files)
        - Server settings (aisbf.json)
      - Dashboard accessible at /dashboard with configurable username/password
      - Session middleware with secure random secret key
      - Authentication middleware skips dashboard routes
      - All config changes saved to ~/.aisbf/ directory
      - Dashboard config loaded from aisbf.json (username, password)
      - Default credentials: admin/admin
      3f6647d2
    • Your Name's avatar
      Add CLI argument support and change default port to 17765 · 4ee2fc61
      Your Name authored
      - Changed default port from 8000 to 17765 in config and code
      - Added command-line argument parsing with argparse
      - Added --config flag to specify custom config directory
      - Added --host, --port flags to override config file settings
      - Added --https, --ssl-cert, --ssl-key flags for HTTPS configuration
      - Added --no-auth flag to disable authentication
      - CLI arguments take precedence over config file
      - Updated config.py to support custom config directories via AISBF_CONFIG_DIR env var
      - Config and handlers are now initialized after CLI parsing to support --config flag
      4ee2fc61
    • Your Name's avatar
      Add example auth tokens to aisbf.json configuration · 4bae99cf
      Your Name authored
      - Added example tokens array to demonstrate client authentication
      - When auth.enabled is true, clients must use Bearer token in Authorization header
      - Tokens are validated against the tokens array in aisbf.json
      4bae99cf
    • Your Name's avatar
      Add HTTPS support, authentication, and condensation prompt loading · e00c4f41
      Your Name authored
      - Add HTTPS support with auto-generated self-signed certificates
      - Add API token authentication middleware
      - Update aisbf.json with protocol, SSL, and auth configuration
      - Add system prompt loading method to ContextManager
      - Update main() to support SSL certificates
      - Add authentication check middleware for API endpoints
      e00c4f41
    • Your Name's avatar
      Add condensation enhancements and server configuration · 7d5d9e73
      Your Name authored
      - Add max_context field to CondensationConfig
      - Support 'internal' keyword for local HuggingFace model in condensation
      - Add internal model initialization with temperature=0.3, top_p=0.8, repeat_penalty=1.1
      - Create condensation system prompts (conversational, semantic)
      - Add aisbf.json for server configuration (host, port, dashboard auth)
      - Update main.py to read server config from aisbf.json
      - Update providers.json with max_context example for condensation
      7d5d9e73
    • Your Name's avatar
      Improve autoselect prompt structure - split system/user messages, temperature 0, add stop token · 1ea22adb
      Your Name authored
      - Changed autoselect prompt from single user message to system+user split
      - System message contains the skill instructions
      - User message contains the prompt and model list
      - Set temperature to 0 for deterministic selection
      - Added stop parameter: </aisbf_model_autoselection>
      - Updated internal model handling to combine messages
      1ea22adb
    • Your Name's avatar
      v0.4.0 - Configuration refactoring and autoselect enhancements · 8e4cdf2f
      Your Name authored
      - Centralized API key storage in providers.json only
      - Added support for provider-only rotation entries (auto-selects random model)
      - Added default settings hierarchy at provider and rotation levels
      - Limited autoselect selection context to 10 messages or 8000 tokens
      - Added support for direct provider models in autoselect (rotation/provider/model)
      - Added 'internal' keyword for local HuggingFace model selection
      - Updated requirements.txt with torch and transformers
      8e4cdf2f
    • Your Name's avatar
      feat: Complete kiro-gateway integration with full feature parity · b6bbf540
      Your Name authored
      - Integrated complete kiro-gateway conversion pipeline (1,522 lines)
      - Added multi-source authentication (Kiro IDE, kiro-cli, env vars)
      - Implemented full OpenAI <-> Kiro format conversion
      - Added support for tools/function calling
      - Added support for images/multimodal content
      - Implemented message merging, validation, and role normalization
      - Added KiroAuthManager for automatic token refresh
      - Created comprehensive conversion modules:
        - aisbf/kiro_converters.py (core conversion logic)
        - aisbf/kiro_converters_openai.py (OpenAI adapter)
        - aisbf/kiro_models.py (data models)
        - aisbf/kiro_auth.py (authentication)
        - aisbf/kiro_utils.py (utilities)
      - Updated KiroProviderHandler with full conversion pipeline
      - Added kiro_config support to ProviderConfig
      - Updated providers.json with clean Kiro examples
      - Added comprehensive documentation (KIRO_INTEGRATION.md)
      - Implemented model name prefixing across all providers (provider_id/model)
      
      No external kiro-gateway server needed - all functionality built-in.
      b6bbf540
  4. 09 Feb, 2026 4 commits