Skip to content

release: 合併 develop 開發成果至 main(看板、介入提醒、Copilot hook、計費統計等) - #26

Merged
chingleel17 merged 21 commits into
mainfrom
develop
Jul 22, 2026
Merged

release: 合併 develop 開發成果至 main(看板、介入提醒、Copilot hook、計費統計等)#26
chingleel17 merged 21 commits into
mainfrom
develop

Conversation

@chingleel17

Copy link
Copy Markdown
Owner

摘要

develop 一整個開發週期的成果合併回 main,並同步 8 個 Dependabot 版本更新。

主要功能(feat)

  • 看板(Kanban)視圖:依狀態分類管理 session、依專案分組、多 IDE 啟動器(Copilot / OpenCode / Gemini / 終端 / 檔案總管)、欄位寬度記憶、工具可用性檢測
  • 介入提醒 Overlay 面板:InterventionRegistry 後端 waiting 清單(single source of truth)、QuotaOverlay 介入提醒區(compact/full 版式、自動延伸方向)、Claude/OpenCode 等待授權訊號同步、點擊卡片聚焦導航
  • AI 介入通知:支援等待、回應結束、授權需求、Session 結束等多場景,點擊導航至對應 session
  • Copilot hook 全事件監聽:6 個事件(sessionStart/End、userPromptSubmitted、pre/postToolUse、errorOccurred)、plugin 版本號追蹤
  • Copilot modelMetrics 計費統計:解析各 model requests cost 與 token 用量,SQLite 儲存、SessionStatsPanel 顯示
  • PlansSpecs Explorer 佈局:左右雙面板、可折疊/可拖曳、SettingsView 語言切換
  • RoutedApp 路由層:quota-overlay 與 tray-panel 內嵌視圖、獨立 Embedded App

重構(refactor)

  • 後端大型模組拆分:types.rstypes/ 子目錄、stats.rsstats/ 子目錄(含 tests)、agents_config.rs 拆分
  • lib.rs setup 邏輯抽出至 app_setup.rs、前端設定預設值抽出至 appSettingsDefaults.ts

相依套件更新

同步自 main 的 8 個 Dependabot 更新:serde、serde_json、toml_edit、chrono、tauri-plugin-dialog(cargo)、@tauri-apps/plugin-dialog、marked 18(含 ContentViewer Parser.parse 簽章調整)、vite 8 + @vitejs/plugin-react 6。

驗證

  • 前端 tsc + vite build:通過
  • 後端 cargo check:通過

🤖 Generated with Claude Code

chingleel17 and others added 21 commits April 3, 2026 11:51
- 在 PlansSpecsView 中新增對讀取 OpenSpec 檔案的支持,讓使用者可以查看具有載入狀態的變更工件(提案、設計、任務)。

- 更新 ProjectView 以支援新的 OpenSpec 檔案讀取功能和會話活動狀態。

- 在 SessionCard 中引入啟動器選項,以改善工具訪問,包括終端、Copilot、OpenCode 等。

- 改進 SessionStatsPanel 中的會話統計資料顯示,採用網格佈局,提高可讀性。

- 改進 SettingsView 以管理提供者集成,包括安裝、更新和路徑管理作業。

- 為新功能添加了英文和繁體中文本地化支援。

- 擴展了類型定義,以包含會話活動狀態和工具可用性。
1. 新增看板(Kanban)視圖,支援依狀態分類管理 session
2. 新增多 IDE 啟動器,支援 Copilot、OpenCode、Gemini、終端、檔案總管等工具開啟
3. 看板視圖依專案分組顯示 session,預設每組顯示最近 3 筆,支援點擊進入專案頁面
4. 新增工具可用性檢測,無法使用的工具在選單中顯示為停用狀態
5. 新增看板欄位寬度調整功能,並記憶寬度設定
6. 完成欄位預設顯示 10 筆,支援手動載入更多

docs:
1. 同步 delta spec 至主規格目錄,新增 dashboard-kanban、multi-ide-launcher、session-activity-status、terminal-focus、openspec-content-viewer 規格
2. 歸檔 dashboard-kanban-session-monitor 變更至 openspec/changes/archive/

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Use saturating_duration_since() instead of duration_since() in Instant comparisons to prevent panics when timestamps are in the future
- Add overflow checks when subtracting future timestamps from current time in activity status calculations
- Fix Instant::elapsed() overflow by using saturating_duration_since with explicit now calculation
- Apply fixes to provider refresh dedup logic and OpenCode/Copilot activity status queries

