mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 22:48:11 +02:00
Lot 18 : hub des projets tenu par la façade (LOKI_PROJECTS=rust)
La façade sert /api/projects quand LOKI_PROJECTS=rust (expérimental ; le Go reste le défaut) : liste avec discussions, pages et trackers comptés, création (slug translittéré et unique, index amorcé), renommage, description, suppression (discussions, trackers et mémoire du projet, actif réassigné, dernier projet indestructible) et bascule, refusées pendant une génération. Le projet actif passe toujours par le Go, qui en garde une copie en RAM. Les discussions sont à qui tient la conversation : la façade bascule et supprime elle-même quand elle la tient, sinon le Go garde /internal/v1/project/switch et /internal/v1/project/drop-convs (facade_projects.go). Parité : parity_projects_test.go tire du Go 40 appels sur une base amorcée (pages, discussions, trackers piégés), avec le registre, l'actif, memory/, les trackers et l'index après chacun, rejoués par tests/projects_api.rs contre un faux Go qui bascule et supprime comme le vrai ; bascule et suppression par la façade de bout en bout ; TestFacadeProjets côté Go. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
19 files changed
+5707
-4
No files matched your search
@@ -48,7 +48,7 @@ pub const MEM_INDEX_FILE: &str = "MEMORY.md";
|
||||
/// Magic des contenus chiffrés (`memPageMagic`).
|
||||
pub const PAGE_MAGIC: &[u8] = b"LOKIMEMv1";
|
||||
pub const BK_TRACKER: &str = "tracker";
|
||||
const ST_PROJECTS: &str = "projects";
|
||||
pub(crate) const ST_PROJECTS: &str = "projects";
|
||||
const ST_ACTIVE_PROJECT: &str = "active_project";
|
||||
const ST_AGENT: &str = "agent";
|
||||
const DEFAULT_PROJECT_SLUG: &str = "generale";
|
||||
@@ -400,7 +400,7 @@ pub fn parse_when(when: &str, now_ms: i64, tz: Tz) -> Result<(i64, bool), String
|
||||
))
|
||||
}
|
||||
|
||||
fn now_ms() -> i64 {
|
||||
pub(crate) fn now_ms() -> i64 {
|
||||
SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.map_or(0, |d| d.as_millis() as i64)
|
||||
|
||||
Reference in new issue
Block a user