Skip to content

setup: Replace directory-level install with per-asset merge-aware install - #180

Open
davidabram wants to merge 1 commit into
normalize-skillsfrom
non-desctructive-setup
Open

setup: Replace directory-level install with per-asset merge-aware install#180
davidabram wants to merge 1 commit into
normalize-skillsfrom
non-desctructive-setup

Conversation

@davidabram

Copy link
Copy Markdown
Member

No description provided.

…tall

sce setup previously staged the full catalog into a temp directory and
swapped it over the whole .claude/, .opencode/, or .pi/ target directory,
destroying any user-owned files (skills, settings.local.json, CLAUDE.md,
etc.) living alongside SCE's own assets. The two generated JSON configs
(.claude/settings.json, .opencode/opencode.json) had the same problem one
level down: written whole, they clobbered a user's permissions, env,
model, mcp, or non-SCE hook/plugin entries.

Installation now happens per asset: each embedded file is staged and
atomically renamed into place individually, and assets the current
selection or catalog no longer owns are pruned by relative path instead
of the whole directory being rebuilt. The two config files are merged
via a new config_merge module that replaces only the SCE-owned fragment
(hook entries by marker, plugin paths by prefix) and leaves every other
key and entry untouched, idempotently across repeated installs.

sce doctor's integration inspection is updated to match: the two
merge-target configs are checked by whether their SCE-owned fragment is
current rather than by byte-exact sha256, and `--fix` gained a repair
path that reinstalls just a drifted merge-target asset.
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