Skip to content

fix(skills): Recover interrupted installation operations - #49

Merged
philprime merged 1 commit into
philprime/ref/skill-installation-outcomesfrom
philprime/fix/skill-installation-recovery
Oct 14, 2026
Merged

philprime merged 1 commit into
philprime/ref/skill-installation-outcomesfrom
philprime/fix/skill-installation-recovery

Conversation

@philprime

Copy link
Copy Markdown
Member

Record per-skill pending operations before changing SKILL.md and its ownership receipt. Subsequent commands complete interrupted operations only when current files match recorded states. External edits, invalid journals, and symlinks prevent recovery, including with --force.

Dry runs preview recovery without modifying files. All selected skills are preflighted before recovery or mutation. If a later skill fails, commands print completed outcomes and still exit with the underlying error.

Recovery Scope
The journal is an owned file alongside SKILL.md and its receipt. Recovery rolls forward per skill rather than promising an atomic batch. Existing receipt files remain compatible, and unrelated directory contents are preserved. Concurrent invocations are not serialized.

Stack
Based on #48.

Verification
Failure-injection tests cover receipt writes, updates, removal, journal cleanup, external edits, invalid journals, symlinks, dry runs, and partial batch completion. make test, make analyze, and make build passed. A release dry run recognized an interrupted operation while leaving its files unchanged.

@philprime
philprime added this pull request to stack #51 October 14, 2026 11:07
@philprime
philprime marked this pull request as ready for review October 14, 2026 11:10
@philprime
philprime merged commit 5869c1b into main Oct 14, 2026
14 of 15 checks passed
@philprime
philprime deleted the philprime/fix/skill-installation-recovery branch October 14, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant