run method

  1. @override
void run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
void run() {
  if (!ContextService.isInitialized()) {
    print('ContextForge has not been initialized in this repository.\n');
    print('Run:');
    print('  contextforge init');
    return;
  }

  ContextService.ensureContextFilesExist();

  print('ContextForge Status');
  print('-------------------\n');
  print('Context Directory: ${ContextService.contextDir}\n');

  print('Files');
  final files = ['project.md', 'architecture.md', 'decisions.md', 'progress.md', 'tasks.md'];
  for (final file in files) {
    final path = '${ContextService.contextDir}/$file';
    final exists = FileService.fileExists(path);
    print('${exists ? '✅' : '❌'} $file');
  }

  print('\nRecent Activity:');
  for (final file in files) {
    final path = '${ContextService.contextDir}/$file';
    if (FileService.fileExists(path)) {
      final stat = FileStat.statSync(path);
      final modified = stat.modified;
      final now = DateTime.now();
      final diff = now.difference(modified);
      String timeAgo;
      if (diff.inDays > 0) {
        timeAgo = '${diff.inDays} days ago';
      } else if (diff.inHours > 0) {
        timeAgo = '${diff.inHours} hours ago';
      } else {
        timeAgo = '${diff.inMinutes} minutes ago';
      }
      print('$file modified $timeAgo');
    }
  }
}