pub enum CommitEvent {
Show 27 variants
GenerationStarted,
DiffPrepared {
empty: bool,
content_id_sha256: String,
},
DiffFailed {
error: String,
},
DiffInvalidated {
reason: String,
},
PromptPrepared {
attempt: u32,
},
AgentInvoked {
attempt: u32,
},
CommitXmlExtracted {
attempt: u32,
},
CommitXmlMissing {
attempt: u32,
},
CommitXmlValidated {
message: String,
attempt: u32,
files: Vec<String>,
excluded_files: Vec<ExcludedFile>,
},
CommitXmlValidationFailed {
reason: String,
attempt: u32,
},
CommitXmlArchived {
attempt: u32,
},
CommitXmlCleaned {
attempt: u32,
},
MessageGenerated {
message: String,
attempt: u32,
},
MessageValidationFailed {
reason: String,
attempt: u32,
},
Created {
hash: String,
message: String,
},
GitAuthConfigured,
PushExecuted {
remote: String,
branch: String,
commit_sha: String,
result: ProcessExecutionResult,
},
PushCompleted {
remote: String,
branch: String,
commit_sha: String,
},
PushFailed {
remote: String,
branch: String,
error: String,
},
PullRequestCreated {
url: String,
number: u32,
},
PullRequestFailed {
error: String,
},
GenerationFailed {
reason: String,
},
Skipped {
reason: String,
},
PreTerminationSafetyCheckPassed,
PreTerminationUncommittedChangesDetected {
file_count: usize,
},
ResidualFilesFound {
files: Vec<String>,
pass: u8,
},
ResidualFilesNone,
}Expand description
Commit generation events.
Events related to commit message generation, validation, and creation. Commit generation occurs after development iterations and review fixes.
§State Machine
NotStarted -> Generating -> Generated -> Committed
| |
+--> (retry) --+
|
+--> Skipped§Emitted By
- Commit generation handlers in
handler/commit/ - Commit message validation handlers
- Git commit handlers
Variants§
GenerationStarted
Commit message generation started.
DiffPrepared
Commit diff computed for commit generation.
Emitted after preparing the diff that will be committed. The reducer
uses the empty flag to decide whether to skip commit creation.
Fields
DiffFailed
Commit diff computation failed.
DiffInvalidated
Commit diff is no longer available and must be recomputed.
This is used for recoverability when .agent/tmp artifacts are cleaned between
checkpoints or when required diff files go missing during resume.
PromptPrepared
Commit prompt prepared for a commit attempt.
AgentInvoked
Commit agent invoked for a commit attempt.
CommitXmlExtracted
Commit message XML extracted for a commit attempt.
CommitXmlMissing
Commit message XML missing for a commit attempt.
CommitXmlValidated
Commit message XML validated successfully.
Fields
files: Vec<String>Optional list of files to selectively commit.
Empty means commit all changed files. Defaults to empty for backward compatibility with old checkpoints.
excluded_files: Vec<ExcludedFile>Files excluded from this commit with documented reasons.
Audit/observability metadata only — does not affect commit execution. Defaults to empty for backward compatibility with old checkpoints.
CommitXmlValidationFailed
Commit message XML validation failed.
CommitXmlArchived
Commit message XML archived.
CommitXmlCleaned
Commit message XML cleaned before invoking the commit agent.
MessageGenerated
Commit message was generated.
MessageValidationFailed
Commit message validation failed.
Fields
Created
Commit was created successfully.
GitAuthConfigured
Git authentication configured successfully for remote operations.
PushExecuted
Push to remote executed (boundary emits raw process output).
Domain-shaped execution outcome carrying the raw git push result. The reducer/orchestrator interprets this outcome and emits policy-level success/failure events (PushCompleted/PushFailed).
Fields
result: ProcessExecutionResultRaw process execution result from git push. Contains exit code, stdout, and stderr for policy interpretation.
PushCompleted
Push to remote completed successfully.
PushFailed
Push to remote failed.
PullRequestCreated
Pull request created successfully.
PullRequestFailed
Pull request creation failed.
GenerationFailed
Commit generation failed completely.
Skipped
Commit was skipped (e.g., no changes to commit).
PreTerminationSafetyCheckPassed
Pre-termination commit safety check completed successfully.
Emitted after Effect::CheckUncommittedChangesBeforeTermination when the
working directory is clean, allowing termination to proceed.
PreTerminationUncommittedChangesDetected
Pre-termination commit safety check detected uncommitted changes.
This is not a terminal error: the reducer must route back through the commit phase so the changes are committed (or explicitly skipped).
ResidualFilesFound
Residual uncommitted files detected after a selective commit pass.
When pass is below the configured retry limit, triggers the next automatic
commit retry pass. When pass reaches the final retry pass, the files are
carried forward to the next cycle.
Fields
ResidualFilesNone
No residual uncommitted files detected after a commit pass.
Pipeline may proceed normally; working tree is clean.
Trait Implementations§
Source§impl Clone for CommitEvent
impl Clone for CommitEvent
Source§fn clone(&self) -> CommitEvent
fn clone(&self) -> CommitEvent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CommitEvent
impl Debug for CommitEvent
Source§impl<'de> Deserialize<'de> for CommitEvent
impl<'de> Deserialize<'de> for CommitEvent
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CommitEvent
impl RefUnwindSafe for CommitEvent
impl Send for CommitEvent
impl Sync for CommitEvent
impl Unpin for CommitEvent
impl UnsafeUnpin for CommitEvent
impl UnwindSafe for CommitEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more