forked from yvv/decision
Les deux côtés gardés partout. Aux coutures : - une objection (redit / contredit) porte sur deux articles, jamais sur un module ; un ordre ne se corrige pas, ni par son auteur ni par un autre ; une coquille du titre suit le chemin de F (l'auteur du titre, un administrateur pour le titre de départ, ou 3 jours), et documents.title suit à l'application ; - votable() couvre les modules ; leurs totaux passent par shown_tally, à l'écran et dans document.json ; - « Modules à voter » ne compte plus une version retenue par une objection (test vu rouge) ; la liste du groupe la compte toujours parmi les propositions en cours ; - le panier : une fonction pour les articles et les modules, avec les versions retenues de F ; un nouvel article se propose dans une section, à sa fin, et peut répondre à une objection ; - migrations 0007 (modules) puis 0008 (objections) ; - C25 et C26 supportent un groupe d'essai où une voix suffit (dès 16 membres). Boucle : fmt, clippy -D warnings, cargo test (227), svelte-check 0, vitest 55, build, e2e 35 / 35 (C1–C33 et M1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
24 lines
747 B
Rust
24 lines
747 B
Rust
//! Pure engines of libreDecision — no IO, no clock, no randomness.
|
|
//!
|
|
//! Everything that decides an outcome lives here so it can be tested in
|
|
//! isolation and ported verbatim: the inertial threshold (parity with the
|
|
//! Python/TypeScript reference of the v2 maquette), the edit classifier that
|
|
//! separates a typo fix from a change of meaning, the rule-based editing
|
|
//! assistant, and the composition of a document under permanent vote.
|
|
|
|
pub mod address;
|
|
pub mod assist;
|
|
pub mod ballot;
|
|
pub mod compose;
|
|
pub mod correction;
|
|
pub mod edit;
|
|
pub mod inertia;
|
|
pub mod names;
|
|
pub mod objection;
|
|
pub mod order;
|
|
pub mod pending;
|
|
pub mod threshold;
|
|
|
|
pub use inertia::{InertiaLevel, Participation, Scale};
|
|
pub use threshold::{FormulaParams, Tally};
|