mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 06:58:14 +02:00
Lot 6 : bail du moteur côté Rust (chat::lease)
EngineLease prend le verrou de génération du Go, le renouvelle au tiers de sa durée en tâche de fond et signale au tour un stop passé par le Go ou la perte du bail (Reset, bascule, expiration). Rendu par release, ou en tâche de fond s'il est lâché. engine_stop arrête un détenteur Go (tâche, bench, optimiseur). Store::internal_post garde le statut HTTP pour distinguer les refus. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
5 files changed
+377
-1
No files matched your search
@@ -86,6 +86,24 @@ impl Store {
|
||||
serde_json::from_slice(&bytes).map_err(|e| e.to_string())
|
||||
}
|
||||
|
||||
/// POST JSON à l'API interne, statut compris (refus métier à distinguer :
|
||||
/// 409, 410…). Corps vide ou illisible → `Value::Null`.
|
||||
pub async fn internal_post(
|
||||
&self,
|
||||
path: &str,
|
||||
body: &serde_json::Value,
|
||||
) -> Result<(StatusCode, serde_json::Value), String> {
|
||||
let (status, bytes) = self
|
||||
.call(
|
||||
Method::POST,
|
||||
path,
|
||||
serde_json::to_vec(body).unwrap_or_default(),
|
||||
)
|
||||
.await?;
|
||||
let v = serde_json::from_slice(&bytes).unwrap_or(serde_json::Value::Null);
|
||||
Ok((status, v))
|
||||
}
|
||||
|
||||
/// Scelle un blob avec la clé de la mémoire (gardée par le Go). Clair
|
||||
/// rendu tel quel si le chiffrement est coupé.
|
||||
pub async fn seal(&self, plain: Vec<u8>) -> Result<Vec<u8>, CryptError> {
|
||||
|
||||
Reference in new issue
Block a user