package postgres import ( "context" "errors" "knowledge-governance/internal/governance" ) // Query the source identity before applying LIMIT: target/prebackup events and // other source instances can never push the candidate out of a history window. func (s *Store) LibrarySourceCandidate(ctx context.Context, scope, sourceID string) (governance.LibraryVersion, bool, error) { if sourceID == "" { return governance.LibraryVersion{}, false, errors.New("source identity required") } rows, err := s.db.Query(ctx, `SELECT id,scope,kind,snapshot_id,version_label,source_job_id,operation_id,attempt_epoch,evidence,created_by,created_at,superseded_at FROM library_versions WHERE scope=$1 AND kind='test_sealed' AND evidence->>'source_id'=$2 ORDER BY created_at DESC,id DESC LIMIT 1`, scope, sourceID) if err != nil { return governance.LibraryVersion{}, false, err } items, err := scanLibraryVersions(rows, 1) if err != nil || len(items) == 0 { return governance.LibraryVersion{}, false, err } return items[0], true, nil }