feat: add interactive conventional commit workflow with jj-lib backend

Replace CLI executor with jj-lib integration, implement full interactive
commit workflow via prompts, and add mock infrastructure for testing.
Add CLI integration tests and error handling tests.
This commit is contained in:
2026-03-07 00:53:13 +01:00
parent 1b66d7f86c
commit a45f0424f4
23 changed files with 2392 additions and 1016 deletions

View File

@@ -3,3 +3,22 @@ mod commit;
mod error;
mod jj;
mod prompts;
pub use crate::{
commit::types::{
CommitMessageError, CommitType, ConventionalCommit, Description, DescriptionError, Scope,
ScopeError,
},
error::Error,
jj::{JjExecutor, lib_executor::JjLib},
prompts::{CommitWorkflow, Prompter},
};
/// Test utilities: mock implementations for `JjExecutor` and `MockPrompts`.
///
/// Enable with `--features test-utils` (e.g. `cargo test --features test-utils`).
#[cfg(feature = "test-utils")]
pub use crate::{
jj::mock::MockJjExecutor,
prompts::mock::MockPrompts,
};