Summary
crosslink init --force --dry-run applies changes instead of previewing them. The --dry-run flag is silently ignored when combined with --force.
Steps to Reproduce
- In an initialized crosslink repo, run:
crosslink init --force --dry-run
- Observe that files are actually modified (e.g.,
.claude/settings.json, .mcp.json, hook scripts)
git status shows real changes were written
Expected Behavior
--dry-run should take precedence (or at least be respected) — the command should preview what --force would change without writing anything, similar to how --update --dry-run works:
crosslink init --update --dry-run
# ...
# Dry run — no files were modified.
Actual Behavior
All managed files are overwritten as if --dry-run was not passed. No "Dry run" message is shown.
Environment
- crosslink 0.7.0
- macOS (Darwin 25.0.0)
Summary
crosslink init --force --dry-runapplies changes instead of previewing them. The--dry-runflag is silently ignored when combined with--force.Steps to Reproduce
.claude/settings.json,.mcp.json, hook scripts)git statusshows real changes were writtenExpected Behavior
--dry-runshould take precedence (or at least be respected) — the command should preview what--forcewould change without writing anything, similar to how--update --dry-runworks:Actual Behavior
All managed files are overwritten as if
--dry-runwas not passed. No "Dry run" message is shown.Environment