gitai-wf 0.1.1

AI-powered toolkit that enhances `Git` workflow
Documentation
[package]
name = "gitai-wf"
description = "AI-powered toolkit that enhances `Git` workflow"
version = "0.1.1"
edition = "2024"
license = "MIT"

[lib]
name = "gitai"
path = "src/lib.rs"

[[bin]]
name = "git-message"
path = "src/bin/message.rs"

[[bin]]
name = "git-review"
path = "src/bin/review.rs"

[[bin]]
name = "git-pr"
path = "src/bin/pr.rs"

[[bin]]
name = "git-changelog"
path = "src/bin/changelog.rs"

[[bin]]
name = "git-release-notes"
path = "src/bin/release_notes.rs"

[[bin]]
name = "git-wire"
path = "src/bin/wire.rs"

[features]
integration = []

[dependencies]
anyhow = "1.0.86"
async-trait = "0.1.88"
chrono = "0.4.38"
clap = { version = "4.5.47", features = ["derive", "cargo"] }
colored = "3.0.0"
console = "0.15.8"
crossterm = "0.28.1"
dirs = "6.0.0"
futures = "0.3.30"
git2 = { version = "0.20.1", features = ["vendored-openssl"] }
indicatif = "0.17.8"
lazy_static = "1.5.0"
llm = "1.3.4"
log = "0.4.27"
once_cell = "1.21.3"
parking_lot = "0.12.1"
rand = "0.9.0"
ratatui = "0.29.0"
regex = "1.10.6"
reqwest = { version = "0.12.15", features = ["json", "native-tls-vendored"] }
rmcp = { version = "0.8.1", features = ["server", "transport-sse-server"] }
schemars = "0.8.21"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.127"
strum = "0.27.1"
strum_macros = "0.27.1"
tempfile = "3.19.1"
textwrap = "0.16.1"
tiktoken-rs = "0.6.0"
tokio = { version = "1.44.2", features = ["full"] }
tokio-retry = "0.3.0"
toml = "0.8.19"
tui-textarea = "0.7.0"
unicode-width = "0.2.0"
url = "2.5.0"
cause = "0.1.2"
temp-dir = "0.1.16"
fs_extra = "1.3.0"
folder_compare = "0.4.0"
crossbeam = "0.8"
uuid = { version = "1.0", features = ["v4", "serde"] }
env_logger = "0.10"

[dev-dependencies]
dotenv = "0.15.0"

[lints.rust]
unsafe_code = "forbid"
missing_docs = { level = "allow", priority = 1 }

[lints.clippy]
# Base lint groups
all = { level = "deny", priority = 0 }
style = { level = "warn", priority = 1 }
perf = { level = "deny", priority = 1 }

# Pedantic lints
pedantic = { level = "deny", priority = 10 }

# Documentation allowances
missing_errors_doc = { level = "allow", priority = 20 }
missing_panics_doc = { level = "allow", priority = 20 }
missing_safety_doc = { level = "allow", priority = 20 }

# Code style allowances - These remain allowed for pragmatic reasons
module_name_repetitions = { level = "allow", priority = 21 }
significant_drop_tightening = { level = "allow", priority = 21 }
must_use_candidate = { level = "allow", priority = 21 }

# Numeric casting and conversion warnings
cast_precision_loss = { level = "warn", priority = 22 }
cast_possible_truncation = { level = "warn", priority = 22 }
cast_sign_loss = { level = "warn", priority = 22 }
as_conversions = { level = "warn", priority = 22 }

# Safety-critical denials
out_of_bounds_indexing = { level = "deny", priority = 30 }
enum_glob_use = { level = "deny", priority = 30 }
unwrap_used = { level = "deny", priority = 30 }
undocumented_unsafe_blocks = { level = "deny", priority = 30 }

# Development/debugging lints
dbg_macro = { level = "warn", priority = 31 }
todo = { level = "warn", priority = 31 }

# Async-specific lints (important for tokio-heavy codebase)
future_not_send = { level = "warn", priority = 32 }
async_yields_async = { level = "warn", priority = 32 }

# String and collection efficiency
implicit_clone = { level = "warn", priority = 33 }
inefficient_to_string = { level = "warn", priority = 33 }
string_lit_as_bytes = { level = "warn", priority = 33 }

# Code complexity (helpful for maintainability)
too_many_lines = { level = "warn", priority = 34 }
cognitive_complexity = { level = "warn", priority = 34 }

# Error handling improvements
result_large_err = { level = "warn", priority = 35 }

# Future considerations
# expect_used = { level = "deny", priority = 30 }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
panic = "abort"
strip = true

[profile.dev]
opt-level = 0
debug = true
debug-assertions = true
overflow-checks = true
lto = false
incremental = true
codegen-units = 256