Note: Startup crash still occurring due to potential system time or dependency issue - further investigation needed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- 為 SessionCard 和 ProjectCard 新增了新的啟動選單覆蓋層,並採用固定定位,確保其顯示在所有其他元素之上。
- 實現了點擊外部檢測功能,點擊選單外部時自動關閉選單。
- 增強了狀態管理,確保一次只能開啟一個選單,防止多個選單同時顯示。
- 更新了樣式和元件結構以支援新功能,包括使用 React Portal 渲染選單。
- 重構了相關元件(SessionCard、KanbanProjectCard、DashboardView、ProjectView),以適應新的選單行為和狀態管理。
1. 修正 opencode plugin event hook 格式,使用正確的 @opencode-ai/sdk Event 類型
2. 升級 PROVIDER_INTEGRATION_VERSION 至 2

feat:
1. 新增啟動時偵測 provider 整合版本是否過期,未安裝或過舊時顯示一次性 warning toast
2. 在設定頁顯示插件狀態(up_to_date / outdated / missing)

docs:
1. 新增 plugin-install-ui、plugin-installer、plugin-version-check 規格文件
2. 修改 provider-integration 規格,加入版本偵測需求
3. 將 session-cache-sqlite-migration 功能文件移至 archive 目錄
1. 新增 Copilot modelMetrics 解析與計費點數統計
2. 從 session.shutdown 事件擷取各 model 的 requests cost(支援小數點)與 token 用量
3. 在 SQLite session_stats 表新增 model_metrics TEXT 欄位存儲 modelMetrics JSON
4. 新增 SessionStatsPanel 計費點數顯示區塊,支援跨 session 累計統計
5. 新增 copilot-model-metrics spec 與前端 ModelMetricsEntry 型別定義
6. 修復 OpenCode session 路徑導向問題,支援 JSON 檔案路徑自動推導與 storage 目錄驗證
7. 歸檔 opencode-session-metrics change 至 2026-04-17-opencode-session-metrics
1. 將 PlansSpecsView 重構為左右雙面板 Explorer 佈局(新增 ExplorerTree、ContentViewer 元件與 buildTree 工具函式)
2. Explorer 左側面板支援可折疊、可拖曳調整寬度
3. SettingsView 新增語言切換下拉選單(從 Sidebar popover 移入設定頁)
4. 新增 TreeNode 型別定義與 i18n 翻譯 key(plansSpecs.explorer.*)

fix:
1. 修正 archived changes 文件路徑錯誤(應使用 changes/archive/{name}/ 前綴,而非 changes/{name}/)
2. 修正 PlansSpecsView Resize 拖曳時 document listener 在元件卸載後未清除的問題
3. 修正 buildTree section label 硬編碼英文字串繞過 i18n
4. 修正 PlansSpecsView Explorer 標題硬編碼未使用 t()

refactor:
1. Sidebar 移除語言切換 popover 及相關狀態
2. Sidebar 品牌圖示更正為 SH

style:
1. App.css 調整 kanban-board、workspace、dashboard 佈局 padding 與 gap
2. 將單行 CSS 規則展開為多行格式

docs:
1. 新增 openspec-explorer-layout 規格文件並歸檔至 changes/archive

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
 1. 新增 AI 介入通知功能,支援多種觸發場景(等待、回應結束、授權需求)
 2. 新增 Session 結束通知場景(可個別開啟/關閉)
 3. 前端支援通知點擊導航至對應 session 分頁

 fix:
 1. 移除 Hook 腳本中的 WinRT Toast(避免時機錯誤和內容不符)
 2. 清除 7 個 Rust 編譯警告(unused imports、dead code)

 refactor:
 1. 調整 Provider integration 排版為垂直單欄(設定/plugin 路徑各自獨立一行)
 2. Settings 版面改為左右並排(一般設定 + 平台整合管理)
 3. 將「Provider integration」翻譯為「平台整合管理」

 chore:
 1. 新增 version 同步腳本(package.json → Cargo.toml)
 2. 移除 tauri.conf.json 中 version 欄位(改由 package.json 統一管理)
 3. 新增 openspec 完整設計文件與規格
