cyb/optica/src/graph/mod.rs

// ---
// tags: optica, rust
// crystal-type: source
// crystal-domain: comp
// ---
pub mod links;
mod namespaces;
pub mod pagerank;
pub mod stats;
mod tags;
pub mod trikernel;

use crate::config::ContentSection;
use crate::parser::{slugify_page_name, PageId, ParsedPage};
use anyhow::Result;
use serde::Serialize;
use std::collections::{HashMap, HashSet};

/// The complete knowledge graph.
#[derive(Debug, Clone)]
pub struct PageStore {
    pub pages: HashMap<PageId, ParsedPage>,
    pub forward_links: HashMap<PageId, Vec<PageId>>,
    pub backlinks: HashMap<PageId, Vec<PageId>>,
    pub tag_index: HashMap<String, Vec<PageId>>,
    pub namespace_tree: HashMap<String, Vec<PageId>>,
    /// Alias โ†’ canonical PageId
    pub alias_map: HashMap<String, PageId>,
    /// Pages created as stubs (referenced but have no source file)
    pub stub_pages: HashSet<PageId>,
    /// Subgraph name โ†’ set of PageIds belonging to that subgraph
    pub subgraph_pages: HashMap<String, HashSet<PageId>>,
    /// Names of subgraphs declared with visibility: private
    pub subgraph_private: HashSet<String>,
    /// PageRank scores for each page
    pub pagerank: HashMap<PageId, f64>,
    /// Tri-kernel focus distribution ฯ€ (diffusion + springs + heat)
    pub focus: HashMap<PageId, f64>,
    /// Gravity: G_i = ฯ€_i ร— ฮฃ(ฯ€_j / dยฒ), 2-hop approximation
    pub gravity: HashMap<PageId, f64>,
}

#[derive(Debug, Clone, Serialize)]
pub struct BacklinkEntry {
    pub title: String,
    pub url: String,
    pub page_id: PageId,
}

impl PageStore {
    pub fn resolve_page_id(&self, name: &str) -> Option<&PageId> {
        let slug = slugify_page_name(name);
        if self.pages.contains_key(&slug) {
            return Some(self.pages.get_key_value(&slug).unwrap().0);
        }
        // Check aliases
        self.alias_map.get(&slug)
    }

    pub fn get_backlinks(&self, page_id: &str) -> Vec<BacklinkEntry> {
        self.backlinks
            .get(page_id)
            .map(|ids| {
                ids.iter()
                    .filter_map(|id| {
                        self.pages.get(id).map(|page| BacklinkEntry {
                            title: page.meta.title.clone(),
                            url: format!("/{}", id),
                            page_id: id.clone(),
                        })
                    })
                    .collect()
            })
            .unwrap_or_default()
    }

    pub fn get_namespace_children(&self, namespace: &str) -> Vec<&ParsedPage> {
        self.namespace_tree
            .get(namespace)
            .map(|ids| ids.iter().filter_map(|id| self.pages.get(id)).collect())
            .unwrap_or_default()
    }

    /// Check if a page should be published given content settings.
    pub fn is_page_public(page: &ParsedPage, content: &ContentSection) -> bool {
        if !content.public_only {
            return true;
        }
        match page.meta.public {
            Some(true) => true,
            Some(false) => false,
            None => content.default_public,
        }
    }

    /// Get all pages that pass the public/private filter.
    pub fn public_pages(&self, content: &ContentSection) -> Vec<&ParsedPage> {
        self.pages
            .values()
            .filter(|p| Self::is_page_public(p, content))
            .collect()
    }

    pub fn all_tags(&self, content: &ContentSection) -> Vec<(String, usize)> {
        let mut tag_counts: HashMap<String, usize> = HashMap::new();
        for page in self.pages.values() {
            if !Self::is_page_public(page, content) {
                continue;
            }
            for tag in &page.meta.tags {
                *tag_counts.entry(tag.to_lowercase()).or_default() += 1;
            }
        }
        let mut tags: Vec<_> = tag_counts.into_iter().collect();
        tags.sort_by(|a, b| b.1.cmp(&a.1));
        tags
    }

    /// Get filtered tag โ†’ page_ids mapping (only public pages).
    pub fn public_tag_index(&self, content: &ContentSection) -> HashMap<String, Vec<PageId>> {
        let mut index: HashMap<String, Vec<PageId>> = HashMap::new();
        for (id, page) in &self.pages {
            if !Self::is_page_public(page, content) {
                continue;
            }
            for tag in &page.meta.tags {
                index
                    .entry(tag.to_lowercase())
                    .or_default()
                    .push(id.clone());
            }
        }
        index
    }

