Skip to content

feat(desktop): separate Git review empty and error states #5940

Closed

Description

@Colafornia
English

Problem

Opening the Desktop Changes tab for a task in a valid non-Git directory shows a red “The current task directory is not a Git repository” error with Retry. Retrying cannot make that directory a repository. This is common for newly installed, projectless use, and remains possible after fixing default task directories.

The panel is intentionally Git-only. A valid non-Git workspace is an expected capability state; an unavailable workspace and a failed Git read require different actions.

Desired outcome

  • For a valid non-Git directory, show a neutral explanation that Changes requires a Git repository, display the current task directory, and provide an explicit next action.
  • For a missing or inaccessible workspace, show recovery guidance. Any recovery action must target the current task through the existing supported authority. If only creating a new task is available, label that action clearly.
  • For a Git read failure, retain actionable error details and Retry against the current task. Retrying after recovery should refresh its actual workspace.
  • Keep “no differences” distinct from non-Git, workspace-unavailable, and Git-read-failed states.
  • Make action targets explicit: current-task recovery, new task, and application default selection must not be presented as interchangeable.

Alternatives or workarounds

Select a Git repository and create a task there, or inspect Git from the terminal. Paseo and Synara distinguish non-Git states from failures; OpenCode offers Git setup guidance; Reasonix separates task changes from Git availability. These inform the interaction, without requiring a non-Git diff implementation.

Existing work and scope

Merged PR #2610 made the Changes panel Git-authoritative and removed its non-Git fallback. This issue preserves that scope and adjusts unavailable-state interaction. Issue #5119 / merged PR #5120 cover comparison-base selection, not these states.

Open issue #5551 already tracks a recovery picker that opens a new task instead of repairing an unavailable imported session. Reuse that current-task recovery work; this issue owns the Changes-tab entry point and accurate action wording, not a second relocation mechanism.

Automatic Git initialization, non-Git task snapshots, and default-directory allocation are outside this issue.

Acceptance criteria

  • A valid non-Git task directory shows neutral guidance without a misleading Retry action.
  • Workspace unavailable, Git read failed, and repository with no differences each have distinct copy and actions.
  • Directory guidance shows the current task's workspace rather than the application default.
  • Current-task recovery preserves the task identity and supported relocation safeguards; new-task actions are explicitly labeled.
  • Git failures can be retried and recovery refreshes the correct task; failures are not silently converted to empty results.
  • The four states have focused UI verification, including a projectless packaged-app scenario and an existing task whose directory becomes unavailable.
中文

问题

在有效的非 Git 目录中运行任务,打开 Desktop「变更」tab 会看到红色“当前任务目录不是 Git 仓库”错误及重试按钮。重试无法让该目录变成仓库。新装后未选择项目时常见这个问题;修复默认任务目录后,这种情况仍可能出现。

该面板按设计只提供 Git 功能。有效的非 Git 工作区属于正常的功能不可用状态;工作区不可用和 Git 读取失败需要不同的处理操作。

期望结果

  • 对有效的非 Git 目录,以中性提示说明「变更」需要 Git 仓库,显示当前任务目录,并提供明确的下一步操作。
  • 对丢失或无法访问的工作区,提供恢复引导。恢复操作必须通过现有受支持机制作用于当前任务;如果只能新建任务,应明确标注。
  • 对 Git 读取失败,保留可用于处理的错误信息及针对当前任务的重试。恢复后重试应刷新该任务实际绑定的工作区。
  • “没有差异”与非 Git、工作区不可用、Git 读取失败分别呈现。
  • 明确操作对象:恢复当前任务、新建任务和选择应用默认项目不能作为等价操作呈现。

替代方案或变通

选择 Git 仓库并在其中新建任务,或在终端检查 Git。Paseo 和 Synara 区分非 Git 状态与失败;OpenCode 提供 Git 设置引导;Reasonix 将任务变更与 Git 可用性分开。这些用于参考交互,不要求实现非 Git 差异功能。

已有工作与范围

已合并的 PR #2610 将「变更」面板改为以 Git 为依据,并移除了非 Git 降级。本 issue 保留其范围,调整不可用状态的交互。Issue #5119 / 已合并 PR #5120 处理比较基线选择,不处理这些状态。

开放中的 issue #5551 已跟踪工作区恢复选择器打开新任务、未修复不可用导入会话的问题。复用这项当前任务恢复工作;本 issue 负责「变更」tab 的入口与准确操作文案,不建立第二套迁移机制。

自动初始化 Git、非 Git 任务快照和默认目录分配不在本 issue 范围内。

验收标准

  • 有效的非 Git 任务目录显示中性引导,不提供会误导用户的重试操作。
  • 工作区不可用、Git 读取失败、仓库没有差异分别具有不同文案和操作。
  • 目录引导显示当前任务的工作区,而不是应用默认目录。
  • 当前任务恢复保留任务身份及受支持迁移的安全检查;新建任务操作明确标注。
  • Git 失败可以重试,恢复后刷新正确任务;失败不被静默转为空结果。
  • 针对四种状态完成界面验证,包括安装包无项目场景,以及已有任务目录变得不可用的场景。

Activity

  1. self-assigned this
    on Oct 2, 2026
  2. changed the title [-]fix(desktop): separate Git review empty and error states[/-] [+]feat(desktop): separate Git review empty and error states[/+] on Oct 2, 2026
  3. ggbdpq commented on Oct 4, 2026

    @ggbdpq
    Contributor

    take

  4. github-actions commented on Oct 4, 2026

    @github-actions

    Issue #5940 is already assigned to Colafornia, so it was not reassigned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions