talon-core 0.4.2

Core retrieval engine for Talon: hybrid search (BM25 + semantic + reranker), indexing, and graph-aware ranking over markdown corpora.
Documentation
//! Indexing pipeline: parse → chunk → upsert.
//!
//! Ports `services/talon/indexer/*.ts` from the `TypeScript` reference. Layout:
//!
//! - [`prelude`] — file utilities (hashing, glob filters, vault scan, title
//!   extraction, link-graph cache loading).
//! - [`crate::indexing::upsert`] — `SQL` upsert helpers for notes, chunks, links, aliases,
//!   tags, frontmatter fields, and soft-delete.
//! - [`wiring`] — per-note pipeline that ties the chunker, frontmatter, and
//!   link resolver to the upsert helpers.
//! - [`scan`] — full vault scan that walks the filesystem, applies
//!   include/ignore filters, skips unchanged files via mtime+size, and
//!   reconciles deletions.

pub mod prelude;
pub mod scan;
pub mod wiring;

pub use crate::indexing::upsert::{
    ChunkUpsertRow, NoteUpsertResult, UpsertNoteParams, perform_note_deletion, upsert_aliases,
    upsert_chunks, upsert_frontmatter_fields, upsert_links, upsert_note, upsert_tags,
};
pub use prelude::{
    DEFAULT_IGNORE_PATHS, build_ignore_globset, build_include_globset, extract_title,
    file_matches_ignore, file_matches_include, hash_file_content, load_notes_for_linking,
    matches_ignore_patterns, matches_include_patterns, merge_current_path_for_linking,
    scan_vault_markdown,
};
pub use scan::{
    IndexerConfig, IndexerStats, reconcile_deletions, reconcile_ignored_notes, run_full_scan,
    run_full_scan_with_chunker,
};
pub use wiring::{IndexNoteOutcome, NoteIndexConfig, index_one_note, index_one_note_with_config};