kb-core: add policy_hash field to Chunk struct (P1-6 schema reconcile)
Add policy_hash: String to kb_core::Chunk to align with the §5.5 SQLite schema (chunks.policy_hash NOT NULL), so kb-store-sqlite persistence is a straight field copy rather than a recompute. This is a §9 schema migration: - §5.5 (the persistence schema) is authoritative. - §3.5 (the domain model) must accommodate. The chunker already computed policy_hash for the chunk_id recipe (§4.2); P1-5 stored it implicitly. We now hold it explicitly on the Chunk so any DocumentStore::put_chunks impl can read it directly. Follow-up commits update kb-chunk to populate the field and refresh the P1-5 snapshot baseline accordingly.
This commit is contained in:
@@ -6,6 +6,12 @@ use crate::document::SourceSpan;
|
||||
use crate::ids::{BlockId, ChunkId, DocumentId};
|
||||
use crate::versions::ChunkerVersion;
|
||||
|
||||
/// A unit of retrievable text per design §3.5 + §5.5.
|
||||
///
|
||||
/// `policy_hash` is the chunker's hex digest of the active `ChunkPolicy`
|
||||
/// (e.g. `target_tokens`, `overlap_tokens`). It mirrors the §5.5 SQLite
|
||||
/// schema column so persistence is a straight copy, and feeds the
|
||||
/// `chunk_id` recipe (§4.2) so policy edits invalidate downstream IDs.
|
||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub struct Chunk {
|
||||
pub chunk_id: ChunkId,
|
||||
@@ -16,4 +22,5 @@ pub struct Chunk {
|
||||
pub source_spans: Vec<SourceSpan>,
|
||||
pub token_estimate: usize,
|
||||
pub chunker_version: ChunkerVersion,
|
||||
pub policy_hash: String,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user