Exec remediation preview lists files with uncommitted user changes that the apply will not touch

未关闭
#543 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 3 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
backend

调研方向

Start by reading the preview and apply paths for exec remediation on the 043 branch, then compare how other handlers represent dirty files as action = "none" with reason user_changes_present (T055d). Trace how previewed paths control whether apply runs the command. Done means the preview excludes user changes while apply still refuses to run when recorded dirty paths conflict; verify against FR-021 and the relevant tests.

由索引模型根据 Issue 内容生成。

描述

module-core needs triage quality

On the 043 branch, a previewable exec remediation (effects = "working_tree", offline = true, for example the zizmor fixes) is previewed in a scratch copy of the checkout. The preview lists every file the command would change.

If one of those files has uncommitted user changes, the preview still lists it as a modification. The apply then refuses to run the command and reports the conflict.

Nothing is lost, but the preview overstates what will happen, which violates FR-021 (the preview is what the apply will do). Other handlers already preview such files as action = "none", reason = "user_changes_present" (T055d).

Marking the exec paths none in the plan is not enough on its own: the apply uses the previewed paths to decide whether to run the command, so it would then run and touch the user's file. The fix has to keep that stop. One option is to record the dirty paths on the plan item, mark the step as "will not run", and have the apply re-check the recorded paths before running.

Found while implementing feature 043 (remediation safety, branch 043-remediation-safety, not yet merged).

主要语言
Python
星标
22
派生
27
平均合并
4 天 19 小时
30 天内合并 PR
72

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

darnitdevorg/darnit 的其他 Issue

查看 darnitdevorg/darnit 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。