1. 19 Jun, 2025 22 commits
  2. 18 Jun, 2025 8 commits
  3. 17 Jun, 2025 10 commits
    • 🐛 fix(detail): explicitly set `preventScroll={true}` on Tabs to stop page jump · ee793087
      Problem
      Semi UI’s Tabs calls `focus()` on the active tab during mount, causing the browser to scroll the page to that element.
      Using the bare `preventScroll` shorthand was not picked up reliably, so the page still jumped to the Tabs’ position on first render.
      
      Changes
      • Updated both Tabs instances in `web/src/pages/Detail/index.js` to `preventScroll={true}` instead of the shorthand prop.
      • Ensures the prop is explicitly interpreted as boolean `true`, converting the internal call to `focus({ preventScroll: true })`.
      
      Result
      The `Detail` page now stays at its original scroll position after load, eliminating the unexpected auto-scroll behavior.
      Apple\Apple committed
    • 🛠️ fix(detail): disable automatic page scroll caused by Tabs focus · 1d16d328
      The initial render of the `Detail` page was jumping to the first `Tabs` component because Semi UI calls `focus()` on the active tab, which triggers the browser’s default scroll-into-view behavior.
      
      Changes made
      • Added `preventScroll` to the chart-selector `Tabs` (type="button").
      • Added `preventScroll` to the uptime-monitor `Tabs` (type="card").
      
      These flags convert the internal `focus()` call to `focus({ preventScroll: true })`, allowing the page to stay at its current position after load.
      
      No functional logic is changed other than disabling the unwanted scroll; UI and user interactions remain the same.
      Apple\Apple committed
    • 🏷️ chore(ui): Hide Type Tabs in Tag-Aggregation Mode & Refine Query Logic · cd94cc20
      frontend(ChannelsTable):
      • Do not render type-filter Tabs when `enableTagMode` is true, preventing UI/logic conflicts in tag aggregation view.
      • Adjust API query construction:
        – Append `type=` param only when NOT in tag mode and selected tab ≠ 'all'.
        – Applies to both `loadChannels` and `searchChannels`.
      • Result: UI stays clean in tag view, and backend receives correct parameters across modes.
      
      No other functionality affected.
      Apple\Apple committed
    • 🎨 style(EditChannel): replace fixed-height TextArea with autosize to eliminate unwanted scrollbar · 1800cfd1
      The “Batch Create” secret-key input in Channel Edit previously used a TextArea
      with a hard-coded `minHeight`, which caused an extra scrollbar and blank space
      on the right side of the field.
      This change:
      
      • Removes the fixed `minHeight` in favour of `autosize={{ minRows: 6, maxRows: 6 }}`
      • Keeps the field’s rounded appearance while letting it grow/shrink with
        content, improving usability on both desktop and mobile
      
      No other components or global styles are affected.
      Apple\Apple committed
    • 🚀 feat(Channels): Enhance Channel Filtering & Performance · 44688fe6
      feat(api):
      • Add optional `type` query param to `/api/channel` endpoint for type-specific pagination
      • Return `type_counts` map with counts for each channel type
      • Implement `GetChannelsByType`, `CountChannelsByType`, `CountChannelsGroupByType` in `model/channel.go`
      
      feat(frontend):
      • Introduce type Tabs in `ChannelsTable` to switch between channel types
      • Tabs show dynamic counts using backend `type_counts`; “All” is computed from sum
      • Persist active type, reload data on tab change (with proper query params)
      
      perf(frontend):
      • Use a request counter (`useRef`) to discard stale responses when tabs switch quickly
      • Move all `useMemo` hooks to top level to satisfy React Hook rules
      • Remove redundant local type counting fallback when backend data present
      
      ui:
      • Remove icons from response-time tags for cleaner look
      • Use Semi-UI native arrow controls for Tabs; custom arrow code deleted
      
      chore:
      • Minor refactor & comments for clarity
      • Ensure ESLint Hook rules pass
      
      Result: Channel list now supports fast, accurate type filtering with correct counts, improved concurrency safety, and cleaner UI.
      Apple\Apple committed
    • 🚀 feat(ui): isolate ratio configurations into dedicated “Ratio” tab and refactor… · 19c3cb12
      🚀 feat(ui): isolate ratio configurations into dedicated “Ratio” tab and refactor settings components
      
      Summary
      • Added new Ratio tab in Settings for managing all ratio-related configurations (group & model multipliers).
      • Created `RatioSetting` component to host GroupRatio, ModelRatio, Visual Editor and Unset-Models panels.
      • Moved ratio components to `web/src/pages/Setting/Ratio/` directory:
        – `GroupRatioSettings.js`
        – `ModelRatioSettings.js`
        – `ModelSettingsVisualEditor.js`
        – `ModelRationNotSetEditor.js`
      • Updated imports in `RatioSetting.js` to use the new path.
      • Updated main Settings router (`web/src/pages/Setting/index.js`) to include the new “Ratio Settings” tab.
      • Pruned `OperationSetting.js`:
        – Removed ratio-specific cards, tabs and unused imports.
        – Reduced state to only the keys required by its child components.
        – Deleted obsolete fields (`StreamCacheQueueLength`, `CheckSensitiveOnCompletionEnabled`, `StopOnSensitiveEnabled`).
      • Added boolean handling simplification in `OperationSetting.js`.
      • Adjusted helper import list and removed unused translation hook.
      
      Why
      Separating ratio-related settings improves UX clarity, reduces cognitive load in the Operation Settings panel and keeps the codebase modular and easier to maintain.
      
      BREAKING CHANGE
      The file paths for ratio components have changed. Any external imports referencing the old `Operation` directory must update to the new `Ratio` path.
      Apple\Apple committed
    • Merge pull request #1247 from RedwindA/feat/25lite-thinking · 423796e7
      feat: improve gemini thinking budget adaption
      Calcium-Ion committed