Skip to main content

tix/
lib.rs

1//! `tix` — a terminal issue tracker.
2//!
3//! Issues live as human- and agent-readable markdown files with YAML
4//! frontmatter in a version-controlled directory (`docs/issues/` by
5//! default), and are manipulated both by a full clap CLI and a ratatui
6//! kanban board. `tix export`/`tix import` shell out to `glab`/`linear-cli`
7//! for external sync (`contracts/external-tools.md`).
8//!
9//! WP01 shipped the immutable foundation: the [error] type, the [slug]
10//! filename stem builder, the [model] (issue, status, priority, config
11//! entities) and the [config] reader/writer. WP02 added the [storage]
12//! façade over `issues_dir` and the [editor] bridge. WP03 adds the full
13//! clap [cli] command tree, the per-command [commands] handlers, and the
14//! minimal TUI [app] shell. WP05 fills in the external [sync] module
15//! (token resolution, `glab`/`linear-cli` adapters, export/import
16//! orchestration). Consumers freeze on the public API shipped here.
17
18#![warn(clippy::pedantic)]
19#![allow(
20    clippy::assigning_clones,
21    clippy::bool_to_int_with_if,
22    clippy::cast_possible_truncation,
23    clippy::cast_possible_wrap,
24    clippy::cast_lossless,
25    clippy::cast_sign_loss,
26    clippy::case_sensitive_file_extension_comparisons,
27    clippy::double_must_use,
28    clippy::doc_link_with_quotes,
29    clippy::doc_markdown,
30    clippy::explicit_iter_loop,
31    clippy::format_push_string,
32    clippy::manual_let_else,
33    clippy::items_after_statements,
34    clippy::manual_string_new,
35    clippy::map_unwrap_or,
36    clippy::match_bool,
37    clippy::match_same_arms,
38    clippy::missing_errors_doc,
39    clippy::missing_panics_doc,
40    clippy::needless_pass_by_value,
41    clippy::ref_option,
42    clippy::redundant_closure_for_method_calls,
43    clippy::return_self_not_must_use,
44    clippy::single_match_else,
45    clippy::semicolon_if_nothing_returned,
46    clippy::similar_names,
47    clippy::single_char_pattern,
48    clippy::too_many_lines,
49    clippy::unnested_or_patterns,
50    clippy::unnecessary_debug_formatting,
51    clippy::unnecessary_wraps,
52    clippy::uninlined_format_args,
53    clippy::unnecessary_join,
54    clippy::used_underscore_binding,
55    clippy::must_use_candidate
56)]
57
58pub mod app;
59pub mod assignee;
60pub mod cli;
61pub mod commands;
62pub mod config;
63pub mod editor;
64pub mod error;
65pub mod mcp;
66pub mod model;
67pub mod search;
68pub mod slug;
69pub mod storage;
70pub mod ui;
71pub mod watcher;
72
73pub mod kitty;
74pub mod sync;