• erio's avatar
    feat: WebSearch tri-state, account stats pricing fix, quota cache fix, usage tooltip · 1262654d
    erio authored
    WebSearch tri-state switch:
    - Account-level web_search_emulation changed from bool to tri-state
      string: "default" (follow channel) / "enabled" / "disabled"
    - shouldEmulateWebSearch checks channel config when account is "default"
    - SQL migration converts old bool values
    - Frontend select replaces toggle in Edit/CreateAccountModal
    
    Account stats pricing:
    - resolveAccountStatsCost uses upstream model (post-mapping) for matching
    - Priority: custom rules → model pricing file (when toggle on) → default
    - Custom rules always configurable, independent of toggle
    - Account ID field changed to searchable selector filtered by platform
    - Description updated to reflect new behavior
    
    Quota notification cache fix:
    - CheckAccountQuotaAfterIncrement fetches real-time account from DB
    - Reconstructs pre-increment usage for accurate threshold crossing detection
    - New AccountQuotaReader interface (minimal: GetByID only)
    
    Usage tooltip:
    - Per-request/image billing shows per-request price instead of $0 token price
    - Token billing continues to show input/output price per million tokens
    1262654d
UsageView.vue 37.3 KB