1. 實作 Copilot hook 全事件監聽(6 個事件:sessionStart、sessionEnd、userPromptSubmitted、preToolUse、postToolUse、errorOccurred)
2. 新增 plugin 版本號追蹤,ProviderIntegrationStatus 加 installed_version 欄位
3. 前端 Settings 頁面新增版本號 badge 與版本欄位展示

fix:
1. 修復 session card 與平台整合管理中 badge 文字垂直置中對齊問題
2. 調整 CSS 容器 align-items 與 badge 元素 line-height 設定

refactor:
1. 重構 Copilot hook 渲染為泛型函式 render_copilot_hook_ps,減少重複程式碼
2. 補全 lib.rs 測試 use 導入,修復 refactoring 後遺漏的 test 函式參考

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
 1. 新增 add-intervention-overlay-panel 變更規劃文件
 2. 新增 cleanup-deps-and-settings-defaults 變更規劃文件
 3. 新增 extract-app-tsx-event-hooks 變更規劃文件
 4. 新增 extract-embedded-apps-and-settings-hook 變更規劃文件
 5. 新增 refactor-tauri-setup-lib 變更規劃文件
 6. 新增 split-large-rust-modules 變更規劃文件
chore: 忽略 Python 編譯產物並移除已追蹤的 .pyc

- .gitignore 新增 __pycache__/ 與 *.pyc 規則
- 從版控移除 3 個 .opencode skills 的 .pyc 編譯產物
- 合併 main 前的降噪,減少無意義衝突

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
# Conflicts:
#	.gitignore
#	.opencode/package-lock.json
#	openspec/changes/archive/2026-04-21-openspec-explorer-layout/specs/plans-specs-explorer-layout/spec.md
#	openspec/specs/app-settings/spec.md
#	openspec/specs/dashboard-kanban/spec.md
#	openspec/specs/dashboard/spec.md
#	openspec/specs/multi-ide-launcher/spec.md
#	openspec/specs/openspec-content-viewer/spec.md
#	openspec/specs/openspec-reader/spec.md
#	openspec/specs/plans-specs-explorer-layout/spec.md
#	openspec/specs/provider-integration/spec.md
#	openspec/specs/session-stats/spec.md
#	package.json
#	src-tauri/Cargo.lock
#	src-tauri/Cargo.toml
#	src-tauri/src/activity.rs
#	src-tauri/src/commands/mod.rs
#	src-tauri/src/commands/notifications.rs
#	src-tauri/src/commands/provider.rs
#	src-tauri/src/commands/sessions.rs
#	src-tauri/src/commands/settings.rs
#	src-tauri/src/commands/tools.rs
#	src-tauri/src/db.rs
#	src-tauri/src/lib.rs
#	src-tauri/src/openspec_scan.rs
#	src-tauri/src/platform/win32_focus.rs
#	src-tauri/src/provider/bridge.rs
#	src-tauri/src/provider/copilot.rs
#	src-tauri/src/provider/mod.rs
#	src-tauri/src/provider/opencode.rs
#	src-tauri/src/sessions/copilot.rs
#	src-tauri/src/sessions/mod.rs
#	src-tauri/src/sessions/opencode.rs
#	src-tauri/src/settings.rs
#	src-tauri/src/stats.rs
#	src-tauri/src/types.rs
#	src-tauri/src/watcher.rs
#	src/App.css
#	src/App.tsx
#	src/components/ContentViewer.tsx
#	src/components/DashboardView.tsx
#	src/components/ExplorerTree.tsx
#	src/components/PlansSpecsView.tsx
#	src/components/ProjectView.tsx
#	src/components/SessionCard.tsx
#	src/components/SessionStatsBadge.tsx
#	src/components/SessionStatsPanel.tsx
#	src/components/SettingsView.tsx
#	src/components/Sidebar.tsx
#	src/locales/en-US.ts
#	src/locales/zh-TW.ts
#	src/types/index.ts
#	src/utils/buildTree.ts
 1. 將 `lib.rs` setup 階段邏輯抽出至獨立模組 `app_setup.rs`
 2. 將前端設定預設值抽出至 `appSettingsDefaults.ts`,改用 `mergeAppSettings()` 統一處理

chore:
 1. 移除未使用的 `react-router-dom`、`@codemirror/lang-markdown`、`@codemirror/view` 套件

