vibe_ticket/
lib.rs

1//! vibe-ticket - A high-performance ticket management system for developers
2//!
3//! This crate provides a comprehensive ticket management solution with features including:
4//! - Git worktree integration for parallel development
5//! - Concurrent access protection with automatic file locking
6//! - Spec-driven development with three-phase workflow
7//! - Task management within tickets
8//! - Multiple export/import formats
9
10// Allow missing error documentation for internal implementations
11#![allow(clippy::missing_errors_doc)]
12// Allow some pedantic lints that don't improve code quality
13#![allow(clippy::option_if_let_else)]
14#![allow(clippy::needless_pass_by_value)]
15#![allow(clippy::unused_self)]
16#![allow(clippy::match_same_arms)]
17#![allow(clippy::unnecessary_wraps)]
18#![allow(clippy::redundant_closure_for_method_calls)]
19#![allow(clippy::redundant_clone)]
20#![allow(clippy::items_after_statements)]
21#![allow(clippy::single_match_else)]
22#![allow(clippy::wildcard_imports)]
23#![allow(clippy::too_many_lines)]
24#![allow(clippy::fn_params_excessive_bools)]
25#![allow(clippy::indexing_slicing)]
26#![allow(clippy::branches_sharing_code)]
27#![allow(clippy::map_unwrap_or)]
28
29//! # Concurrent Safety
30//!
31//! All operations in vibe-ticket are safe for concurrent access. The storage layer
32//! automatically handles file locking to prevent data corruption when multiple
33//! processes or users access tickets simultaneously. Lock files are created
34//! transparently and cleaned up automatically, with built-in retry logic for
35//! smooth operation under contention.
36//!
37//! # Example
38//!
39//! ```rust,ignore
40//! use vibe_ticket::storage::{FileStorage, TicketRepository};
41//! use vibe_ticket::core::Ticket;
42//!
43//! // Initialize storage
44//! let storage = FileStorage::new(".vibe-ticket");
45//!
46//! // Create a ticket (automatically locked during write)
47//! let ticket = Ticket::new("fix-bug".to_string(), "Fix login bug".to_string());
48//! storage.save(&ticket)?;
49//!
50//! // Multiple processes can safely access tickets
51//! let loaded = storage.load(&ticket.id)?;
52//! ```
53
54pub mod cache;
55pub mod cli;
56pub mod config;
57pub mod core;
58pub mod error;
59pub mod events;
60pub mod integration;
61pub mod interactive;
62pub mod plugins;
63pub mod specs;
64pub mod storage;
65pub mod templates;
66
67#[cfg(feature = "api")]
68pub mod api;
69
70#[cfg(feature = "mcp")]
71pub mod mcp;
72
73#[cfg(test)]
74pub mod test_utils;
75
76// Re-export commonly used types
77pub use error::{Result, VibeTicketError};