preserve governed cognitive head across discovery refresh
CI / test (push) Failing after 31s

This commit is contained in:
m
2026-08-29 22:43:59 +03:00
parent 041fb1556d
commit c1c2110322
+4 -1
View File
@@ -570,7 +570,10 @@ func (r *CapabilityRepository) SaveCognitiveDiscovery(ctx context.Context, value
}
// Discovery may advance a head, but must never roll back a governed
// CANARY/ACTIVE revision to an older discovered snapshot after restart.
_, err = tx.Exec(ctx, `INSERT INTO capability.cognitive_binding_revision_heads (binding_id,revision) VALUES ($1,$2) ON CONFLICT (binding_id) DO UPDATE SET revision=EXCLUDED.revision,updated_at=CURRENT_TIMESTAMP WHERE capability.cognitive_binding_revision_heads.revision < EXCLUDED.revision`, binding.ID, binding.Revision)
// Discovery may advance an inactive head even when its deterministic
// revision number is lower, but it must never overwrite a governed canary
// or active head during restart/startup refresh.
_, err = tx.Exec(ctx, `INSERT INTO capability.cognitive_binding_revision_heads (binding_id,revision) VALUES ($1,$2) ON CONFLICT (binding_id) DO UPDATE SET revision=EXCLUDED.revision,updated_at=CURRENT_TIMESTAMP WHERE NOT EXISTS (SELECT 1 FROM capability.cognitive_bindings current_binding WHERE current_binding.binding_id=capability.cognitive_binding_revision_heads.binding_id AND current_binding.revision=capability.cognitive_binding_revision_heads.revision AND current_binding.activation IN ('CANARY','ACTIVE'))`, binding.ID, binding.Revision)
if err != nil {
return err
}