feat(rag): AnswerCitation inherits indexed_at + stale from hit (fb-32)
pack_context widened to carry indexed_at + stale alongside marker and Citation. LLM-citation construction site now plumbs real values from upstream SearchHit instead of the Task 6 UNIX_EPOCH placeholder. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -116,6 +116,29 @@ pub fn mk_hit(
|
||||
workspace_path: &str,
|
||||
fusion_score: f32,
|
||||
heading: &[&str],
|
||||
) -> SearchHit {
|
||||
mk_hit_with_indexed_at(
|
||||
rank,
|
||||
chunk_id,
|
||||
doc_id,
|
||||
workspace_path,
|
||||
fusion_score,
|
||||
heading,
|
||||
time::OffsetDateTime::UNIX_EPOCH,
|
||||
)
|
||||
}
|
||||
|
||||
/// Build a `SearchHit` with an explicit `indexed_at` timestamp. Used by
|
||||
/// p9-fb-32 staleness tests so the pipeline sees realistic per-hit
|
||||
/// indexed_at values flowing through to `AnswerCitation`.
|
||||
pub fn mk_hit_with_indexed_at(
|
||||
rank: u32,
|
||||
chunk_id: &str,
|
||||
doc_id: &str,
|
||||
workspace_path: &str,
|
||||
fusion_score: f32,
|
||||
heading: &[&str],
|
||||
indexed_at: time::OffsetDateTime,
|
||||
) -> SearchHit {
|
||||
let p = WorkspacePath::new(workspace_path.to_string()).expect("workspace path valid");
|
||||
SearchHit {
|
||||
@@ -143,8 +166,9 @@ pub fn mk_hit(
|
||||
index_version: IndexVersion("test-iv".to_string()),
|
||||
embedding_model: None,
|
||||
chunker_version: ChunkerVersion("v1".to_string()),
|
||||
// p9-fb-32: synthetic test mock — staleness not exercised here.
|
||||
indexed_at: time::OffsetDateTime::UNIX_EPOCH,
|
||||
// p9-fb-32: pipeline post-processes `stale` from `indexed_at`
|
||||
// + cfg threshold; tests configure both via this helper.
|
||||
indexed_at,
|
||||
stale: false,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user