specweave 0.28.13 → 0.28.15

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.
Files changed (86) hide show
  1. package/dist/src/cli/commands/archive.d.ts +0 -1
  2. package/dist/src/cli/commands/archive.d.ts.map +1 -1
  3. package/dist/src/cli/commands/archive.js +1 -4
  4. package/dist/src/cli/commands/archive.js.map +1 -1
  5. package/dist/src/cli/commands/import-external.d.ts.map +1 -1
  6. package/dist/src/cli/commands/import-external.js +128 -16
  7. package/dist/src/cli/commands/import-external.js.map +1 -1
  8. package/dist/src/cli/commands/init.js +5 -5
  9. package/dist/src/cli/commands/init.js.map +1 -1
  10. package/dist/src/cli/helpers/init/external-import.d.ts +3 -1
  11. package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
  12. package/dist/src/cli/helpers/init/external-import.js +407 -19
  13. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  14. package/dist/src/cli/helpers/init/next-steps.d.ts.map +1 -1
  15. package/dist/src/cli/helpers/init/next-steps.js +77 -5
  16. package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
  17. package/dist/src/cli/helpers/init/smart-reinit.d.ts +2 -0
  18. package/dist/src/cli/helpers/init/smart-reinit.d.ts.map +1 -1
  19. package/dist/src/cli/helpers/init/smart-reinit.js +371 -36
  20. package/dist/src/cli/helpers/init/smart-reinit.js.map +1 -1
  21. package/dist/src/cli/helpers/init/testing-config.d.ts +5 -2
  22. package/dist/src/cli/helpers/init/testing-config.d.ts.map +1 -1
  23. package/dist/src/cli/helpers/init/testing-config.js +322 -31
  24. package/dist/src/cli/helpers/init/testing-config.js.map +1 -1
  25. package/dist/src/core/feature-deleter/validator.d.ts +1 -0
  26. package/dist/src/core/feature-deleter/validator.d.ts.map +1 -1
  27. package/dist/src/core/feature-deleter/validator.js +8 -10
  28. package/dist/src/core/feature-deleter/validator.js.map +1 -1
  29. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
  30. package/dist/src/core/increment/increment-archiver.js +12 -5
  31. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  32. package/dist/src/core/living-docs/feature-archiver.d.ts +25 -3
  33. package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -1
  34. package/dist/src/core/living-docs/feature-archiver.js +131 -129
  35. package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
  36. package/dist/src/core/living-docs/feature-consistency-validator.d.ts +23 -22
  37. package/dist/src/core/living-docs/feature-consistency-validator.d.ts.map +1 -1
  38. package/dist/src/core/living-docs/feature-consistency-validator.js +68 -150
  39. package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
  40. package/dist/src/core/living-docs/feature-id-manager.d.ts +5 -1
  41. package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -1
  42. package/dist/src/core/living-docs/feature-id-manager.js +43 -23
  43. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
  44. package/dist/src/core/living-docs/hierarchy-mapper.d.ts +21 -12
  45. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  46. package/dist/src/core/living-docs/hierarchy-mapper.js +89 -70
  47. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  48. package/dist/src/core/living-docs/living-docs-sync.d.ts +10 -11
  49. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  50. package/dist/src/core/living-docs/living-docs-sync.js +24 -56
  51. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  52. package/dist/src/core/repo-structure/repo-bulk-discovery.d.ts +1 -1
  53. package/dist/src/core/repo-structure/repo-bulk-discovery.d.ts.map +1 -1
  54. package/dist/src/core/repo-structure/repo-bulk-discovery.js +168 -126
  55. package/dist/src/core/repo-structure/repo-bulk-discovery.js.map +1 -1
  56. package/dist/src/core/spec-detector.js +2 -2
  57. package/dist/src/core/spec-detector.js.map +1 -1
  58. package/dist/src/importers/duplicate-detector.d.ts +6 -0
  59. package/dist/src/importers/duplicate-detector.d.ts.map +1 -1
  60. package/dist/src/importers/duplicate-detector.js +8 -2
  61. package/dist/src/importers/duplicate-detector.js.map +1 -1
  62. package/dist/src/importers/external-importer.d.ts +6 -0
  63. package/dist/src/importers/external-importer.d.ts.map +1 -1
  64. package/dist/src/importers/import-coordinator.d.ts +38 -2
  65. package/dist/src/importers/import-coordinator.d.ts.map +1 -1
  66. package/dist/src/importers/import-coordinator.js +142 -5
  67. package/dist/src/importers/import-coordinator.js.map +1 -1
  68. package/dist/src/importers/item-converter.d.ts +39 -1
  69. package/dist/src/importers/item-converter.d.ts.map +1 -1
  70. package/dist/src/importers/item-converter.js +202 -24
  71. package/dist/src/importers/item-converter.js.map +1 -1
  72. package/dist/src/living-docs/fs-id-allocator.d.ts +9 -2
  73. package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
  74. package/dist/src/living-docs/fs-id-allocator.js +24 -10
  75. package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
  76. package/dist/src/sync/sync-metadata.d.ts.map +1 -1
  77. package/dist/src/sync/sync-metadata.js +31 -2
  78. package/dist/src/sync/sync-metadata.js.map +1 -1
  79. package/dist/src/utils/project-detection.d.ts +13 -10
  80. package/dist/src/utils/project-detection.d.ts.map +1 -1
  81. package/dist/src/utils/project-detection.js +26 -11
  82. package/dist/src/utils/project-detection.js.map +1 -1
  83. package/package.json +1 -1
  84. package/plugins/specweave/agents/AGENTS-INDEX.md +0 -9
  85. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +12 -0
  86. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +18 -0
