From cabf386203b518507b1ea0bb54ff2d6d6060c1a9 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Fri, 21 Aug 2026 15:31:34 +0300 Subject: [PATCH] fix: refresh cognitive discovery health --- adapters/postgres/capability_repository.go | 6 +++--- dev/tasks/DEV-000083-domovoy-lifeboat-mode.json | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/adapters/postgres/capability_repository.go b/adapters/postgres/capability_repository.go index 4cd0096..140c3ba 100644 --- a/adapters/postgres/capability_repository.go +++ b/adapters/postgres/capability_repository.go @@ -414,7 +414,7 @@ func (r *CapabilityRepository) SaveCognitiveDiscovery(ctx context.Context, value return err } defer func() { _ = tx.Rollback(ctx) }() - _, err = tx.Exec(ctx, `INSERT INTO capability.cognitive_provider_instances (provider_instance_id,revision,provider_kind,endpoint_ref,credential_ref,enabled,qualification,health,observed_at_unix_millis) VALUES ($1,$2,$3,$4,NULLIF($5,''),$6,$7,$8,$9) ON CONFLICT DO NOTHING`, value.Provider.ID, value.Provider.Revision, value.Provider.Kind, value.Provider.EndpointRef, value.Provider.CredentialRef, value.Provider.Enabled, value.Provider.Qualification, value.Provider.Health, value.Provider.ObservedAtUnixMillis) + _, err = tx.Exec(ctx, `INSERT INTO capability.cognitive_provider_instances (provider_instance_id,revision,provider_kind,endpoint_ref,credential_ref,enabled,qualification,health,observed_at_unix_millis) VALUES ($1,$2,$3,$4,NULLIF($5,''),$6,$7,$8,$9) ON CONFLICT (provider_instance_id,revision) DO UPDATE SET health=EXCLUDED.health,observed_at_unix_millis=EXCLUDED.observed_at_unix_millis WHERE capability.cognitive_provider_instances.observed_at_unix_millis <= EXCLUDED.observed_at_unix_millis`, value.Provider.ID, value.Provider.Revision, value.Provider.Kind, value.Provider.EndpointRef, value.Provider.CredentialRef, value.Provider.Enabled, value.Provider.Qualification, value.Provider.Health, value.Provider.ObservedAtUnixMillis) if err != nil { return err } @@ -423,7 +423,7 @@ func (r *CapabilityRepository) SaveCognitiveDiscovery(ctx context.Context, value return err } for index, model := range value.Models { - _, err = tx.Exec(ctx, `INSERT INTO capability.cognitive_model_descriptors (model_descriptor_id,revision,provider_instance_id,provider_model_id,fingerprint,max_context_bytes,modalities,capabilities,qualification,health,observed_at_unix_millis) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11) ON CONFLICT DO NOTHING`, model.ID, model.Revision, model.ProviderInstanceID, model.ProviderModelID, model.Fingerprint, model.MaxContextBytes, model.Modalities, model.Capabilities, model.Qualification, model.Health, model.ObservedAtUnixMillis) + _, err = tx.Exec(ctx, `INSERT INTO capability.cognitive_model_descriptors (model_descriptor_id,revision,provider_instance_id,provider_model_id,fingerprint,max_context_bytes,modalities,capabilities,qualification,health,observed_at_unix_millis) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11) ON CONFLICT (model_descriptor_id,revision) DO UPDATE SET health=EXCLUDED.health,observed_at_unix_millis=EXCLUDED.observed_at_unix_millis WHERE capability.cognitive_model_descriptors.observed_at_unix_millis <= EXCLUDED.observed_at_unix_millis`, model.ID, model.Revision, model.ProviderInstanceID, model.ProviderModelID, model.Fingerprint, model.MaxContextBytes, model.Modalities, model.Capabilities, model.Qualification, model.Health, model.ObservedAtUnixMillis) if err != nil { return err } @@ -433,7 +433,7 @@ func (r *CapabilityRepository) SaveCognitiveDiscovery(ctx context.Context, value return err } binding := value.Bindings[index] - _, err = tx.Exec(ctx, `INSERT INTO capability.cognitive_bindings (binding_id,revision,capability_id,owner_principal_id,provider_instance_id,provider_revision,model_descriptor_id,model_revision,data_policy,qualification,activation,health,limit_policy_ref) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13) ON CONFLICT DO NOTHING`, binding.ID, binding.Revision, binding.CapabilityID, binding.OwnerPrincipalID, binding.ProviderInstanceID, binding.ProviderRevision, binding.ModelDescriptorID, binding.ModelRevision, binding.DataPolicy, binding.Qualification, binding.Activation, binding.Health, binding.LimitPolicyRef) + _, err = tx.Exec(ctx, `INSERT INTO capability.cognitive_bindings (binding_id,revision,capability_id,owner_principal_id,provider_instance_id,provider_revision,model_descriptor_id,model_revision,data_policy,qualification,activation,health,limit_policy_ref) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13) ON CONFLICT (binding_id,revision) DO UPDATE SET health=EXCLUDED.health WHERE capability.cognitive_bindings.health <> EXCLUDED.health`, binding.ID, binding.Revision, binding.CapabilityID, binding.OwnerPrincipalID, binding.ProviderInstanceID, binding.ProviderRevision, binding.ModelDescriptorID, binding.ModelRevision, binding.DataPolicy, binding.Qualification, binding.Activation, binding.Health, binding.LimitPolicyRef) if err != nil { return err } diff --git a/dev/tasks/DEV-000083-domovoy-lifeboat-mode.json b/dev/tasks/DEV-000083-domovoy-lifeboat-mode.json index d3c9175..3fd4b2c 100644 --- a/dev/tasks/DEV-000083-domovoy-lifeboat-mode.json +++ b/dev/tasks/DEV-000083-domovoy-lifeboat-mode.json @@ -1,6 +1,6 @@ { "task_id": "DEV-000083", - "task_revision": 1, + "task_revision": 2, "architecture_revision": "DEV-000073-baseline", "base_repo_revision": "0a2599cfa6255f1a98856d2fd09dc51a2119f525", "risk_tier": "C", @@ -12,7 +12,7 @@ "The core can still accept and explain configuration requests when all model providers are unavailable" ], "allowed_change_scope": { - "modules": ["cmd/core-runtime", "cmd/cognitive-worker", "cmd/creator-web", "deployment"], + "modules": ["cmd/core-runtime", "cmd/cognitive-worker", "cmd/creator-web", "modules/capability", "adapters/postgres", "deployment"], "paths": [ "cmd/core-runtime/main.go", "cmd/core-runtime/main_test.go", @@ -23,6 +23,7 @@ "cmd/creator-web/static/assets/chat.js", "cmd/creator-web/static/chat.html", "cmd/creator-web/chat_test.go", + "adapters/postgres/capability_repository.go", "deploy/docker-compose.prod.yml", "deploy/docker-compose.dev.yml", "dev/tasks/DEV-000083-lifeboat-benchmark-manifest.json",