Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 10 additions & 8 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,16 @@ asupersync = { git = "https://github.com/Dicklesworthstone/asupersync", rev = "e
# and in-place, page-verified sealed sections that sealed generation stores
# are built and reopened with. Its `memory_usage()` also counts the catalog,
# empty property-index shards and plan-cache tables, which the serving graph
# heap charge reads. The fork's workspace resolves sibling crates
# by path, so all five crates must name the same `rev`; mixed revisions build
# type-incompatible instances.
grafeo-adapters = { git = "https://github.com/ScriptedAlchemy/grafeo.git", rev = "be4713a5c2ee9df7e4639671c1e1244b7680f103", default-features = false, features = ["algos"] }
grafeo-common = { git = "https://github.com/ScriptedAlchemy/grafeo.git", rev = "be4713a5c2ee9df7e4639671c1e1244b7680f103", default-features = false }
grafeo-core = { git = "https://github.com/ScriptedAlchemy/grafeo.git", rev = "be4713a5c2ee9df7e4639671c1e1244b7680f103", default-features = false, features = ["lpg"] }
grafeo-engine = { git = "https://github.com/ScriptedAlchemy/grafeo.git", rev = "be4713a5c2ee9df7e4639671c1e1244b7680f103", default-features = false, features = ["lpg", "gql", "algos", "wal", "grafeo-file"] }
grafeo-storage = { git = "https://github.com/ScriptedAlchemy/grafeo.git", rev = "be4713a5c2ee9df7e4639671c1e1244b7680f103", default-features = false, features = ["wal"] }
# heap charge reads, and reports native read allocation demand before
# materializing rows. These APIs live in the fork so every build uses the
# same implementation. The fork resolves sibling crates by path: keep all
# five dependencies on main together and lock their exact commit in Cargo.lock
# to avoid type-incompatible instances from mixed sources.
grafeo-adapters = { git = "https://github.com/ScriptedAlchemy/grafeo.git", branch = "main", default-features = false, features = ["algos"] }
grafeo-common = { git = "https://github.com/ScriptedAlchemy/grafeo.git", branch = "main", default-features = false }
grafeo-core = { git = "https://github.com/ScriptedAlchemy/grafeo.git", branch = "main", default-features = false, features = ["lpg"] }
grafeo-engine = { git = "https://github.com/ScriptedAlchemy/grafeo.git", branch = "main", default-features = false, features = ["lpg", "gql", "algos", "wal", "grafeo-file"] }
grafeo-storage = { git = "https://github.com/ScriptedAlchemy/grafeo.git", branch = "main", default-features = false, features = ["wal"] }
# Pinned once: the MCP git handlers and the root's edit/lifecycle readers must
# resolve the same object database and status implementation, so a feature
# added for one is never missing for the other.
Expand Down
7 changes: 0 additions & 7 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,6 @@ crate.annotation(
version = "0.46.0",
)

crate.annotation(
crate = "grafeo-core",
patch_args = ["-p1"],
patches = ["//scripts:bazel/patches/grafeo-core-read-allocation.patch"],
version = "0.5.43",
)

# arborium grammar build scripts read `env!("CARGO_MANIFEST_DIR")`, which bakes
# the compiling output base's absolute path into the build-script binary. The
# action key does not include that path, so the disk cache served one output
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ use tracedecay_tool_catalog::{CapabilityId, UseCaseId};

use crate::code_index_scheduler::{CodeIndexSchedulerRegistryV1, LatestCompleteCodeIndexV1};
use crate::project_reads::project_code_index_ignored_dependency_admission_port;
use tracedecay_runtime_core::path_safety::canonical_existing_identity;

const PROJECT_ID: &str = "project.project-open-ignored-dependency";

Expand Down Expand Up @@ -70,7 +69,6 @@ export function generationAnchor() { return 1; }
.mount_worktree(project_id(), root.path(), store.path().to_path_buf())
.await
.expect("mount code-index scheduler");
wait_for_initial_generation(&registry, root.path()).await;
let baseline = latest(&registry, root.path()).await;
let generation = baseline.generation();
let snapshot = generation.snapshot();
Expand Down Expand Up @@ -242,31 +240,11 @@ fn request_context(scope: ResolvedScope, suffix: &str) -> RequestContext {
.expect("request context")
}

async fn wait_for_initial_generation(registry: &CodeIndexSchedulerRegistryV1, project_root: &Path) {
if registry.latest_generation_id(project_root).await.is_some() {
return;
}
let canonical_root = canonical_existing_identity(project_root).expect("canonical fixture root");
let mut publications = registry.subscribe_generation_publications();
tokio::time::timeout(Duration::from_secs(5), async {
loop {
let event = publications.recv().await.expect("generation publication");
if event.project_root == canonical_root {
break;
}
}
})
.await
.expect("initial generation publication");
}

/// Wait for the complete serving generation, not merely its publication.
///
/// The generation-publication broadcast and `latest_generation_id` both fire
/// on the reconcile pass, ahead of the bind and the serving swap that fill
/// `serving_generation`. Reading the complete arm the instant
/// `wait_for_initial_generation` returns therefore raced the seat and reported
/// a missing generation for a store that had one.
/// Publication and `latest_generation_id` precede the serving swap. Wait
/// for the actual fresh serving state before using imports as admission
/// evidence; no earlier broadcast establishes readiness.
async fn latest(
registry: &CodeIndexSchedulerRegistryV1,
project_root: &Path,
Expand Down
Loading
Loading