docs:
 1. 封存已完成變更 `avoid-msys-bash-stackdumps`
 2. 新增 `msys-stackdump-suppression` spec 並更新 `terminal-launcher` spec
 3. 更新多個 OpenSpec change 的任務完成狀態
 4. 移除已廢棄的 `agent-intervention-notification` 變更
 1. 新增 RoutedApp 路由層,支援 quota-overlay 與 tray-panel 內嵌視圖
 2. 新增 EmbeddedQuotaOverlayApp 獨立配額覆蓋層應用
 3. 新增 EmbeddedTrayPanelApp 獨立系統匣面板應用

refactor:
 1. 將 App.tsx 即時事件監聽邏輯抽離至 useSessionRealtimeEvents hook
 2. 將 App.tsx 設定表單狀態與 mutation 抽離至 useAppSettingsForm hook
 3. 將錯誤訊息解析函式抽離至 resolveErrorMessage 工具函式
 1. 將大型 types.rs 拆分為 types/ 子目錄模組(analytics、claude、misc、opencode、provider_integration、quota、session、settings、sisyphus_openspec)
 2. 將大型 stats.rs 拆分為 stats/ 子目錄模組(claude、opencode),並新增 tests
 3. 重構 agents_config.rs 並拆分測試至 agents_config/tests.rs
 1. 歸檔已完成之 OpenSpec changes 至 archive 目錄
 1. 更新 intervention overlay panel 設計文件與任務清單,反映重構後架構

feat:
 1. 新增 openspec 檔案建立日期顯示於內容檢視器標題列
 2. 新增 formatDate 日期格式化工具函式
 3. 調整 explorer content header 版面樣式
 1. 新增 InterventionRegistry 後端 waiting 清單(single source of truth)與 `get_intervention_list` command
 2. 新增 QuotaOverlay 介入提醒區,支援 compact/full 版式與自動延伸方向判斷
 3. 處理 Claude `notification`/`permission.requested` 及 OpenCode 等待授權訊號同步至 Registry
 4. 新增 `intervention-focus-session` listener,點擊卡片聚焦主視窗並導航
 5. 新增對應 CSS 樣式與中英文翻譯

docs:
 1. 新增架構分離文件
同步 8 個 Dependabot 版本更新(5 cargo patch + plugin-dialog / marked 18 / vite 8 + plugin-react 6)至開發分支。

- bun.lock 衝突以 package.json 重新解析
- ContentViewer marked 18 寫法由三方合併自動採用
- 前端 tsc+build、後端 cargo check 均通過

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 22, 2026 03:59
@chingleel17
chingleel17 merged commit fa21746 into main Jul 22, 2026
4 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

此 PR 將 develop 一個開發週期的成果合併回 main,涵蓋看板/Overlay 介入提醒、Copilot hook 事件監聽、計費統計、Plans/Specs Explorer 佈局調整,以及後端 Rust 模組拆分與多項依賴更新。

Changes:

  • 新增/整合 quota overlay「需授權」介入提醒:後端 InterventionRegistry(single source of truth)+ 前端 overlay 顯示與跨視窗聚焦導航。
  • 前端重構:抽出 realtime event hook、設定表單 hook、獨立 embedded webview apps(overlay / tray panel)與 routed entry。
  • 後端重構:typesstats 拆模組、run() setup 抽到 app_setup.rs,並擴充 provider bridge 事件(含 Claude notification/permission 類型)。

Reviewed changes

