run method
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');
}
}
}