Skip to main content

max / makenotwork

3.1 KB · 75 lines History Blame Raw
1 [package]
2 name = "magicmirror"
3 version = "0.3.0"
4 edition = "2024"
5 license = "MIT"
6 description = "One terminal surface over every operator daemon that emits an ops-status payload. Three tabs: live statuses worst-first, logs by source, and configured store series."
7
8 [[bin]]
9 name = "magicmirror"
10 path = "src/main.rs"
11
12 [dependencies]
13 ops-status = { path = "../shared/ops-status" }
14 # crossterm comes from ratatui's own re-export (`ratatui::crossterm`, 0.29) so
15 # the two cannot drift into a version mismatch.
16 ratatui = "0.30.2"
17 # The family's design system. `makeover` loads and resolves a theme file;
18 # `makeover-tui` is the terminal renderer, and its `theme` feature is the
19 # intents-to-ratatui-colours mapping. No hex value is written in this crate.
20 makeover = "3.0"
21 makeover-tui = { version = "0.44", features = ["theme"] }
22 tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "time", "sync", "signal", "fs"] }
23 # `rustls-no-provider` rather than `rustls`: the latter is an alias for
24 # `__rustls-aws-lc-rs`, which links a C crypto backend. The provider is ring
25 # (pure Rust), installed process-wide by `crate::tls` before any client is
26 # built. Trust still comes from the OS store via reqwest's platform verifier.
27 reqwest = { version = "0.13", default-features = false, features = ["json", "rustls-no-provider"] }
28 rustls = { version = "0.23", default-features = false, features = ["std", "tls12", "logging", "ring"] }
29 # The store tab reads a producer's own SQLite database directly, which is the
30 # one place magicmirror renders something other than the `ops-status` contract.
31 # The break is deliberate and narrow (infra `7bafb5dd`): a store is read-only,
32 # read by series names the config declares, and nothing else here touches it.
33 # `bundled` matches witchbroom and wam, so the whole tree links one libsqlite3.
34 rusqlite = { version = "0.40", features = ["bundled"] }
35 serde = { version = "1.0.228", features = ["derive"] }
36 serde_json = "1"
37 toml = "1.1"
38 chrono = { version = "0.4", features = ["serde"] }
39 anyhow = "1.0.102"
40
41 [dev-dependencies]
42 tempfile = "3.20"
43
44 [lints.rust]
45 unused = "warn"
46 unreachable_pub = "warn"
47
48 [lints.clippy]
49 pedantic = { level = "warn", priority = -1 }
50 # Allow-list tuned from a measured breakdown across server/multithreaded/pter
51 # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything
52 # else in `pedantic` stays a warning. Keep this block identical across repos.
53 module_name_repetitions = "allow"
54 # Doc lints. No docs-completeness push is underway.
55 missing_errors_doc = "allow"
56 missing_panics_doc = "allow"
57 doc_markdown = "allow"
58 # Numeric casts. Endemic and mostly intentional in size and byte math.
59 cast_possible_truncation = "allow"
60 cast_sign_loss = "allow"
61 cast_precision_loss = "allow"
62 cast_possible_wrap = "allow"
63 cast_lossless = "allow"
64 # Subjective structure and style nags. High churn, low signal.
65 must_use_candidate = "allow"
66 too_many_lines = "allow"
67 struct_excessive_bools = "allow"
68 similar_names = "allow"
69 items_after_statements = "allow"
70 single_match_else = "allow"
71 # Frequent false-positives in TUI and router-heavy code.
72 match_same_arms = "allow"
73 unnecessary_wraps = "allow"
74 type_complexity = "allow"
75