Copilot reviewed 58 out of 85 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/utils/resolveErrorMessage.ts 新增統一的 unknown error → message 解析工具
src/utils/formatDate.ts 新增僅日期格式化 helper(供 ContentViewer 顯示 createdAt)
src/utils/appSettingsDefaults.ts 新增前端 AppSettings 選填欄位預設值與合併 helper
src/types/index.ts 新增 InterventionItem 型別等前端共用型別擴充
src/main.tsx entry 改為掛載 RoutedApp(支援 embedded webviews)
src/locales/zh-TW.ts 新增 overlay intervention 文案與既有字串更新
src/locales/en-US.ts 新增 overlay intervention 文案與既有字串更新
src/hooks/useSessionRealtimeEvents.ts 抽出主視窗 realtime 事件訂閱邏輯成 custom hook
src/hooks/useAppSettingsForm.ts 抽出設定表單 state/mutations 成 custom hook
src/components/ProjectStatsBanner.tsx banner 增加 modelMetrics cost 彙總顯示
src/components/PlansSpecsView.tsx 將 OpenSpec change createdAt 回傳到 ContentViewer 顯示
src/components/ContentViewer.tsx explorer header 顯示路徑 + createdAt 日期
src/app/RoutedApp.tsx ?view= 分流主 app / quota overlay / tray panel
src/app/EmbeddedTrayPanelApp.tsx 新增 tray panel 專用 embedded app(訂閱 quota snapshots)
src/app/EmbeddedQuotaOverlayApp.tsx 新增 overlay 專用 embedded app(settings/quota/intervention queries + listeners)
src/App.css 新增 intervention panel 與 explorer header date 的樣式
src-tauri/src/types/sisyphus_openspec.rs 拆分後的 Sisyphus/OpenSpec 型別模組
src-tauri/src/types/settings.rs 拆分後的 settings 型別與預設值 helper
src-tauri/src/types/session.rs 拆分後的 session/activity/bridge payload 型別
src-tauri/src/types/quota.rs 拆分後的 quota/cache 型別
src-tauri/src/types/provider_integration.rs 拆分後的 provider integration/bridge record 型別
src-tauri/src/types/opencode.rs 拆分後的 OpenCode JSON/stats/activity 型別
src-tauri/src/types/mod.rs types/ 模組 re-export 與共用 helper
src-tauri/src/types/misc.rs WatcherState/ScanCache/ToolAvailability 等雜項型別集中
src-tauri/src/types/intervention.rs 新增 InterventionRegistry + 單元測試
src-tauri/src/types/claude.rs 拆分後的 Claude JSONL 解析型別
src-tauri/src/types/analytics.rs 拆分後的 analytics/session stats 型別
src-tauri/src/stats/tests.rs stats 模組測試拆出
src-tauri/src/stats/opencode.rs OpenCode stats 計算拆出
src-tauri/src/provider/bridge.rs 擴充 derive_activity_status + 同步 InterventionRegistry
src-tauri/src/lib.rs manage registry、註冊新 command、setup 邏輯抽到 app_setup
src-tauri/src/commands/notifications.rs 新增 get_intervention_list command(overlay 初次快照)
src-tauri/src/app_setup.rs 新增 setup 專用模組(quota monitoring/poller/tray)
package.json 移除未使用依賴(react-router-dom、codemirror 等)
openspec/specs/terminal-launcher/spec.md 新增 Windows MSYS stackdump suppression 一致性需求
openspec/specs/msys-stackdump-suppression/spec.md 新增 MSYS stackdump suppression 規格
openspec/changes/split-large-rust-modules/tasks.md 移除(改歸檔至 archive)
openspec/changes/extract-app-tsx-event-hooks/tasks.md 移除(改歸檔至 archive)
openspec/changes/cleanup-deps-and-settings-defaults/tasks.md 移除(改歸檔至 archive)
openspec/changes/archive/2026-07-21-split-large-rust-modules/tasks.md 新增歸檔 tasks
openspec/changes/archive/2026-07-21-split-large-rust-modules/specs/NO-SPEC-CHANGES.md 新增歸檔說明
openspec/changes/archive/2026-07-21-split-large-rust-modules/proposal.md 新增歸檔 proposal
openspec/changes/archive/2026-07-21-split-large-rust-modules/design.md 新增歸檔 design
openspec/changes/archive/2026-07-21-split-large-rust-modules/.openspec.yaml 新增歸檔 metadata
openspec/changes/archive/2026-07-21-refactor-tauri-setup-lib/tasks.md 更新為已完成勾選版
openspec/changes/archive/2026-07-21-refactor-tauri-setup-lib/specs/NO-SPEC-CHANGES.md 新增歸檔說明
openspec/changes/archive/2026-07-21-refactor-tauri-setup-lib/proposal.md 新增歸檔 proposal
openspec/changes/archive/2026-07-21-refactor-tauri-setup-lib/design.md 新增歸檔 design
openspec/changes/archive/2026-07-21-refactor-tauri-setup-lib/.openspec.yaml 新增歸檔 metadata
openspec/changes/archive/2026-07-21-extract-embedded-apps-and-settings-hook/tasks.md 更新為已完成勾選版
openspec/changes/archive/2026-07-21-extract-embedded-apps-and-settings-hook/specs/NO-SPEC-CHANGES.md 新增歸檔說明
openspec/changes/archive/2026-07-21-extract-embedded-apps-and-settings-hook/proposal.md 新增歸檔 proposal
openspec/changes/archive/2026-07-21-extract-embedded-apps-and-settings-hook/design.md 新增歸檔 design
openspec/changes/archive/2026-07-21-extract-embedded-apps-and-settings-hook/.openspec.yaml 新增歸檔 metadata
openspec/changes/archive/2026-07-21-extract-app-tsx-event-hooks/tasks.md 新增歸檔 tasks
openspec/changes/archive/2026-07-21-extract-app-tsx-event-hooks/specs/NO-SPEC-CHANGES.md 新增歸檔說明
openspec/changes/archive/2026-07-21-extract-app-tsx-event-hooks/proposal.md 新增歸檔 proposal
openspec/changes/archive/2026-07-21-extract-app-tsx-event-hooks/design.md 新增歸檔 design
openspec/changes/archive/2026-07-21-extract-app-tsx-event-hooks/.openspec.yaml 新增歸檔 metadata
openspec/changes/archive/2026-07-21-cleanup-deps-and-settings-defaults/tasks.md 新增歸檔 tasks
openspec/changes/archive/2026-07-21-cleanup-deps-and-settings-defaults/specs/NO-SPEC-CHANGES.md 新增歸檔說明
openspec/changes/archive/2026-07-21-cleanup-deps-and-settings-defaults/proposal.md 新增歸檔 proposal
openspec/changes/archive/2026-07-21-cleanup-deps-and-settings-defaults/design.md 新增歸檔 design
openspec/changes/archive/2026-07-21-cleanup-deps-and-settings-defaults/.openspec.yaml 新增歸檔 metadata
openspec/changes/archive/2026-07-21-avoid-msys-bash-stackdumps/tasks.md 新增歸檔 tasks
openspec/changes/archive/2026-07-21-avoid-msys-bash-stackdumps/specs/terminal-launcher/spec.md 新增歸檔 spec delta
openspec/changes/archive/2026-07-21-avoid-msys-bash-stackdumps/specs/msys-stackdump-suppression/spec.md 新增歸檔 spec delta
openspec/changes/archive/2026-07-21-avoid-msys-bash-stackdumps/proposal.md 新增歸檔 proposal
openspec/changes/archive/2026-07-21-avoid-msys-bash-stackdumps/design.md 新增歸檔 design
openspec/changes/archive/2026-07-21-avoid-msys-bash-stackdumps/.openspec.yaml 新增歸檔 metadata
openspec/changes/add-intervention-overlay-panel/tasks.md 更新為已完成/待驗證勾選版
openspec/changes/add-intervention-overlay-panel/specs/intervention-overlay-panel/spec.md 更新需求:沿用 enable_intervention_notification 當總開關
openspec/changes/add-intervention-overlay-panel/specs/intervention-notification/spec.md 移除(不再新增 enable_waiting_toast)
openspec/changes/add-intervention-overlay-panel/proposal.md 更新:不新增 enable_waiting_toast,沿用既有總開關
openspec/changes/add-intervention-overlay-panel/design.md 更新設計決策與已知限制說明

