alix 0.8.0

A learning tool built for understanding, not just remembering.
Documentation
// Enables `#[coverage(off)]` under nightly coverage builds, used on a
// handful of functions a deterministic test can't meaningfully drive.
#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
// Raised for the contract suite's widest `json!` snapshot (a `DeckListDto`
// nesting many-keyed `DeckItemDto` rows), which exceeds the default limit.
#![recursion_limit = "256"]

pub const VERSION: &str = env!("CARGO_PKG_VERSION");

pub mod answer;
#[cfg(feature = "full")]
pub mod ask;
pub mod assemble;
pub mod assets;
pub mod augment;
#[cfg(feature = "full")]
pub mod augment_ai;
#[cfg(feature = "full")]
pub mod backend;
#[cfg(feature = "full")]
pub mod bug_report;
#[cfg(feature = "full")]
pub mod cache;
#[cfg(feature = "full")]
pub mod calibrate;
pub mod card;
pub mod choice;
pub mod config;
pub mod deck;
#[cfg(feature = "full")]
pub mod deck_transfer;
pub mod dedup;
pub mod depth;
// The fence grammar, fingerprint, and geometry types are lean (the mobile
// core reads frozen diagrams); only the renderer half is full-gated inside.
pub mod diagram;
#[cfg(feature = "full")]
pub mod doctor;
mod entities;
#[cfg(feature = "full")]
pub mod exam;
#[cfg(feature = "full")]
pub mod explore;
mod fsio;
#[cfg(feature = "full")]
pub mod generate;
#[cfg(feature = "full")]
pub mod icon;
#[cfg(feature = "full")]
pub mod import;
pub mod inline;
pub mod invisible;
pub mod library;
pub mod listing;
pub mod log;
pub mod math;
pub mod parser;
pub mod personal;
pub mod sidecar;
pub use sidecar::{
    DeckCard, FileEntry, Finding, Orphan, Role, SessionCard, SidecarBlock, classify, merge,
};
#[cfg(feature = "full")]
pub mod picker;
#[cfg(feature = "full")]
pub mod qr;
#[cfg(feature = "full")]
pub mod recent;
pub mod render;
pub mod review;
pub mod scheduler;
#[cfg(feature = "full")]
pub mod serve;
pub mod session;
#[cfg(feature = "full")]
pub mod share;
pub mod source;
pub mod stamp;
pub mod state;
pub mod store;
pub mod time;
pub mod title;
pub mod token;
pub mod trace;
#[cfg(feature = "full")]
pub mod trace_ai;
pub mod tutorial;
pub mod workspace;
#[cfg(feature = "full")]
pub mod workspace_update;

// The fake CLIs are /bin/sh scripts written by the `full`-gated AI modules,
// so the module is unix-only; Windows CI runs the persistence suites without
// it. Its exec lock is taken by every forking test, not only those modules'.
#[cfg(all(test, feature = "full", unix))]
mod testutil;