feat(profiles): Implement folder-level profile configuration system #57
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Implements a lightweight folder-level profile configuration system using
.copytreefiles that focus exclusively on include/exclude patterns. This replaces the need for complex global profiles with simple, per-directory configuration files.Closes #55
Changes Made
Implementation Notes
Implementation details:
FolderProfileLoaderclass insrc/config/FolderProfileLoader.js.copytree-<name>.*listProfiles(),exists()buildProfileFromCliOptionsto be async and load folder profiles-r/--as-referenceflag-p <name>flag--profile <name>flag to CLI in bin/copytree.js-r/--as-referencedescription to mention auto-loadingContext & rationale:
-rflag (common workflow)Follow-up Tasks
tests/integration/folderProfile.test.jsneed to be refactored to use tempfs helpers (currently failing due to fs-extra mocking)tests/e2e/folder-profile.test.jscan be run manually to verify CLI behaviorcopytree profile:validate)