Comment on lines +34 to +39
const unlistenSnapshots = await listen("quota-snapshots-updated", () => {
if (mounted) {
void queryClient.invalidateQueries({ queryKey: ["embedded_quota_snapshots", "quota_overlay"] });
void queryClient.refetchQueries({ queryKey: ["embedded_quota_snapshots", "quota_overlay"] });
}
});
Comment on lines +40 to +48
const unlistenSettings = await listen<AppSettings>("quota-overlay-settings-changed", (event) => {
if (mounted) {
queryClient.setQueryData(["embedded_settings", "quota_overlay"], event.payload);
// 重新讀取持久化設定,並重新掛載透明 overlay 以確保樣式立即套用。
void queryClient.invalidateQueries({ queryKey: ["embedded_settings", "quota_overlay"] });
void queryClient.refetchQueries({ queryKey: ["embedded_settings", "quota_overlay"] });
setOverlayRevision((revision) => revision + 1);
}
});
Comment on lines +59 to +65
return async (event) => {
const { cwd } = event.payload;
const updated = await invoke<SessionInfo | null>("get_session_by_cwd", {
cwd,
rootDir: copilotRoot,
}).catch(() => null);

Comment on lines +329 to +330
/// 由 cwd 最後一段路徑推導 projectName,取不到時 fallback session_id 尾段或 provider 名。
/// 與 `App.tsx:1038` 的 `session?.cwd?.split("\\").pop()` 同規則。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants