From d3a39c8aacec90dfdab1645ade2327ef2edc12e1 Mon Sep 17 00:00:00 2001 From: Linjie-top Date: Wed, 11 Mar 2026 14:21:28 +0800 Subject: [PATCH 1/3] feat(research): gate track memory button behind feature flag --- web/src/components/research/SearchBox.tsx | 23 +++++++++++++---------- web/src/config/features.ts | 17 +++++++++++++++++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/web/src/components/research/SearchBox.tsx b/web/src/components/research/SearchBox.tsx index cefb24c9..0b973072 100644 --- a/web/src/components/research/SearchBox.tsx +++ b/web/src/components/research/SearchBox.tsx @@ -4,6 +4,7 @@ import { KeyboardEvent, useRef, useState } from "react" import { Brain, CalendarRange, Check, Loader2, Search } from "lucide-react" import { cn } from "@/lib/utils" +import { showTrackMemoryButton } from "@/config/features" import { Button } from "@/components/ui/button" import { Textarea } from "@/components/ui/textarea" import { Popover, PopoverContent, PopoverAnchor } from "@/components/ui/popover" @@ -247,16 +248,18 @@ export function SearchBox({ {/* Right side - Memory, Track selector and Search button */}
- + {onOpenMemory && showTrackMemoryButton() && ( + + )} Date: Wed, 11 Mar 2026 14:21:42 +0800 Subject: [PATCH 2/3] fix(research): avoid reactivating already active track --- web/src/components/research/TrackPills.tsx | 4 +++- web/src/components/research/TrackSelector.tsx | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/web/src/components/research/TrackPills.tsx b/web/src/components/research/TrackPills.tsx index 70351d17..5bc68343 100644 --- a/web/src/components/research/TrackPills.tsx +++ b/web/src/components/research/TrackPills.tsx @@ -64,7 +64,9 @@ export function TrackPills({ ? "bg-primary text-primary-foreground shadow-sm" : "bg-background hover:bg-accent" )} - onClick={() => onSelectTrack(track.id)} + onClick={() => { + if (track.id !== activeTrackId) onSelectTrack(track.id) + }} disabled={disabled} > {(() => { diff --git a/web/src/components/research/TrackSelector.tsx b/web/src/components/research/TrackSelector.tsx index 7ac90d75..8dc20efc 100644 --- a/web/src/components/research/TrackSelector.tsx +++ b/web/src/components/research/TrackSelector.tsx @@ -60,7 +60,11 @@ export function TrackSelector({ tracks.map((track) => ( onSelectTrack(track.id)} + onClick={() => { + if (!activeTrack || track.id !== activeTrack.id) { + onSelectTrack(track.id) + } + }} className="flex items-center justify-between" > {track.name} From 7975bd31029d533ce19ff1e8eb44ba77bef8de95 Mon Sep 17 00:00:00 2001 From: Linjie-top Date: Wed, 11 Mar 2026 14:21:51 +0800 Subject: [PATCH 3/3] ci(vercel): add auto deploy workflow for dev branch --- .github/workflows/vercel-auto-deploy.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/vercel-auto-deploy.yml diff --git a/.github/workflows/vercel-auto-deploy.yml b/.github/workflows/vercel-auto-deploy.yml new file mode 100644 index 00000000..7d0e6cee --- /dev/null +++ b/.github/workflows/vercel-auto-deploy.yml @@ -0,0 +1,22 @@ +name: Vercel Auto Deploy + +on: + push: + branches: + - dev # 自动预览部署的分支 + # 如需对 master/main 做生产部署,可在后续扩展 + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Deploy to Vercel (preview) + uses: amondnet/vercel-action@v20 + with: + vercel-token: ${{ secrets.VERCEL_TOKEN }} # Vercel 访问令牌 + vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} # Vercel 组织 ID + vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}# Vercel 项目 ID + vercel-args: '--previews' # dev 分支走预览部署