Skip to content

Commit bfe5f28

Browse files
committed
feat(federation): activate verified corpus graphs
1 parent 508b664 commit bfe5f28

44 files changed

Lines changed: 9159 additions & 504 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

rust/Cargo.lock

Lines changed: 74 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/decided-mcp/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@ publish = ["crates-io"]
1616
rac-engine = { package = "asdecided-core", version = "=0.28.0", path = "../rac-engine" }
1717
serde = { version = "1", features = ["derive"] }
1818
serde_json = { version = "1", features = ["preserve_order"] }
19+
20+
[dev-dependencies]
21+
sha2 = "0.10"

rust/decided-mcp/src/graph.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,14 @@ impl GraphView {
146146
)
147147
}
148148

149+
pub fn from_graph(corpus: &rac_engine::graph_composition::GraphComposition) -> Self {
150+
Self::new_with_history(
151+
corpus.identity_index(),
152+
corpus.relationships(),
153+
Some(corpus.catalog_relationships_compatible()),
154+
)
155+
}
156+
149157
pub fn new(entries: Vec<IndexEntry>, relationships: Vec<Relationship>) -> Self {
150158
Self::new_with_history(entries, relationships, None)
151159
}
@@ -703,6 +711,34 @@ impl GraphCache {
703711
self.view.as_ref().expect("federated graph view built")
704712
}
705713

714+
pub fn view_for_graph(
715+
&mut self,
716+
generation: &str,
717+
corpus: &rac_engine::graph_composition::GraphComposition,
718+
) -> &GraphView {
719+
if self.federated_generation.as_deref() != Some(generation)
720+
|| self.generation.is_some()
721+
|| self.view.is_none()
722+
{
723+
let started = rac_engine::timing::start();
724+
let replacement = GraphView::from_graph(corpus);
725+
rac_engine::timing::emit_since(
726+
"graph.view_build",
727+
started,
728+
&[
729+
("entries", replacement.entry_count() as u64),
730+
("relationships", replacement.relationship_count() as u64),
731+
("payload_bytes", replacement.estimated_payload_bytes() as u64),
732+
],
733+
);
734+
self.view = Some(replacement);
735+
self.generation = None;
736+
self.federated_generation = Some(generation.to_string());
737+
self.builds += 1;
738+
}
739+
self.view.as_ref().expect("graph federation view built")
740+
}
741+
706742
#[cfg(test)]
707743
pub fn builds(&self) -> u64 {
708744
self.builds

0 commit comments

Comments
 (0)