CommitAttributionManager class
Manages git commit attribution tracking and calculation.
Usage:
final manager = Sint.put(CommitAttributionManager(
sessionId: 'abc-123',
originalCwd: '/path/to/project',
));
- Inheritance
-
- Object
- Listenable
- ListNotifier
- SintController
- CommitAttributionManager
Constructors
- CommitAttributionManager({required String sessionId, String? originalCwd, String clientSurface = 'cli', String gitExe = 'git'})
Properties
- clientSurface → String
-
final
-
getRemoteUrlForDir
↔ Future<
String?> Function(String cwd)? -
Callback to get the remote URL for a directory.
getter/setter pair
- gitExe → String
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- initialized → bool
-
Checks whether the controller has already been initialized.
no setterinherited
- isClosed → bool
-
Checks whether the controller has already been closed.
no setterinherited
- isDisposed → bool
-
no setterinherited
- isGeneratedFileChecker ↔ bool Function(String filePath)?
-
Callback to check if a file is a generated file (lock files, etc.).
getter/setter pair
- listenersLength → int
-
no setterinherited
-
resolveGitDir
↔ Future<
String?> Function(String cwd)? -
Callback to resolve the git directory path.
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sessionId → String
-
final
-
state
→ Rx<
AttributionState> -
Reactive attribution state.
final
Methods
-
addListener(
SintStateUpdate listener) → Disposer -
Register a closure to be called when the object notifies its listeners.
inherited
-
addListenerId(
Object? key, SintStateUpdate listener) → Disposer -
inherited
-
attributionRestoreStateFromLog(
List< AttributionSnapshotMessage> attributionSnapshots) → void - Restore attribution state from log snapshots on session resume.
-
calculateCommitAttribution(
{required List< AttributionState> states, required List<String> stagedFiles}) → Future<AttributionData> - Calculate final attribution for staged files.
-
containsListener(
SintStateUpdate listener) → bool -
inherited
-
createEmptyAttributionState(
) → AttributionState - Create an empty attribution state for a new session.
-
debounce<
T> (RxInterface< T> rx, void callback(T), {Duration duration = const Duration(milliseconds: 400)}) → void -
Calls
callbackafterrxstops changing forduration. Useful for search-as-you-type, form validation, etc.inherited -
dispose(
) → void -
inherited
-
ever<
T> (RxInterface< T> rx, void callback(T)) → void -
Calls
callbackevery timerxchanges. Auto-cancels on controller disposal.inherited -
expandFilePath(
String filePath) → String - Expand a relative path to absolute path.
-
getAttributionRepoRoot(
) → String - Get the repo root for attribution operations.
-
getClientSurface(
) → String - Get the current client surface from environment.
-
getFileMtime(
String filePath) → Future< int> - Get a file's modification time (mtimeMs).
-
getGitDiffSize(
String filePath) → Future< int> - Get the size of changes for a file from git diff.
-
getRepoClassCached(
) → RepoClassification? - Synchronously return the cached repo classification.
-
getStagedFiles(
) → Future< List< String> > - Get staged files from git.
-
incrementPromptCount(
{required AttributionState attribution, required void saveSnapshot(AttributionSnapshotMessage)}) → AttributionState - Increment promptCount and save an attribution snapshot.
-
interval<
T> (RxInterface< T> rx, void callback(T), {Duration duration = const Duration(seconds: 1)}) → void -
Calls
callbackat most once perduration, ignoring intermediate changes. Useful for rate-limiting UI updates.inherited -
isFileDeleted(
String filePath) → Future< bool> - Check if a file was deleted in the staged changes.
-
isGitTransientState(
) → Future< bool> - Check if we're in a transient git state (rebase, merge, cherry-pick).
-
isInternalModelRepo(
) → Future< bool> - Check if the current repo is in the allowlist for internal model names.
-
isInternalModelRepoCached(
) → bool - Synchronously return the cached result of isInternalModelRepo().
-
normalizeFilePath(
String filePath) → String - Normalize file path to relative path from cwd for consistent tracking.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
once<
T> (RxInterface< T> rx, void callback(T)) → void -
Calls
callbackonly the first timerxchanges, then cancels.inherited -
onClose(
) → void -
Called before onDelete method. onClose might be used to
dispose resources used by the controller. Like closing events,
or streams before the controller is destroyed.
Or dispose objects that can potentially create some memory leaks,
like TextEditingControllers, AnimationControllers.
Might be useful as well to persist some data on disk.
inherited
-
onDelete(
) → void -
inherited
-
onInit(
) → void -
Called immediately after the widget is allocated in memory.
You might use this to initialize something for the controller.
inherited
-
onReady(
) → void -
Called 1 frame after onInit(). It is the perfect place to enter
navigation events, like snackbar, dialogs, or a new route, or
async request.
inherited
-
onStart(
) → void -
Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclasses.
This method should be internal and is required to define the
lifetime cycle of the subclass.
inherited
-
refresh(
) → void -
inherited
-
refreshGroup(
Object id) → void -
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that the
object notifies.
inherited
-
removeListenerId(
Object id, VoidCallback listener) → void -
inherited
-
reportAdd(
VoidCallback disposer) → void -
inherited
-
reportRead(
) → void -
inherited
-
restoreAttributionStateFromSnapshots(
List< AttributionSnapshotMessage> snapshots) → AttributionState - Restore attribution state from snapshot messages.
-
stateToSnapshotMessage(
AttributionState attrState, String messageId) → AttributionSnapshotMessage - Convert attribution state to snapshot message for persistence.
-
toString(
) → String -
A string representation of this object.
inherited
-
trackBulkFileChanges(
{required AttributionState attrState, required List< FileChange> changes}) → AttributionState - Track multiple file changes in bulk, mutating a single Map copy.
-
trackFileCreation(
{required AttributionState attrState, required String filePath, required String content, int? mtime}) → AttributionState - Track a file creation by Neomage.
-
trackFileDeletion(
{required AttributionState attrState, required String filePath, required String oldContent}) → AttributionState - Track a file deletion by Neomage.
-
trackFileModification(
{required AttributionState attrState, required String filePath, required String oldContent, required String newContent, bool userModified = false, int? mtime}) → AttributionState - Track a file modification by Neomage. Called after Edit/Write tool completes.
-
update(
[List< Object> ? ids, bool condition = true]) → void -
Notifies listeners to update the UI.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
buildSurfaceKey(
String surface, String modelName) → String - Build a surface key that includes the model name.
-
computeContentHash(
String content) → String - Compute SHA-256 hash of content.
-
sanitizeModelName(
String shortName) → String - Sanitize a model name to its public equivalent.
-
sanitizeSurfaceKey(
String surfaceKey) → String - Sanitize a surface key to use public model names.