From 67b585af9483178ad9a91141445eeae727b37ff9 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Sat, 29 Aug 2026 21:40:27 +0300 Subject: [PATCH] load evaluation evidence for cognitive promotion --- adapters/postgres/capability_repository.go | 8 ++++++++ cmd/core-runtime/main.go | 4 ++-- modules/capability/ports/repository.go | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/adapters/postgres/capability_repository.go b/adapters/postgres/capability_repository.go index b1e8cb7..fdb517d 100644 --- a/adapters/postgres/capability_repository.go +++ b/adapters/postgres/capability_repository.go @@ -433,6 +433,14 @@ func (r *CapabilityRepository) LoadCognitiveCandidatesForProfile(ctx context.Con return r.loadCognitiveCandidates(ctx, capabilityID, owner, profileID) } +func (r *CapabilityRepository) LoadCognitiveCandidatesForEvaluation(ctx context.Context, capabilityID capability.CapabilityID, owner identity.PrincipalID, evaluationID capability.EvaluationID) ([]capability.ResolvedCognitiveBinding, error) { + var profileID capability.TaskEvaluationProfileID + if err := r.pool.QueryRow(ctx, `SELECT task_profile_id FROM capability.cognitive_task_evaluations WHERE evaluation_id=$1 AND capability_id=$2`, evaluationID, capabilityID).Scan(&profileID); err != nil { + return nil, err + } + return r.loadCognitiveCandidates(ctx, capabilityID, owner, profileID) +} + func (r *CapabilityRepository) LoadCognitiveCandidate(ctx context.Context, bindingID capability.CapabilityBindingID, revision int64) (capability.ResolvedCognitiveBinding, error) { var capabilityID capability.CapabilityID var owner identity.PrincipalID diff --git a/cmd/core-runtime/main.go b/cmd/core-runtime/main.go index dae9bab..db9b0aa 100644 --- a/cmd/core-runtime/main.go +++ b/cmd/core-runtime/main.go @@ -1528,7 +1528,7 @@ func main() { } request.RequestedByPrincipalID = session.PrincipalID request.CapabilityID = "creator-advisory" - candidates, err := capabilityRepository.LoadCognitiveCandidates(r.Context(), request.CapabilityID, session.PrincipalID) + candidates, err := capabilityRepository.LoadCognitiveCandidatesForEvaluation(r.Context(), request.CapabilityID, session.PrincipalID, request.EvaluationID) if err != nil { http.Error(w, "cognitive registry unavailable", http.StatusServiceUnavailable) return @@ -1567,7 +1567,7 @@ func main() { } request.RequestedByPrincipalID = session.PrincipalID request.CapabilityID = "creator-advisory" - candidates, err := capabilityRepository.LoadCognitiveCandidates(r.Context(), request.CapabilityID, session.PrincipalID) + candidates, err := capabilityRepository.LoadCognitiveCandidatesForEvaluation(r.Context(), request.CapabilityID, session.PrincipalID, request.EvaluationID) if err != nil { http.Error(w, "cognitive registry unavailable", http.StatusServiceUnavailable) return diff --git a/modules/capability/ports/repository.go b/modules/capability/ports/repository.go index 1c1b64c..74e316d 100644 --- a/modules/capability/ports/repository.go +++ b/modules/capability/ports/repository.go @@ -19,6 +19,7 @@ type Repository interface { SaveCognitiveBinding(context.Context, capability.CognitiveBinding) error LoadCognitiveCandidates(context.Context, capability.CapabilityID, identity.PrincipalID) ([]capability.ResolvedCognitiveBinding, error) LoadCognitiveCandidatesForProfile(context.Context, capability.CapabilityID, identity.PrincipalID, capability.TaskEvaluationProfileID) ([]capability.ResolvedCognitiveBinding, error) + LoadCognitiveCandidatesForEvaluation(context.Context, capability.CapabilityID, identity.PrincipalID, capability.EvaluationID) ([]capability.ResolvedCognitiveBinding, error) LoadCognitiveCandidate(context.Context, capability.CapabilityBindingID, int64) (capability.ResolvedCognitiveBinding, error) SaveCognitiveCanaryPromotion(context.Context, capability.CognitiveCanaryPromotion) error SaveCognitiveActivationPromotion(context.Context, capability.CognitiveActivationPromotion) error