@@ -1,6 +1,10 @@
1
1
  /**
2
2
  * Feature & Epic Archiver - Smart archiving system for features and epics
3
3
  *
4
+ * v5.0.0 - Unified Project Structure
5
+ * Features now live directly in project folders: {project}/FS-XXX/
6
+ * No more separate _features folder.
7
+ *
4
8
  * Works in tandem with IncrementArchiver to maintain consistency between
5
9
  * increments, features, and epics. When an increment is archived, its
6
10
  * associated feature is automatically archived if all increments for
@@ -16,7 +20,7 @@ export class FeatureArchiver {
16
20
  constructor(rootDir) {
17
21
  this.rootDir = rootDir;
18
22
  this.specsDir = path.join(rootDir, '.specweave', 'docs', 'internal', 'specs');
19
- this.featuresDir = path.join(this.specsDir, '_features');
23
+ // v5.0.0: No more _features folder - features live in {project}/FS-XXX/
20
24
  this.epicsDir = path.join(this.specsDir, '_epics');
21
25
  this.incrementArchiver = new IncrementArchiver(rootDir);
22
26
  this.hierarchyMapper = new HierarchyMapper(rootDir);
@@ -70,13 +74,13 @@ export class FeatureArchiver {
70
74
  }
71
75
  /**
72
76
  * Identify features that should be archived
77
+ * v5.0.0: Features now live in {project}/FS-XXX/, archives go to {project}/_archive/FS-XXX/
73
78
  */
