[Feature] 保护 Viva 同一项目的 Git 状态读取顺序
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- git, typescript
調査の方向性
Start with desktop/internal/workbench/git.go and desktop/internal/workbench/tasks.go to trace how loadGit reads and publishes project state. Add protection so results from older requests cannot replace newer state, including after a project closes or changes; preserve the current state on read failure. Verify with controlled out-of-order requests and close, switch, and reopen scenarios, then check real operations on macOS and Windows.
索引モデルが issue の本文から書いたものです。
説明
Problem to solve / 要解决的问题
Viva 的 desktop/internal/workbench/git.go 中 loadGit 会异步读取当前项目的 Core Git 状态;返回时直接覆盖 p.git。desktop/internal/workbench/tasks.go 只检查项目对象是否仍相同,没有区分同一项目内先后发出的多个请求。打开项目、暂存或分支等动作可以触发读取,因此较早的请求若最后返回,可能覆盖较新的分支和变更数量。上述是源码层面的并发风险,尚未在真实仓库测量复现频率。
Proposed solution / 建议方案
为当前项目的状态读取引入单调请求身份或等价的结果新旧保护;在关闭或切换项目时失效,旧请求的结果不能覆盖新状态。考虑读取失败与用户操作期间的状态展示,不把失败当成空仓库。使用可控替身安排先后请求逆序完成,以及项目关闭、切换和重新打开,验证旧分支与计数不会回退;再在 macOS 与 Windows 验证实际操作。
Target platform / 目标平台
Cross-platform / 跨平台
Area / 模块
Git
Priority / 优先级
P2 / 后续考虑:目前不着急,可安排到后续版本
Alternatives considered / 已考虑的替代方案
只依赖项目身份不能区分同一项目的不同读取;简单取消旧请求也不能假设底层回调绝不会迟到,发布结果时仍需验证身份。
Additional context / 补充信息
关联 #1794 与 #1799。旧 Windows 客户端曾对状态和操作状态维护发布水位线;Viva 当前尚未实现等价的全局多仓库状态表或元数据监听,这些能力应独立验收。
Checklist / 提交前检查
- I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复建议。
- 主要言語
- TypeScript
- スター
- 1.8k
- フォーク
- 151
- 平均マージ
- 9時間 32分
- マージ済み PR(30日)
- 406
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
1lck/Lithe-IDEA のほかの issue
-
review: high
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
1lck/Lithe-IDEA#1797 ·
メンテナーはふだん 1 日以内に返信
-
area:other bug P2 platform:other review: high
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
1lck/Lithe-IDEA#1789 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
review: medium
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
1lck/Lithe-IDEA#1670 ·
メンテナーはふだん 1 日以内に返信
-
area:editor bug P0 platform:macos review: low
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
1lck/Lithe-IDEA#1118 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
review: high
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
1lck/Lithe-IDEA#1816 ·
メンテナーはふだん 1 日以内に返信
1lck/Lithe-IDEA の issue をすべて見る
似ている issue
-
pending close triaging
難易度 1/5 1〜3時間 初心者へのやさしさ 74/100
anomalyco/opencode#63090 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
ai-driven-qa bug claude Cosmetic
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
ai-driven-qa bug claude Minor
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
linagora/twake-mail-admin#609 ·
メンテナーはふだん 1 日以内に返信