You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Validation therefore rejects a conflict-bearing dry-run with Missing apply decision for conflicted path ....
Why does this matter?
Dry-run is meant to be the non-mutating view of what scaffolding would encounter. Conflicts are precisely where this view is most useful, but the current workflow represents the preview using execution intent that is invalid by definition.
flowchart LR
P[Plan with conflict] --> D[Dry-run]
D --> A[Apply with decisions: empty]
A --> V{Apply invariant}
V -->|missing decision| F[preview fails]
style F stroke:#dc2626,stroke-width:2px
Loading
The problem is semantic rather than merely a missing default: a preview has not collected user execution decisions and should not pretend that it has.
Scope
Define how dry-run represents unresolved conflicts without mutating the repository.
Preserve the invariant that an executable Apply has complete and exact decisions.
What problem are we solving?
CLI dry-run currently creates an
Applywith no decisions:However, the Apply invariant requires one decision for every conflicted path. Both preview and execution call the same validation:
Validation therefore rejects a conflict-bearing dry-run with
Missing apply decision for conflicted path ....Why does this matter?
Dry-run is meant to be the non-mutating view of what scaffolding would encounter. Conflicts are precisely where this view is most useful, but the current workflow represents the preview using execution intent that is invalid by definition.
flowchart LR P[Plan with conflict] --> D[Dry-run] D --> A[Apply with decisions: empty] A --> V{Apply invariant} V -->|missing decision| F[preview fails] style F stroke:#dc2626,stroke-width:2pxThe problem is semantic rather than merely a missing default: a preview has not collected user execution decisions and should not pretend that it has.
Scope
Acceptance criteria
Blocked by
None - can start immediately.