    pub fn recent_pages(&self, count: usize, content: &ContentSection) -> Vec<&ParsedPage> {
        let mut pages: Vec<_> = self
            .pages
            .values()
            .filter(|p| Self::is_page_public(p, content))
            .collect();
        // Sort by date if available, otherwise by title
        pages.sort_by(|a, b| match (&b.meta.date, &a.meta.date) {
            (Some(bd), Some(ad)) => bd.cmp(ad),
            (Some(_), None) => std::cmp::Ordering::Less,
            (None, Some(_)) => std::cmp::Ordering::Greater,
            (None, None) => a.meta.title.cmp(&b.meta.title),
        });
        pages.truncate(count);
        pages
    }
}

pub fn build_graph(pages: Vec<ParsedPage>) -> Result<PageStore> {
    let mut store = PageStore {
        pages: HashMap::new(),
        forward_links: HashMap::new(),
        backlinks: HashMap::new(),
        tag_index: HashMap::new(),
        namespace_tree: HashMap::new(),
        alias_map: HashMap::new(),
        stub_pages: HashSet::new(),
        subgraph_pages: HashMap::new(),
        subgraph_private: HashSet::new(),
        pagerank: HashMap::new(),
        focus: HashMap::new(),
        gravity: HashMap::new(),
    };

    // First pass: insert all pages, build alias map, and populate subgraph index.
    // Root-graph pages own their aliases: a subgraph page never displaces a
    // root page's claim on an alias slug (e.g. crystal specs alias "neurons"
    // must not shadow the root neuron atom).
    let mut root_aliases: std::collections::HashSet<String> = std::collections::HashSet::new();
    for page in pages {
        let id = page.id.clone();

        // Register aliases
        for alias in &page.meta.aliases {
            let alias_slug = slugify_page_name(alias);
            if page.subgraph.is_none() {
                root_aliases.insert(alias_slug.clone());
                store.alias_map.insert(alias_slug, id.clone());
            } else if !root_aliases.contains(&alias_slug) {
                store.alias_map.insert(alias_slug, id.clone());
            }
        }

        // Track subgraph membership
        if let Some(ref sg) = page.subgraph {
            store
                .subgraph_pages
                .entry(sg.clone())
                .or_default()
                .insert(id.clone());
        }

        store.pages.insert(id, page);
    }

    // Second pass: build forward links and backlinks
    let original_names = links::build_link_indices(&mut store);

    // Third pass: create stub pages for referenced-but-missing pages.
    // Any page that has at least 1 incoming link but no source file gets a stub.
    create_stub_pages(&mut store, &original_names);

    // Build tag index
    tags::build_tag_index(&mut store);

    // Build namespace tree
    namespaces::build_namespace_tree(&mut store);

    // Compute PageRank
    store.pagerank = pagerank::compute_pagerank(&store);

    // Compute tri-kernel focus distribution
    store.focus = trikernel::compute_trikernel(&store);

    // Compute gravity: G_i = ฯ€_i ร— ฮฃ(ฯ€_j / dยฒ), 2-hop approximation
    store.gravity = compute_gravity(&store);

    Ok(store)
}

/// Fast variant for live reload: rebuilds all graph indices (links, backlinks,
/// tags, namespaces, stubs) but reuses PageRank/trikernel/gravity from the
/// previous build. Reduces structural-change rebuild time from ~43s to ~1s.
pub fn build_graph_fast(
    pages: Vec<ParsedPage>,
    old_pagerank: HashMap<PageId, f64>,
    old_focus: HashMap<PageId, f64>,
    old_gravity: HashMap<PageId, f64>,
) -> Result<PageStore> {
    let mut store = PageStore {
        pages: HashMap::new(),
        forward_links: HashMap::new(),
        backlinks: HashMap::new(),
        tag_index: HashMap::new(),
        namespace_tree: HashMap::new(),
        alias_map: HashMap::new(),
        stub_pages: HashSet::new(),
        subgraph_pages: HashMap::new(),
        subgraph_private: HashSet::new(),
        pagerank: old_pagerank,
        focus: old_focus,
        gravity: old_gravity,
    };

    // Root-graph pages own their aliases โ€” same precedence as the full build.
    let mut root_aliases: std::collections::HashSet<String> = std::collections::HashSet::new();
    for page in pages {
        let id = page.id.clone();
        for alias in &page.meta.aliases {
            let alias_slug = slugify_page_name(alias);
            if page.subgraph.is_none() {
                root_aliases.insert(alias_slug.clone());
                store.alias_map.insert(alias_slug, id.clone());
            } else if !root_aliases.contains(&alias_slug) {
                store.alias_map.insert(alias_slug, id.clone());
            }
        }
        if let Some(ref sg) = page.subgraph {
            store.subgraph_pages.entry(sg.clone()).or_default().insert(id.clone());
        }
        store.pages.insert(id, page);
    }

    let original_names = links::build_link_indices(&mut store);
    create_stub_pages(&mut store, &original_names);
    tags::build_tag_index(&mut store);
    namespaces::build_namespace_tree(&mut store);

    Ok(store)
}

