1. 14 Aug, 2025 1 commit
  2. 13 Aug, 2025 1 commit
    • 🐛 fix(tokens): correct main Chat button navigation to prevent 404 · f1afe914
      The primary "Chat" button on the tokens table navigated to a 404 page
      because it passed incorrect arguments to onOpenLink (using a raw
      localStorage value instead of the parsed chat value).
      
      Changes:
      - Build chatsArray with an explicit `value` for each item.
      - Use the first item's `name` and `value` for the main button, matching
        the dropdown behavior.
      - Preserve existing error handling when no chats are configured.
      
      Impact:
      - Main "Chat" button now opens the correct link, consistent with the
        dropdown action.
      - No API/schema changes, no UI changes.
      
      File:
      - web/src/components/table/tokens/TokensColumnDefs.js
      
      Verification:
      - Manually verified primary button and dropdown both navigate correctly.
      - Linter passes with no issues.
      t0ng7u committed
  3. 12 Aug, 2025 20 commits
  4. 11 Aug, 2025 17 commits
  5. 10 Aug, 2025 1 commit
    • 🔧 chore(db): drop legacy single-column UNIQUE indexes to prevent duplicate-key… · 067f3ce9
      🔧 chore(db): drop legacy single-column UNIQUE indexes to prevent duplicate-key errors after soft-delete
      
      Why
      Previous versions created single-column UNIQUE constraints (`models.model_name`, `vendors.name`).
      After introducing composite indexes on `(model_name, deleted_at)` and `(name, deleted_at)` for soft-delete support, those legacy constraints could still exist in user databases.
      When a record was soft-deleted and re-inserted with the same name, MySQL raised `Error 1062 … for key 'models.model_name'`.
      
      What
      • In `migrateDB` and `migrateDBFast` paths of `model/main.go`, proactively drop:
        – `models.uk_model_name` and fallback `models.model_name`
        – `vendors.uk_vendor_name` and fallback `vendors.name`
      • Keeps existing helper `dropIndexIfExists` to ensure the operation is MySQL-only and error-free when indexes are already absent.
      
      Result
      Startup migration now removes every possible legacy UNIQUE index, ensuring composite index strategy works correctly.
      Users can soft-delete and recreate models/vendors with identical names without hitting duplicate-entry errors.
      t0ng7u committed