intent-engine 0.11.0

A command-line database service for tracking strategic intent, tasks, and events
Documentation
[package]
name = "intent-engine"
version = "0.11.0"
edition = "2021"
rust-version = "1.82"
authors = ["Intent Engine Contributors"]
description = "A command-line database service for tracking strategic intent, tasks, and events"
license = "MIT OR Apache-2.0"
repository = "https://github.com/wayfind/intent-engine"
homepage = "https://github.com/wayfind/intent-engine"
documentation = "https://docs.rs/intent-engine"
readme = "README.md"
keywords = ["cli", "task-management", "intent", "database", "workflow"]
categories = ["command-line-utilities", "database"]
default-run = "ie"

# cargo-binstall configuration
# Helps cargo-binstall automatically download the right binary for your platform
[package.metadata.binstall]
pkg-fmt = "tgz"

[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-linux-x86_64.tar.gz"

[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-linux-aarch64.tar.gz"

[package.metadata.binstall.overrides.x86_64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-macos-x86_64.tar.gz"

[package.metadata.binstall.overrides.aarch64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-macos-aarch64.tar.gz"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-windows-x86_64.exe.zip"
pkg-fmt = "zip"

[dependencies]
clap = { version = "4.5", features = ["derive"] }
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "chrono"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
chrono = { version = "0.4", features = ["serde"] }
const_format = "0.2"
thiserror = "2.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "chrono"] }
tracing-appender = "0.2"
tokio = { version = "1.35", features = ["rt-multi-thread", "net", "sync", "time", "macros"] }
anyhow = "1.0"
encoding_rs = "0.8"
which = "8.0"
dialoguer = "0.11"
dirs = "6.0"
axum = { version = "0.7", features = ["ws"] }
tower = "0.5"
tower-http = { version = "0.5", features = ["fs", "cors", "trace"] }
rust-embed = "8.0"
mime_guess = "2.0"
open = "5.3"
futures-util = "0.3"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
rand = "0.9"
neo4rs = { version = "0.8", optional = true }

# Unix process management
[target.'cfg(unix)'.dependencies]
libc = "0.2"
nix = { version = "0.29", features = ["signal", "process", "fs"] }

# Windows console support
[target.'cfg(windows)'.dependencies]
windows = { version = "0.62", features = ["Win32_System_Console"] }
winapi = { version = "0.3", features = ["processthreadsapi", "handleapi", "winnt", "minwindef"] }

[dev-dependencies]
tempfile = "3.8"
assert_cmd = "2.0"
predicates = "3.0"
criterion = { version = "0.7", features = ["async_tokio"] }
rand = "0.9"
serial_test = "3.0"
filetime = "0.2"
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }
tokio-tungstenite = "0.24"  # Matches axum's version for WebSocket tests
# RUSTSEC-2026-0007: bytes >=1.11.1 (integer overflow in BytesMut::reserve)
bytes = "1.11"
# RUSTSEC-2026-0009: time >=0.3.47 (DoS via stack exhaustion)
time = "0.3.47"

[features]
# Neo4j graph database backend (ie-neo4j binary)
neo4j = ["neo4rs"]
# Integration tests against a live Neo4j instance.
# Requires NEO4J_URI, NEO4J_PASSWORD env vars.
# Run with: cargo test --features neo4j-tests -- --test-threads=1 neo4j
neo4j-tests = ["neo4j"]

[[bin]]
name = "ie"
path = "src/main.rs"

[[bin]]
name = "ie-neo4j"
path = "src/bin/ie_neo4j.rs"
required-features = ["neo4j"]

[[bench]]
name = "performance"
harness = false

# ============================================================
# Compilation Profile Optimizations for Memory Usage
# ============================================================

[profile.dev]
# Reduce debug info to save memory during compilation
debug = 1

[profile.dev.package."*"]
# Optimize dependencies even in dev mode for faster iteration
opt-level = 1

[profile.test]
# Reduce debug info in test builds
debug = 1
opt-level = 1

[profile.release]
# Enable LTO for smaller binary size
lto = "thin"
# Single codegen unit for better optimization
codegen-units = 1