claudekit-cli 4.4.0-dev.6 → 4.4.0-dev.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cli-manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "4.4.0-dev.6",
3
- "generatedAt": "2026-06-06T16:32:28.234Z",
2
+ "version": "4.4.0-dev.7",
3
+ "generatedAt": "2026-06-08T14:14:02.326Z",
4
4
  "commands": {
5
5
  "agents": {
6
6
  "name": "agents",
package/dist/index.js CHANGED
@@ -63853,7 +63853,7 @@ var package_default;
63853
63853
  var init_package = __esm(() => {
63854
63854
  package_default = {
63855
63855
  name: "claudekit-cli",
63856
- version: "4.4.0-dev.6",
63856
+ version: "4.4.0-dev.7",
63857
63857
  description: "CLI tool for bootstrapping and updating ClaudeKit projects",
63858
63858
  type: "module",
63859
63859
  repository: {
@@ -108765,12 +108765,13 @@ async function executeSyncMerge(ctx) {
108765
108765
  try {
108766
108766
  const trackedFiles = ctx.syncTrackedFiles;
108767
108767
  const upstreamDir = ctx.options.global ? join136(ctx.extractDir, ".claude") : ctx.extractDir;
108768
+ let sourceMetadata = null;
108768
108769
  let deletions = [];
108769
108770
  try {
108770
108771
  const sourceMetadataPath = join136(upstreamDir, "metadata.json");
108771
108772
  if (await import_fs_extra38.pathExists(sourceMetadataPath)) {
108772
108773
  const content = await readFile59(sourceMetadataPath, "utf-8");
108773
- const sourceMetadata = JSON.parse(content);
108774
+ sourceMetadata = JSON.parse(content);
108774
108775
  deletions = sourceMetadata.deletions || [];
108775
108776
  }
108776
108777
  } catch (error) {
@@ -108784,13 +108785,43 @@ async function executeSyncMerge(ctx) {
108784
108785
  logger.info("Analyzing file changes...");
108785
108786
  const plan = await SyncEngine.createSyncPlan(filteredTrackedFiles, ctx.claudeDir, upstreamDir);
108786
108787
  displaySyncPlan(plan);
108787
- if (plan.autoUpdate.length === 0 && plan.needsReview.length === 0) {
108788
+ const hasSyncUpdates = plan.autoUpdate.length > 0 || plan.needsReview.length > 0;
108789
+ const hasDeletionPatterns = deletions.length > 0;
108790
+ if (!hasSyncUpdates && !hasDeletionPatterns) {
108788
108791
  ctx.prompts.note("All files are up to date or user-owned.", "No Changes Needed");
108789
108792
  return { ...ctx, cancelled: true };
108790
108793
  }
108791
108794
  const backupDir = PathResolver.getBackupDir();
108792
108795
  await createBackup(ctx.claudeDir, trackedFiles, backupDir);
108793
108796
  logger.success(`Backup created at ${import_picocolors26.default.dim(backupDir)}`);
108797
+ if (sourceMetadata?.deletions && sourceMetadata.deletions.length > 0) {
108798
+ try {
108799
+ const deletionResult = await handleDeletions(sourceMetadata, ctx.claudeDir, ctx.kitType);
108800
+ if (deletionResult.deletedPaths.length > 0) {
108801
+ logger.info(`Removed ${deletionResult.deletedPaths.length} deprecated file(s)`);
108802
+ for (const path17 of deletionResult.deletedPaths) {
108803
+ logger.verbose(` - ${path17}`);
108804
+ }
108805
+ }
108806
+ if (deletionResult.preservedPaths.length > 0) {
108807
+ logger.verbose(`Preserved ${deletionResult.preservedPaths.length} user-owned file(s)`);
108808
+ }
108809
+ if (!hasSyncUpdates) {
108810
+ if (deletionResult.deletedPaths.length > 0) {
108811
+ ctx.prompts.outro("Config sync completed successfully");
108812
+ } else {
108813
+ ctx.prompts.note("All files are up to date or user-owned.", "No Changes Needed");
108814
+ }
108815
+ return { ...ctx, cancelled: true };
108816
+ }
108817
+ } catch (error) {
108818
+ logger.debug(`Cleanup of deprecated files failed during sync: ${error}`);
108819
+ if (!hasSyncUpdates) {
108820
+ ctx.prompts.note("All files are up to date or user-owned.", "No Changes Needed");
108821
+ return { ...ctx, cancelled: true };
108822
+ }
108823
+ }
108824
+ }
108794
108825
  if (plan.autoUpdate.length > 0) {
108795
108826
  logger.info(`Auto-updating ${plan.autoUpdate.length} file(s)...`);
108796
108827
  let updateSuccess = 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudekit-cli",
3
- "version": "4.4.0-dev.6",
3
+ "version": "4.4.0-dev.7",
4
4
  "description": "CLI tool for bootstrapping and updating ClaudeKit projects",
5
5
  "type": "module",
6
6
  "repository": {