/// Compute gravity for each node: G_i = ฯ€_i ร— ฮฃ_{j: d(i,j) โ‰ค 2}(ฯ€_j / d(i,j)ยฒ).
/// Uses 2-hop BFS approximation: O(n ร— avg_degreeยฒ) instead of O(nยฒ).
fn compute_gravity(store: &PageStore) -> HashMap<PageId, f64> {
    let mut gravity = HashMap::new();
    for (id, _) in &store.pages {
        let pi = store.focus.get(id).copied().unwrap_or(0.0);
        if pi == 0.0 {
            gravity.insert(id.clone(), 0.0);
            continue;
        }

        // d=1 neighbors (forward โˆช backward)
        let mut d1: HashSet<&PageId> = HashSet::new();
        if let Some(fwd) = store.forward_links.get(id) {
            for t in fwd {
                d1.insert(t);
            }
        }
        if let Some(back) = store.backlinks.get(id) {
            for t in back {
                d1.insert(t);
            }
        }

        // ฮฃ ฯ€_j / 1ยฒ for d=1 neighbors
        let mut sum = 0.0;
        for j in &d1 {
            sum += store.focus.get(*j).copied().unwrap_or(0.0);
        }

        // d=2 neighbors (neighbors of d1, excluding d1 and self)
        let mut d2: HashSet<&PageId> = HashSet::new();
        for j in &d1 {
            if let Some(fwd) = store.forward_links.get(*j) {
                for t in fwd {
                    if t != id && !d1.contains(t) {
                        d2.insert(t);
                    }
                }
            }
            if let Some(back) = store.backlinks.get(*j) {
                for t in back {
                    if t != id && !d1.contains(t) {
                        d2.insert(t);
                    }
                }
            }
        }

        // ฮฃ ฯ€_j / 4 for d=2 neighbors
        for j in &d2 {
            sum += store.focus.get(*j).copied().unwrap_or(0.0) / 4.0;
        }

        gravity.insert(id.clone(), pi * sum);
    }
    gravity
}

