[workspace]
resolver = "2"
members = [
    "crates/kanban-core",
    "crates/kanban-domain",
    "crates/kanban-persistence",
    "crates/kanban-persistence-json",
    "crates/kanban-persistence-sqlite",
    "crates/kanban-service",
    "crates/kanban-tui",
    "crates/kanban-cli",
    "crates/kanban-mcp",
]

[workspace.package]
version = "0.6.0"
edition = "2021"
rust-version = "1.74"
authors = ["Max Emil Yoon Blomstervall"]
license = "Apache-2.0"
repository = "https://github.com/fulsomenko/kanban"
homepage = "https://github.com/fulsomenko/kanban"
description = "A terminal-based project management solution"

[workspace.dependencies]
# Core async runtime
tokio = { version = "1.42", features = ["full"] }
async-trait = "0.1"
futures = "0.3"
futures-util = "0.3"

# Error handling
anyhow = "1.0"
thiserror = "2.0"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# UUID and time
uuid = { version = "1.11", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }

# TUI framework
ratatui = "0.29"
crossterm = "0.28"

# CLI framework
clap = { version = "4.5", features = ["derive", "env", "string"] }
clap_complete = "4.5"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Testing
mockall = "0.13"
assert_cmd = "2.0"
predicates = "3.0"

# File watching and atomic operations
notify = "6.1"
tempfile = "3.8"

# Windows path normalisation (strip `\\?\` UNC prefix)
dunce = "1.0"

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

