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

@@ -15,18 +15,25 @@ path = "src/lib.rs"
path = "src/main.rs"
name = "jj-cz"
[features]
## Exposes MockJjExecutor and MockPrompts for use in integration tests.
## Enable with: cargo test --features test-utils
test-utils = []
[dependencies]
assert_cmd = "2.1.2"
assert_fs = "1.1.3"
async-trait = "0.1.89"
clap = { version = "4.5.57", features = ["derive"] }
git-conventional = "0.12.9"
inquire = "0.9.2"
jj-lib = { version = "0.38.0", features = ["testing"] }
jj-lib = "0.39.0"
lazy-regex = { version = "3.5.1", features = ["lite"] }
predicates = "3.1.3"
thiserror = "2.0.18"
tokio = { version = "1.49.0", features = ["macros", "rt-multi-thread"] }
[dev-dependencies]
assert_cmd = "2.1.2"
assert_fs = "1.1.3"
predicates = "3.1.3"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin_include)'] }