/// Create stub pages for every page ID that is referenced (has backlinks)
/// but doesn't have a source file. These stubs get rendered with backlinks
/// and appear in the graph as real nodes.
fn create_stub_pages(store: &mut PageStore, original_names: &HashMap<String, String>) {
    use crate::parser::{PageKind, PageMeta};
    use std::path::PathBuf;

    // Collect all page IDs that have incoming links but no page entry
    let missing_ids: Vec<PageId> = store
        .backlinks
        .keys()
        .filter(|id| !store.pages.contains_key(*id))
        .cloned()
        .collect();

    for id in missing_ids {
        // Use the original wikilink name if we captured it, otherwise reconstruct from slug
        let title = original_names
            .get(&id)
            .cloned()
            .unwrap_or_else(|| id.replace('-', " "));

        let stub = ParsedPage {
            id: id.clone(),
            meta: PageMeta {
                title,
                properties: HashMap::new(),
                tags: vec![],
                public: Some(true),
                aliases: vec![],
                date: None,
                icon: None,
                menu_order: None,
                stake: None,
            },
            kind: PageKind::Page,
            source_path: PathBuf::new(),
            namespace: None,
            subgraph: None,
            content_md: String::new(),
            outgoing_links: vec![],
        };

        store.stub_pages.insert(id.clone());
        store.pages.insert(id, stub);
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::parser::{PageKind, PageMeta};
    use std::path::PathBuf;

    fn make_page(name: &str, links: Vec<&str>, tags: Vec<&str>) -> ParsedPage {
        ParsedPage {
            id: slugify_page_name(name),
            meta: PageMeta {
                title: name.to_string(),
                properties: HashMap::new(),
                tags: tags.into_iter().map(|s| s.to_string()).collect(),
                public: Some(true),
                aliases: Vec::new(),
                date: None,
                icon: None,
                menu_order: None,
                stake: None,
            },
            kind: PageKind::Page,
            source_path: PathBuf::from(format!("pages/{}.md", name)),
            namespace: None,
            subgraph: None,
            content_md: String::new(),
            outgoing_links: links.into_iter().map(|s| s.to_string()).collect(),
        }
    }

    #[test]
    fn test_backlink_symmetry() {
        let pages = vec![
            make_page("Page A", vec!["Page B"], vec![]),
            make_page("Page B", vec!["Page A"], vec![]),
        ];

        let store = build_graph(pages).unwrap();
        let a_id = slugify_page_name("Page A");
        let b_id = slugify_page_name("Page B");

        assert!(store.backlinks[&a_id].contains(&b_id));
        assert!(store.backlinks[&b_id].contains(&a_id));
    }

    #[test]
    fn test_tag_index() {
        let pages = vec![
            make_page("Page A", vec![], vec!["rust", "programming"]),
            make_page("Page B", vec![], vec!["rust"]),
        ];

        let store = build_graph(pages).unwrap();
        assert_eq!(store.tag_index["rust"].len(), 2);
        assert_eq!(store.tag_index["programming"].len(), 1);
    }

    /// Direct page match must win over alias when resolving tags and links.
    /// Reproduces: pages/core.md exists, pages/cyber/core.md has alias "CORE"
    /// โ†’ tag "core" must backlink to "core", not "cyber-core".
    #[test]
    fn test_direct_page_wins_over_alias() {
        let mut core_page = make_page("core", vec![], vec![]);
        // page with alias that slugifies to "core"
        let mut namespaced = ParsedPage {
            id: "cyber-core".to_string(),
            meta: PageMeta {
                title: "cyber/core".to_string(),
                aliases: vec!["CORE".to_string()],
                ..core_page.meta.clone()
            },
            ..core_page.clone()
        };
        namespaced.source_path = PathBuf::from("pages/cyber/core.md");
        core_page.meta.aliases = vec![];

        // a page tagged "core" โ€” should backlink to "core", not "cyber-core"
        let tagged = make_page("knowledge", vec![], vec!["core"]);

        let store = build_graph(vec![core_page, namespaced, tagged]).unwrap();

        let core_backlinks = &store.backlinks["core"];
        let cyber_core_backlinks = &store.backlinks["cyber-core"];

        assert!(
            core_backlinks.contains(&"knowledge".to_string()),
            "tag 'core' should backlink to direct page 'core'"
        );
        assert!(
            !cyber_core_backlinks.contains(&"knowledge".to_string()),
            "tag 'core' should not backlink to aliased page 'cyber-core'"
        );
    }
}

Homonyms

soft3/glia/run/ir/mod.rs
neural/trident/src/cli/mod.rs
soft3/glia/run/core/mod.rs
cyb/optica/src/scanner/mod.rs
cyb/optica/src/render/mod.rs
neural/trident/src/compile/mod.rs
soft3/tru/rs/graph/mod.rs
neural/trident/src/field/mod.rs
soft3/nox/rs/jets/mod.rs
cyb/prysm/atoms/rs/mod.rs
soft3/glia/run/backend/mod.rs
neural/trident/src/syntax/mod.rs
cyb/optica/src/output/mod.rs
soft3/cybergraph/tests/common/mod.rs
soft3/mudra/src/proof/mod.rs
neural/trident/src/gpu/mod.rs
cyb/optica/src/parser/mod.rs
soft3/glia/import/loader/mod.rs
soft3/tru/rs/model/mod.rs
neural/trident/src/cost/mod.rs
cyb/prysm/system/rs/mod.rs
cyb/shell/src/shell/mod.rs
soft3/nox/rs/patterns/mod.rs
cyb/shell/src/worlds/mod.rs
soft3/mir/src/epoch/mod.rs
soft3/tru/rs/pass/mod.rs
neural/trident/src/config/mod.rs
soft3/glia/run/arch/mod.rs
neural/trident/src/package/mod.rs
soft3/glia/run/bench/mod.rs
neural/trident/src/import/mod.rs
cyb/optica/src/server/mod.rs
neural/trident/src/api/mod.rs
neural/trident/src/neural/mod.rs
neural/trident/src/runtime/mod.rs
neural/trident/src/ast/mod.rs
soft3/nox/rs/data/mod.rs
soft3/mir/src/graph/mod.rs
neural/trident/src/diagnostic/mod.rs
neural/trident/src/typecheck/mod.rs
neural/trident/src/verify/mod.rs
neural/trident/src/deploy/mod.rs
cyb/optica/src/query/mod.rs
soft3/mir/src/frame/mod.rs
neural/trident/src/ir/mod.rs
cyb/prysm/molecules/rs/mod.rs
soft3/tru/rs/focusing/mod.rs
neural/trident/src/lsp/mod.rs
soft3/glia/run/tokenizer/mod.rs
cyb/shell/src/agent/mod.rs
soft3/mir/src/bevy/mod.rs
neural/trident/src/cost/stack_verifier/mod.rs
cyb/honeycrisp/acpu/src/pulse/mod.rs
cyb/honeycrisp/aruminium/src/render/mod.rs
cyb/honeycrisp/acpu/src/gemm/mod.rs
neural/rs/rsc/src/lints/mod.rs
cyb/honeycrisp/acpu/src/sme/mod.rs
cyb/wysm/crates/wasmi/tests/mod.rs
cyb/honeycrisp/acpu/src/lut/mod.rs
cyb/honeycrisp/acpu/src/vector/mod.rs
neural/trident/src/syntax/format/mod.rs
neural/rs/core/src/bounded/mod.rs
cyb/honeycrisp/acpu/src/sync/mod.rs
cyb/honeycrisp/aruminium/src/ffi/mod.rs
cyb/wysm/crates/wasi/tests/mod.rs
neural/trident/src/config/scaffold/mod.rs
cyb/honeycrisp/acpu/src/matrix/mod.rs
soft3/zheng/rs/src/spartan/mod.rs
neural/eidos/rs/src/surface/mod.rs
neural/eidos/rs/src/elab/mod.rs
cyb/shell/src/worlds/vault/mod.rs
neural/eidos/rs/src/tactic_ext/mod.rs
neural/trident/src/ir/tir/mod.rs
neural/trident/src/package/hash/mod.rs
cyb/honeycrisp/acpu/src/field/mod.rs
cyb/honeycrisp/rane/src/mil/mod.rs
neural/trident/src/syntax/lexer/mod.rs
cyb/honeycrisp/acpu/src/probe/mod.rs
cyb/shell/src/worlds/sigma/mod.rs
neural/trident/src/lsp/util/mod.rs
neural/trident/src/package/manifest/mod.rs
neural/rs/macros/src/cell/mod.rs
neural/trident/src/verify/sym/mod.rs
soft3/zheng/rs/src/phi/mod.rs
cyb/shell/src/worlds/models/mod.rs
cyb/honeycrisp/unimem/src/block/mod.rs
neural/trident/src/typecheck/tests/mod.rs
neural/trident/src/api/tests/mod.rs
cyb/shell/src/worlds/body/mod.rs
neural/rs/macros/src/addressed/mod.rs
soft3/glia/run/cli/cmd/mod.rs
cyb/honeycrisp/acpu/src/streaming/mod.rs
neural/trident/src/ir/lir/mod.rs
neural/trident/src/neural/model/mod.rs
soft3/glia/run/backend/cpu/mod.rs
neural/trident/src/config/resolve/mod.rs
soft3/glia/run/arch/decoder/mod.rs
soft3/glia/run/backend/wgpu/mod.rs
neural/trident/src/verify/smt/mod.rs
neural/trident/src/verify/equiv/mod.rs
neural/trident/src/verify/synthesize/mod.rs
soft3/bbg/rs/src/storage/mod.rs
neural/trident/src/neural/training/mod.rs
cyb/honeycrisp/acpu/src/numeric/mod.rs
neural/trident/src/cost/model/mod.rs
neural/trident/src/package/registry/mod.rs
soft3/radio/cyber-bao/src/io/mod.rs
soft3/zheng/rs/src/sumcheck/mod.rs
neural/trident/src/neural/data/mod.rs
neural/trident/src/ir/tree/mod.rs
neural/trident/src/neural/inference/mod.rs
neural/trident/src/syntax/grammar/mod.rs
cyb/shell/src/worlds/robot/mod.rs
neural/rs/macros/src/registers/mod.rs
neural/trident/src/verify/solve/mod.rs
soft3/nox/rs/jets/backends/mod.rs
cyb/shell/src/worlds/com/mod.rs
soft3/glia/run/backend/honeycrisp/mod.rs
neural/rs/core/src/fixed_point/mod.rs
neural/rs/darwin-sys/src/ffi/mod.rs
neural/eidos/rs/src/stdlib/mod.rs
neural/trident/src/ir/kir/mod.rs
cyb/wysm/crates/wast/tests/mod.rs
soft3/radio/iroh-blobs/src/store/mod.rs
neural/trident/src/lsp/semantic/mod.rs
neural/trident/src/package/store/mod.rs
soft3/zheng/rs/src/ccs/mod.rs
soft3/radio/iroh-blobs/examples/common/mod.rs
soft3/strata/nebu/rs/extension/mod.rs
cyb/honeycrisp/acpu/src/crypto/mod.rs
soft3/zheng/rs/src/folding/mod.rs
neural/trident/src/syntax/parser/mod.rs
neural/trident/src/verify/report/mod.rs
cyb/honeycrisp/acpu/src/sparse/mod.rs
soft3/radio/quinn/quinn/src/runtime/mod.rs
cyb/wysm/crates/fuzz/src/oracle/mod.rs
soft3/radio/quinn/quinn-proto/src/config/mod.rs
cyb/evy/forks/bevy_anti_alias/src/contrast_adaptive_sharpening/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/tonemapping/mod.rs
cyb/evy/forks/naga/src/arena/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/experimental/mod.rs
cyb/evy/forks/bevy_render/src/render_phase/mod.rs
cyb/evy/forks/bevy_ecs/src/entity/mod.rs
cyb/evy/forks/bevy_render/src/mesh/mod.rs
neural/trident/src/ir/tir/builder/mod.rs
cyb/wysm/crates/collections/src/arena/mod.rs
soft3/radio/quinn/quinn-proto/src/connection/mod.rs
cyb/wysm/crates/core/src/memory/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/skybox/mod.rs
cyb/evy/forks/bevy_ecs/src/event/mod.rs
neural/trident/src/ir/lir/lower/mod.rs
cyb/evy/forks/bevy_pbr/src/lightmap/mod.rs
cyb/evy/forks/bevy_pbr/src/ssao/mod.rs
cyb/evy/forks/bevy_post_process/src/bloom/mod.rs
cyb/evy/forks/bevy_anti_alias/src/fxaa/mod.rs
soft3/strata/trop/wgsl/src/shaders/mod.rs
cyb/evy/forks/bevy_pbr/src/prepass/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/core_3d/mod.rs
cyb/evy/forks/bevy_ecs/src/relationship/mod.rs
cyb/wysm/crates/wasmi/src/func/mod.rs
cyb/wysm/crates/wasmi/src/engine/mod.rs
cyb/evy/forks/bevy_render/src/render_resource/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/oit/mod.rs
soft3/strata/jali/wgsl/src/shaders/mod.rs
neural/trident/src/ir/tir/stack/mod.rs
cyb/evy/forks/naga/src/valid/mod.rs
soft3/radio/quinn/quinn-proto/src/range_set/mod.rs
soft3/radio/quinn/quinn/examples/common/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/core_2d/mod.rs
cyb/evy/forks/bevy_anti_alias/src/taa/mod.rs
cyb/wysm/crates/wasmi/src/memory/mod.rs
cyb/evy/forks/bevy_sprite_render/src/tilemap_chunk/mod.rs
cyb/wysm/crates/wasmi/benches/bench/mod.rs
cyb/wysm/crates/wasmi/src/table/mod.rs
soft3/radio/quinn/quinn-udp/src/cmsg/mod.rs
cyb/evy/forks/bevy_ecs/src/reflect/mod.rs
cyb/wysm/crates/cli/src/commands/mod.rs
cyb/evy/forks/bevy_render/src/experimental/mod.rs
cyb/evy/forks/naga/src/keywords/mod.rs
cyb/evy/forks/bevy_ecs/src/bundle/mod.rs
cyb/evy/crates/evy_prysm_core/src/layout/mod.rs
cyb/evy/forks/bevy_pbr/src/ssr/mod.rs
cyb/evy/forks/bevy_sprite_render/src/mesh2d/mod.rs
cyb/evy/forks/bevy_ecs/src/storage/mod.rs
cyb/evy/forks/bevy_ecs/src/message/mod.rs
cyb/evy/forks/bevy_render/src/diagnostic/mod.rs
cyb/evy/forks/bevy_sprite_render/src/render/mod.rs
cyb/evy/forks/bevy_ecs/src/world/mod.rs
cyb/evy/forks/bevy_anti_alias/src/smaa/mod.rs
cyb/evy/forks/bevy_ecs/src/change_detection/mod.rs
cyb/evy/forks/bevy_ecs/src/system/mod.rs
cyb/wysm/crates/wasmi/src/store/mod.rs
neural/trident/src/ir/kir/lower/mod.rs
cyb/wysm/crates/wasi/src/sync/mod.rs
cyb/wysm/crates/core/src/table/mod.rs
warriors/trisha/.vendor/twenty-first/src/tip5/mod.rs
cyb/evy/forks/bevy_render/src/render_graph/mod.rs
soft3/glia/run/backend/wgpu/kernels/mod.rs
cyb/wysm/crates/ir/src/decode/mod.rs
cyb/evy/forks/bevy_post_process/src/dof/mod.rs
soft3/strata/kuro/wgsl/src/shaders/mod.rs
cyb/evy/forks/naga/src/front/mod.rs
soft3/glia/run/backend/cpu/quant/mod.rs
soft3/glia/run/arch/decoder/families/mod.rs
soft3/strata/genies/wgsl/src/shaders/mod.rs
neural/trident/src/ir/tir/neural/mod.rs
neural/trident/src/ir/tir/optimize/mod.rs
cyb/evy/forks/bevy_tasks/src/iter/mod.rs
cyb/evy/forks/bevy_sprite/src/texture_slice/mod.rs
cyb/evy/forks/bevy_render/src/batching/mod.rs
cyb/evy/forks/bevy_pbr/src/light_probe/mod.rs
cyb/evy/forks/bevy_pbr/src/volumetric_fog/mod.rs
neural/trident/src/ir/tir/lower/mod.rs
cyb/wysm/crates/wasmi/tests/integration/mod.rs
cyb/evy/forks/naga/src/back/mod.rs
cyb/evy/forks/bevy_anti_alias/src/dlss/mod.rs
neural/trident/src/syntax/parser/tests/mod.rs
cyb/evy/forks/bevy_render/src/renderer/mod.rs
cyb/evy/forks/bevy_render/src/view/mod.rs
cyb/evy/forks/bevy_ecs/src/component/mod.rs
cyb/wysm/crates/wasmi/src/instance/mod.rs
neural/trident/src/ir/tree/lower/mod.rs
soft3/radio/quinn/quinn-proto/src/tests/mod.rs
cyb/evy/forks/bevy_pbr/src/decal/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/upscaling/mod.rs
neural/trident/src/neural/data/tir_graph/mod.rs
cyb/evy/forks/bevy_pbr/src/atmosphere/mod.rs
cyb/honeycrisp/acpu/src/field/tip5/mod.rs
cyb/evy/forks/bevy_post_process/src/auto_exposure/mod.rs
cyb/evy/forks/bevy_render/src/texture/mod.rs
cyb/evy/forks/bevy_ecs/src/error/mod.rs
cyb/evy/forks/bevy_mesh/src/primitives/mod.rs
soft3/glia/run/backend/honeycrisp/kernels/mod.rs
cyb/evy/forks/bevy_pbr/src/render/mod.rs
cyb/evy/forks/bevy_sprite_render/src/text2d/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/blit/mod.rs
cyb/evy/forks/naga/src/common/mod.rs
cyb/evy/forks/bevy_gizmos/src/primitives/mod.rs
cyb/wysm/crates/c_api/src/types/mod.rs
cyb/wysm/crates/wasmi/src/module/mod.rs
cyb/evy/forks/bevy_post_process/src/effect_stack/mod.rs
cyb/evy/forks/bevy_pbr/src/deferred/mod.rs
cyb/evy/forks/bevy_sprite_render/src/texture_slice/mod.rs
cyb/evy/forks/bevy_post_process/src/motion_blur/mod.rs
cyb/evy/forks/naga/src/proc/mod.rs
cyb/evy/forks/naga/src/compact/mod.rs
cyb/evy/forks/bevy_ecs/src/observer/mod.rs
cyb/evy/forks/bevy_transform/src/components/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/prepass/mod.rs
cyb/evy/forks/bevy_pbr/src/meshlet/mod.rs
cyb/evy/forks/bevy_ecs/src/query/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/deferred/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/fullscreen_vertex_shader/mod.rs
cyb/evy/forks/bevy_render/src/view/window/mod.rs
cyb/evy/forks/naga/src/front/wgsl/mod.rs
neural/inf/rs/cozo/cozorocks/src/bridge/mod.rs
cyb/evy/forks/bevy_ecs/src/storage/table/mod.rs
cyb/evy/forks/bevy_mesh/src/primitives/dim3/mod.rs
soft3/radio/quinn/quinn-proto/src/connection/streams/mod.rs
neural/inf/rs/cozo/cozo-core/src/parse/mod.rs
cyb/evy/forks/naga/src/back/wgsl/mod.rs
cyb/evy/forks/naga/src/back/hlsl/mod.rs
struct Baz { m: mat3x2, } struct Baz { float2 m_0; float2 m_1; float2 m_2; }; float3x2 GetMatmOnBaz(Baz obj) { return float3x2(obj.m_0, obj.m_1, obj.m_2); }
neural/inf/rs/cozo/cozo-core/src/storage/mod.rs
cyb/wysm/crates/wasi/src/sync/snapshots/mod.rs
neural/inf/rs/cozo/cozo-core/src/runtime/mod.rs
cyb/evy/forks/bevy_render/src/view/visibility/mod.rs
cyb/wysm/crates/wasmi/src/module/parser/mod.rs
cyb/evy/forks/bevy_ecs/src/system/commands/mod.rs
neural/inf/rs/cozo/cozo-core/src/fixed_rule/mod.rs
cyb/evy/forks/naga/src/back/glsl/mod.rs
cyb/evy/forks/naga/src/back/dot/mod.rs
soft3/radio/quinn/quinn-proto/src/congestion/bbr/mod.rs
cyb/evy/forks/naga/src/front/spv/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/executor/mod.rs
cyb/wysm/crates/wasmi/src/engine/limits/mod.rs
neural/inf/rs/cozo/cozo-core/src/query/mod.rs
neural/inf/rs/cozo/cozo-core/src/fts/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/experimental/mip_generation/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/oit/resolve/mod.rs
cyb/evy/forks/naga/src/front/glsl/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/graph/mod.rs
cyb/evy/forks/naga/src/back/spv/mod.rs
neural/inf/rs/cozo/cozo-core/src/data/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/mod.rs
cyb/evy/forks/bevy_ecs/src/world/entity_access/mod.rs
cyb/evy/forks/naga/src/back/msl/mod.rs
cyb/wysm/crates/wasmi/src/module/instantiate/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/mod.rs
cyb/evy/forks/bevy_render/src/experimental/occlusion_culling/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/lut/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/crypto/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/aruminium/src/render/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/probe/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/vector/mod.rs
neural/inf/rs/cozo/cozo-core/src/fts/cangjie/mod.rs
cyb/evy/forks/naga/src/front/wgsl/parse/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/sme/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/probe/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/gemm/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/aruminium/src/render/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/pulse/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/numeric/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/sparse/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/field/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/rane/src/mil/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/streaming/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/crypto/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/matrix/mod.rs
neural/inf/rs/cozo/cozo-core/src/fixed_rule/utilities/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/rane/src/mil/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/sync/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/matrix/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/handler/mod.rs
neural/inf/rs/cozo/cozo-core/src/fts/tokenizer/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/vector/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/field/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/sync/mod.rs
cyb/evy/forks/naga/src/back/wgsl/polyfill/mod.rs
neural/inf/rs/cozo/cozo-core/src/data/tests/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/pulse/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/sparse/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/aruminium/src/ffi/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/gemm/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/numeric/mod.rs
cyb/evy/forks/naga/src/front/wgsl/lower/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/aruminium/src/ffi/mod.rs
neural/inf/rs/cozo/cozo-core/src/fixed_rule/algos/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/stack/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/src/field/tip5/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/handler/dispatch/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/simd/mod.rs
neural/inf/rs/cozo/cozo-core/src/fts/tokenizer/stop_word_filter/mod.rs
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/src/field/tip5/mod.rs

Graph