trackFileModification method
Track a file modification by Neomage. Called after Edit/Write tool completes.
Implementation
AttributionState trackFileModification({
required AttributionState attrState,
required String filePath,
required String oldContent,
required String newContent,
bool userModified = false,
int? mtime,
}) {
final normalizedPath = normalizeFilePath(filePath);
final effectiveMtime = mtime ?? DateTime.now().millisecondsSinceEpoch;
final newFileState = _computeFileModificationState(
existingFileStates: attrState.fileStates,
filePath: filePath,
oldContent: oldContent,
newContent: newContent,
mtime: effectiveMtime,
);
if (newFileState == null) return attrState;
final newFileStates = Map<String, FileAttributionState>.from(
attrState.fileStates,
);
newFileStates[normalizedPath] = newFileState;
return attrState.copyWith(fileStates: newFileStates);
}