pub enum NoteStatus {
Draft,
Staging,
PendingReview,
Live,
Deprecated,
Garbage,
}Expand description
Statut du cycle de vie d’une note.
Décision Q6 brainstorming the maintainer 2026-05-03 : β workflow-aware (Live+PendingReview+Staging
embeddables par défaut) + α configurable runtime via [embed] embeddable_status TOML.
Variants§
Draft
Brouillon local, pas encore soumis au pipeline curator.
Staging
Soumis, en attente de review humain (workflow optionnel).
PendingReview
En attente de jugement curator (heuristique ou LLM).
State par défaut attribué par gradatum-chat::Heuristic (invariant #3, B4).
Live
Admis, indexé, searchable, embeddable.
Deprecated
Remplacé par un autre NoteId. Successeur référencé dans extra.
Garbage
Rejeté → nettoyage async par le worker.
Implementations§
Source§impl NoteStatus
impl NoteStatus
Sourcepub fn can_transition_to(&self, target: NoteStatus) -> bool
pub fn can_transition_to(&self, target: NoteStatus) -> bool
Vérifie si la transition vers target est valide selon la state machine.
Utilisé par gradatum-vault::update_status pour enforcer les invariants de lifecycle.
Sourcepub fn is_visible_default(&self) -> bool
pub fn is_visible_default(&self) -> bool
Est-ce que ce statut est visible dans l’API de lecture par défaut ?
Sourcepub fn is_embeddable_default(&self) -> bool
pub fn is_embeddable_default(&self) -> bool
Est-ce que ce statut doit être embeddé par défaut ?
Workflow-aware β (décision Q6 2026-05-03) :
[Live, PendingReview, Staging] — l’embedding est précomputé pour les statuts
“review-or-better” afin que :
- Le curator puisse comparer sémantiquement une candidate à des notes équivalentes en attente d’admission.
- Le coût d’embed ne soit pas re-payé au passage
PendingReview → Live.
Exclus par défaut : Draft (pas d’engagement), Deprecated/Garbage (sortants).
Sourcepub fn is_embeddable(&self, cfg: &EmbedConfig) -> bool
pub fn is_embeddable(&self, cfg: &EmbedConfig) -> bool
Résout l’embeddabilité en tenant compte de la config runtime.
Utilisé par gradatum-worker dans le pipeline d’embedding.
Si embed.embeddable_status est None → délègue à is_embeddable_default().
§Note d’implémentation
EmbedConfig.embeddable_status est Option<Vec<String>> (kebab-case string) —
maintenu délibérément en String pour que config.rs reste libre de tout type
métier (zéro cycle de dépendances). La comparaison s’effectue via serde_kebab_repr().
Trait Implementations§
Source§impl Clone for NoteStatus
impl Clone for NoteStatus
Source§fn clone(&self) -> NoteStatus
fn clone(&self) -> NoteStatus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for NoteStatus
Source§impl Debug for NoteStatus
impl Debug for NoteStatus
Source§impl<'de> Deserialize<'de> for NoteStatus
impl<'de> Deserialize<'de> for NoteStatus
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for NoteStatus
impl Display for NoteStatus
impl Eq for NoteStatus
Source§impl Hash for NoteStatus
impl Hash for NoteStatus
Source§impl PartialEq for NoteStatus
impl PartialEq for NoteStatus
Source§fn eq(&self, other: &NoteStatus) -> bool
fn eq(&self, other: &NoteStatus) -> bool
self and other values to be equal, and is used by ==.