74
79
  async identifyFeaturesToArchive(archivedIncrements, options) {
75
80
  const operations = [];
76
- const features = await this.getAllFeatures();
77
- for (const featureId of features) {
78
- const featurePath = path.join(this.featuresDir, featureId);
79
- const archivePath = path.join(this.featuresDir, '_archive', featureId);
81
+ const featureLocations = await this.getAllFeatureLocations();
82
+ for (const { featureId, projectId, featurePath } of featureLocations) {
83
+ const archivePath = path.join(this.specsDir, projectId, '_archive', featureId);
80
84
  // Skip if already archived AND source doesn't exist (no duplicate)
81
85
  // Allow operation to proceed if both source and target exist (duplicate cleanup)
82
86
  const sourceExists = await fs.pathExists(featurePath);
@@ -242,13 +246,14 @@ export class FeatureArchiver {
242
246
  }
243
247
  }
244
248
  /**
245
- * Archive project-specific folders for a feature
249
+ * Archive all project folders containing this feature
250
+ * v5.0.0: Features live directly in {project}/FS-XXX/, archived to {project}/_archive/FS-XXX/
246
251
  */
247
252
  async archiveProjectSpecificFolders(featureId) {
248
- // Get all project folders
253
+ // Get all project folders containing this feature
249
254
  const projectPattern = path.join(this.specsDir, '*', featureId);
250
255
  const projectFolders = await glob(projectPattern, {
251
- ignore: ['**/node_modules/**', '**/_features/**', '**/_epics/**', '**/_archive/**']
256
+ ignore: ['**/node_modules/**', '**/_epics/**', '**/_archive/**']
252
257
  });
253
258
  for (const folder of projectFolders) {
254
259
  const projectId = path.basename(path.dirname(folder));
@@ -288,6 +293,7 @@ export class FeatureArchiver {
288
293
  }
289
294
  /**
290
295
  * Update links in a single file
296
+ * v5.0.0: Features live in {project}/FS-XXX/, no more _features folder
291
297
  */
292
298
  async updateLinksInFile(filePath, archivedFeatures, archivedEpics) {
293
299
  const updates = [];
@@ -296,26 +302,27 @@ export class FeatureArchiver {
296
302
  let modified = false;
297
303
  for (let i = 0; i < lines.length; i++) {
298
304
  const line = lines[i];
299
- // Check for feature links
305
+ // Check for feature links - now only in project folders
300
306
  for (const featureId of archivedFeatures) {
301
- const patterns = [
302
- new RegExp(`(\\[.*?\\]\\()([^)]*\/_features\/${featureId}\/[^)]*)\\)`, 'g'),
303
- new RegExp(`(\\[.*?\\]\\()([^)]*\/specs\/[^/]+\/${featureId}\/[^)]*)\\)`, 'g')
304
- ];
305
- for (const pattern of patterns) {
306
- const matches = [...line.matchAll(pattern)];
307
- for (const match of matches) {
308
- const oldPath = match[2];
309
- const newPath = oldPath.replace(new RegExp(`(\/_features|\/specs\/[^/]+)\/${featureId}\/`), `$1/_archive/${featureId}/`);
310
- lines[i] = lines[i].replace(oldPath, newPath);
311
- modified = true;
312
- updates.push({
313
- file: filePath,
314
- oldLink: oldPath,
315
- newLink: newPath,
316
- lineNumber: i + 1
317
- });
307
+ // v5.0.0: Features are in {project}/FS-XXX/, archive to {project}/_archive/FS-XXX/
308
+ const pattern = new RegExp(`(\\[.*?\\]\\()([^)]*\/specs\/([^/]+)\/${featureId}\/[^)]*)\\)`, 'g');
309
+ const matches = [...line.matchAll(pattern)];
310
+ for (const match of matches) {
311
+ const oldPath = match[2];
312
+ const projectId = match[3];
313
+ // Skip if already in archive
314
+ if (oldPath.includes('/_archive/')) {
315
+ continue;
318
316
  }
317
+ const newPath = oldPath.replace(new RegExp(`\/specs\/${projectId}\/${featureId}\/`), `/specs/${projectId}/_archive/${featureId}/`);
318
+ lines[i] = lines[i].replace(oldPath, newPath);
319
+ modified = true;
320
+ updates.push({
321
+ file: filePath,
322
+ oldLink: oldPath,
323
+ newLink: newPath,
324
+ lineNumber: i + 1
325
+ });
319
326
  }
320
327
  }
321
328
  // Check for epic links
@@ -343,22 +350,51 @@ export class FeatureArchiver {
343
350
  return updates;
344
351
  }
345
352
  /**
346
- * Get all features
353
+ * Get all features (just IDs, for backward compatibility)
354
+ * v5.0.0: Scans project folders for FS-* directories
347
355
  */
348
356
  async getAllFeatures() {
349
- if (!await fs.pathExists(this.featuresDir)) {
350
- return [];
351
- }
352
- const pattern = path.join(this.featuresDir, 'FS-*');
353
- const folders = await glob(pattern);
354
- const features = [];
355
- for (const folder of folders) {
356
- const stats = await fs.stat(folder);
357
- if (stats.isDirectory() && !folder.includes('_archive')) {
358
- features.push(path.basename(folder));
357
+ const locations = await this.getAllFeatureLocations();
358
+ // Return unique feature IDs
359
+ return [...new Set(locations.map(loc => loc.featureId))];
360
+ }
361
+ /**
362
+ * Get all feature locations with project context
363
+ * v5.0.0: Features live in {project}/FS-XXX/
364
+ * @returns Array of { featureId, projectId, featurePath }
365
+ */
366
+ async getAllFeatureLocations() {
367
+ const results = [];
368
+ if (!await fs.pathExists(this.specsDir)) {
369
+ return results;
370
+ }
371
+ // Scan all project folders
372
+ const projectEntries = await fs.readdir(this.specsDir, { withFileTypes: true });
373
+ for (const projectEntry of projectEntries) {
374
+ if (!projectEntry.isDirectory())
375
+ continue;
376
+ const projectId = projectEntry.name;
377
+ // Skip special folders
378
+ if (projectId.startsWith('_'))
379
+ continue;
380
+ const projectPath = path.join(this.specsDir, projectId);
381
+ // Scan for FS-* folders in this project
382
+ const featurePattern = path.join(projectPath, 'FS-*');
383
+ const featureFolders = await glob(featurePattern, {
384
+ ignore: ['**/_archive/**']
385
+ });
386
+ for (const folder of featureFolders) {
387
+ const stats = await fs.stat(folder);
388
+ if (stats.isDirectory()) {
389
+ results.push({
390
+ featureId: path.basename(folder),
391
+ projectId,
392
+ featurePath: folder
393
+ });
394
+ }
359
395
  }
360
396
  }
361
- return features;
397
+ return results;
362
398
  }
363
399
  /**
364
400
  * Get all epics
@@ -462,44 +498,51 @@ export class FeatureArchiver {
462
498
  }
463
499
  /**
464
500
  * Get features linked to an epic
501
+ * v5.0.0: Features live in {project}/FS-XXX/
465
502
  */
466
503
  async getLinkedFeatures(epicId) {
467
504
  const features = [];
468
- const allFeatures = await this.getAllFeatures();
469
- for (const featureId of allFeatures) {
470
- const featurePath = path.join(this.featuresDir, featureId, 'FEATURE.md');
471
- if (await fs.pathExists(featurePath)) {
472
- const content = await fs.readFile(featurePath, 'utf-8');
505
+ const locations = await this.getAllFeatureLocations();
506
+ for (const { featureId, featurePath } of locations) {
507
+ const featureFile = path.join(featurePath, 'FEATURE.md');
508
+ if (await fs.pathExists(featureFile)) {
509
+ const content = await fs.readFile(featureFile, 'utf-8');
473
510
  // Check if feature references the epic
474
511
  if (content.includes(epicId)) {
475
512
  features.push(featureId);
476
513
  }
477
514
  }
478
515
  }
479
- // Also check archived features
480
- const archivedPattern = path.join(this.featuresDir, '_archive', 'FS-*', 'FEATURE.md');
516
+ // Also check archived features in all project folders
517
+ const archivedPattern = path.join(this.specsDir, '*', '_archive', 'FS-*', 'FEATURE.md');
481
518
  const archivedFiles = await glob(archivedPattern);
482
519
  for (const file of archivedFiles) {
483
520
  const content = await fs.readFile(file, 'utf-8');
484
521
  if (content.includes(epicId)) {
485
522
  const featureId = path.basename(path.dirname(file));
486
- features.push(featureId);
523
+ if (!features.includes(featureId)) {
524
+ features.push(featureId);
525
+ }
487
526
  }
488
527
  }
489
528
  return features;
490
529
  }
491
530
  /**
492
531
  * Check if all features are archived
532
+ * v5.0.0: Features live in {project}/FS-XXX/, archives in {project}/_archive/FS-XXX/
493
533
  */
494
534
  async areAllFeaturesArchived(featureIds) {
495
535
  if (featureIds.length === 0) {
496
536
  return false;
497
537
  }
498
538
  for (const featureId of featureIds) {
499
- const archivePath = path.join(this.featuresDir, '_archive', featureId);
500
- const activePath = path.join(this.featuresDir, featureId);
501
- // If feature exists in active location, it's not archived
502
- if (await fs.pathExists(activePath) && !await fs.pathExists(archivePath)) {
539
+ // Check if feature exists in any active project folder
540
+ const activePattern = path.join(this.specsDir, '*', featureId);
541
+ const activeFolders = await glob(activePattern, {
542
+ ignore: ['**/_archive/**']
543
+ });
544
+ // If feature exists in any active location, it's not archived
545
+ if (activeFolders.length > 0) {
503
546
  return false;
504
547
  }
505
548
  }
@@ -507,12 +550,13 @@ export class FeatureArchiver {
507
550
  }
508
551
  /**
509
552
  * Check if feature has active projects
553
+ * v5.0.0: Features live in {project}/FS-XXX/
510
554
  */
511
555
  async hasActiveProjects(featureId) {
512
556
  // Check all project folders for this feature
513
557
  const projectPattern = path.join(this.specsDir, '*', featureId);
514
558
  const projectFolders = await glob(projectPattern, {
515
- ignore: ['**/node_modules/**', '**/_features/**', '**/_epics/**', '**/_archive/**']
559
+ ignore: ['**/node_modules/**', '**/_epics/**', '**/_archive/**']
516
560
  });
517
561
  for (const folder of projectFolders) {
518
562
  // Check if any user stories have active status
@@ -530,9 +574,10 @@ export class FeatureArchiver {
530
574
  }
531
575
  /**
532
576
  * Ensure archive directories exist
577
+ * v5.0.0: No more _features folder - archives go to {project}/_archive/
533
578
  */
534
579
  async ensureArchiveDirectories() {
535
- await fs.ensureDir(path.join(this.featuresDir, '_archive'));
580
+ // Ensure epics archive
536
581
  await fs.ensureDir(path.join(this.epicsDir, '_archive'));
537
582
  // Ensure project-specific archive directories
538
583
  const projectDirs = await glob(path.join(this.specsDir, '*'));
@@ -605,24 +650,23 @@ export class FeatureArchiver {
605
650
  }
606
651
  /**
607
652
  * Restore a feature from archive
653
+ * v5.0.0: Features live in {project}/FS-XXX/, archives in {project}/_archive/FS-XXX/
608
654
  */
609
655
  async restoreFeature(featureId) {
610
- const archivePath = path.join(this.featuresDir, '_archive', featureId);
611
- const targetPath = path.join(this.featuresDir, featureId);
612
- if (!await fs.pathExists(archivePath)) {
613
- throw new Error(`Feature ${featureId} not found in archive`);
614
- }
615
- if (await fs.pathExists(targetPath)) {
616
- throw new Error(`Feature ${featureId} already exists in active location`);
617
- }
618
- // Restore feature
619
- await fs.move(archivePath, targetPath);
620
- // Restore project-specific folders
656
+ // Find all archived folders for this feature
621
657
  const projectPattern = path.join(this.specsDir, '*', '_archive', featureId);
622
658
  const archivedFolders = await glob(projectPattern);
659
+ if (archivedFolders.length === 0) {
660
+ throw new Error(`Feature ${featureId} not found in any archive`);
661
+ }
662
+ // Restore in all project folders
623
663
  for (const folder of archivedFolders) {
624
664
  const projectId = path.basename(path.dirname(path.dirname(folder)));
625
665
  const targetProjectPath = path.join(this.specsDir, projectId, featureId);
666
+ if (await fs.pathExists(targetProjectPath)) {
667
+ console.log(` ⚠️ ${projectId}/${featureId} already exists, skipping`);
668
+ continue;
669
+ }
626
670
  await fs.move(folder, targetProjectPath);
627
671
  console.log(` ✅ Restored ${projectId}/${featureId}`);
628
672
  }
@@ -632,6 +676,7 @@ export class FeatureArchiver {
632
676
  }
633
677
  /**
634
678
  * Update links for restored feature
679
+ * v5.0.0: Features live in {project}/FS-XXX/, no _features folder
635
680
  */
636
681
  async updateLinksForRestoredFeature(featureId) {
637
682
  const pattern = path.join(this.rootDir, '**/*.md');
@@ -641,12 +686,9 @@ export class FeatureArchiver {
641
686
  let updatedFiles = 0;
642
687
  for (const file of files) {
643
688
  const content = await fs.readFile(file, 'utf-8');
644
- // Update archive links back to active
689
+ // Update archive links back to active (in project folders)
645
690
  const updatedContent = content
646
- .replace(new RegExp(`(\/_features\/_archive\/${featureId}\/)`, 'g'), `/_features/${featureId}/`)
647
- .replace(new RegExp(`(\/specs\/[^/]+\/_archive\/${featureId}\/)`, 'g'), (match, p1) => {
648
- return match.replace('/_archive/', '/');
649
- });
691
+ .replace(new RegExp(`(\/specs\/[^/]+)\/_archive\/${featureId}\/`, 'g'), `$1/${featureId}/`);
650
692
  if (content !== updatedContent) {
651
693
  await fs.writeFile(file, updatedContent, 'utf-8');
652
694
  updatedFiles++;
@@ -658,6 +700,7 @@ export class FeatureArchiver {
658
700
  }
659
701
  /**
660
702
  * Get archive statistics
703
+ * v5.0.0: Features live in {project}/FS-XXX/, no _features folder
661
704
  */
662
705
  async getArchiveStats() {
663
706
  const stats = {
@@ -665,13 +708,6 @@ export class FeatureArchiver {
665
708
  epics: { active: 0, archived: 0 },
666
709
  projects: {}
667
710
  };
668
- // Count features
669
- const activeFeatures = await this.getAllFeatures();
670
- stats.features.active = activeFeatures.length;
671
- if (await fs.pathExists(path.join(this.featuresDir, '_archive'))) {
672
- const archivedFeatures = await glob(path.join(this.featuresDir, '_archive', 'FS-*'));
673
- stats.features.archived = archivedFeatures.length;
674
- }
675
711
  // Count epics
676
712
  const activeEpics = await this.getAllEpics();
677
713
  stats.epics.active = activeEpics.length;
@@ -679,7 +715,7 @@ export class FeatureArchiver {
679
715
  const archivedEpics = await glob(path.join(this.epicsDir, '_archive', 'EPIC-*'));
680
716
  stats.epics.archived = archivedEpics.length;
681
717
  }
682
- // Count per project
718
+ // Count per project (this now also gives us total features)
683
719
  const projectDirs = await glob(path.join(this.specsDir, '*'));
684
720
  for (const dir of projectDirs) {
685
721
  const dirStats = await fs.stat(dir);
@@ -692,12 +728,16 @@ export class FeatureArchiver {
692
728
  const active = (await glob(activePattern)).length;
693
729
  const archived = (await glob(archivedPattern)).length;
694
730
  stats.projects[projectId] = { active, archived };
731
+ // Aggregate to total features
732
+ stats.features.active += active;
733
+ stats.features.archived += archived;
695
734
  }
696
735
  }
697
736
  return stats;
698
737
  }
699
738
  /**
700
739
  * Clean up feature folder duplicates
740
+ * v5.0.0: Features live in {project}/FS-XXX/, archives in {project}/_archive/FS-XXX/
701
741
  *
702
742
  * Removes active folders that are ALSO in archive (keeps archive version as source of truth)
703
743
  * CRITICAL: Fixes bug where living docs sync recreates archived feature folders
@@ -711,63 +751,24 @@ export class FeatureArchiver {
711
751
  };
712
752
  console.log('🧹 Scanning for duplicate feature folders (active + archive)...');
713
753
  try {
714
- // Get all archived features
715
- const archivePattern = path.join(this.featuresDir, '_archive', 'FS-*');
754
+ // Get all archived features from all project folders
755
+ const archivePattern = path.join(this.specsDir, '*', '_archive', 'FS-*');
716
756
  const archivedPaths = await glob(archivePattern);
717
- console.log(` Found ${archivedPaths.length} archived features`);
757
+ // Collect unique feature IDs
758
+ const uniqueFeatureIds = new Set();
718
759
  for (const archivedPath of archivedPaths) {
719
- const featureId = path.basename(archivedPath);
720
- const activePath = path.join(this.featuresDir, featureId);
721
- // Check if active folder exists (duplicate in _features/)
722
- const activeExists = await fs.pathExists(activePath);
723
- const archiveExists = await fs.pathExists(archivedPath);
724
- let hasDuplicates = false;
725
- if (activeExists && archiveExists) {
726
- console.log(` ⚠️ Duplicate detected: ${featureId} (_features/)`);
727
- console.log(` → Active: ${activePath}`);
728
- console.log(` → Archive: ${archivedPath}`);
729
- // BUGFIX (v0.26.12): Check if feature has active increments before removing
730
- const linkedIncrements = await this.getLinkedIncrements(featureId);
731
- const archivedIncrements = await this.incrementArchiver.listArchived();
732
- const hasActiveIncrements = linkedIncrements.some(inc => !archivedIncrements.includes(inc));
733
- if (hasActiveIncrements) {
734
- // Feature has active increments → remove ARCHIVE, keep ACTIVE
735
- try {
736
- await fs.remove(archivedPath);
737
- console.log(` ✅ Removed archive duplicate (feature has active increments)`);
738
- result.cleaned.push(`_features/_archive/${featureId}`);
739
- hasDuplicates = true;
740
- }
741
- catch (error) {
742
- const errMsg = `Failed to clean archive ${featureId}: ${error}`;
743
- console.error(` ❌ ${errMsg}`);
744
- result.errors.push(errMsg);
745
- }
746
- }
747
- else {
748
- // All increments archived → remove ACTIVE, keep ARCHIVE
749
- try {
750
- await fs.remove(activePath);
751
- console.log(` ✅ Removed active duplicate (all increments archived)`);
752
- result.cleaned.push(`_features/${featureId}`);
753
- hasDuplicates = true;
754
- }
755
- catch (error) {
756
- const errMsg = `Failed to clean ${featureId}: ${error}`;
757
- console.error(` ❌ ${errMsg}`);
758
- result.errors.push(errMsg);
759
- }
760
- }
761
- }
762
- // ALWAYS check project-specific duplicates (even if _features/ has no duplicate)
763
- // This fixes the case where specweave/FS-XXX exists but _features/FS-XXX doesn't
764
- // BUGFIX (v0.26.12): Pass hasActiveIncrements check result to project cleanup
760
+ uniqueFeatureIds.add(path.basename(archivedPath));
761
+ }
762
+ console.log(` Found ${uniqueFeatureIds.size} unique archived features`);
763
+ for (const featureId of uniqueFeatureIds) {
764
+ // Check if feature has active increments
765
765
  const linkedIncrements = await this.getLinkedIncrements(featureId);
766
766
  const archivedIncrements = await this.incrementArchiver.listArchived();
767
767
  const featureHasActiveIncrements = linkedIncrements.some(inc => !archivedIncrements.includes(inc));
768
+ // Clean up project-specific duplicates
768
769
  const projectDuplicatesFound = await this.cleanupProjectSpecificDuplicates(featureId, result, featureHasActiveIncrements);
769
- if (projectDuplicatesFound && !hasDuplicates) {
770
- console.log(` ⚠️ Duplicate detected: ${featureId} (project folders only)`);
770
+ if (projectDuplicatesFound) {
771
+ console.log(` ⚠️ Duplicate detected: ${featureId}`);
771
772
  }
772
773
  }
773
774
  console.log(`\n✅ Cleanup complete:`);
@@ -791,6 +792,7 @@ export class FeatureArchiver {
791
792
  }
792
793
  /**
793
794
  * Clean up project-specific folder duplicates for a feature
795
+ * v5.0.0: Features live in {project}/FS-XXX/, archives in {project}/_archive/FS-XXX/
794
796
  *
795
797
  * BUGFIX (v0.26.12): Now respects hasActiveIncrements to decide which duplicate to remove
796
798
  *
@@ -801,10 +803,10 @@ export class FeatureArchiver {
801
803
  */
802
804
  async cleanupProjectSpecificDuplicates(featureId, result, hasActiveIncrements = false) {
803
805
  let foundDuplicates = false;
804
- // Get all project folders
806
+ // Get all active project folders containing this feature
805
807
  const projectPattern = path.join(this.specsDir, '*', featureId);
806
808
  const projectActiveFolders = await glob(projectPattern, {
807
- ignore: ['**/node_modules/**', '**/_features/**', '**/_epics/**', '**/_archive/**']
809
+ ignore: ['**/node_modules/**', '**/_epics/**', '**/_archive/**']
808
810
  });
809
811
  for (const activeFolder of projectActiveFolders) {
810
812
  const projectId = path.basename(path.dirname(activeFolder));
@@ -1 +1 @@
1
- {"version":3,"file":"feature-archiver.js","sourceRoot":"","sources":["../../../../src/core/living-docs/feature-archiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-archiver.js","sourceRoot":"","sources":["../../../../src/core/living-docs/feature-archiver.ts"],"names":[],"mappings":"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"}