Greenfield: Implement direct controller, E2E fixtures, and fuzzer for DialogflowConversationDataset - #13629
Greenfield: Implement direct controller, E2E fixtures, and fuzzer for DialogflowConversationDataset#13629ada-coder-bot wants to merge 1 commit into
Conversation
… DialogflowConversationDataset Issue: 13603
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Real GCP Audit Log VerificationAudit verification records confirming live GCP testing and actuation for [
{
"insertId": "6ozamxf87rzgq",
"jsonPayload": {
"event": "RESOURCE_ACTUATED_AND_VERIFIED",
"gvk": "dialogflow.cnrm.cloud.google.com/v1alpha1, Kind=DialogflowConversationDataset",
"namespace": "h3t4whcovuk465q",
"probedUrls": [
"https://dialogflow.googleapis.com/v2/projects/cnrm-barni-4/locations/global/conversationDatasets/3848585641210150912-fbd243c02f054df8?%24alt=json%3Benum-encoding%3Dint"
],
"resourceName": "dialogflowconversationdataset-max-h3t4whcovuk465q",
"testKey": "basic/dialogflow/v1alpha1/dialogflowconversationdataset/dialogflowconversationdataset-maximal",
"timestamp": "2026-10-01T23:48:36Z"
},
"logName": "projects/cnrm-barni-4/logs/kcc-e2e-actuation-audit",
"timestamp": "2026-10-01T23:48:36.332716843Z"
},
{
"insertId": "y4wrfae56c2d",
"jsonPayload": {
"event": "RESOURCE_ACTUATED_AND_VERIFIED",
"gvk": "dialogflow.cnrm.cloud.google.com/v1alpha1, Kind=DialogflowConversationDataset",
"namespace": "kmb3ytpvqrmwvfq",
"probedUrls": [
"https://dialogflow.googleapis.com/v2/projects/cnrm-barni-4/locations/global/conversationDatasets/6154428650423844864-fbd243c02f054df8?%24alt=json%3Benum-encoding%3Dint"
],
"resourceName": "dialogflowconversationdataset-min-kmb3ytpvqrmwvfq",
"testKey": "basic/dialogflow/v1alpha1/dialogflowconversationdataset/dialogflowconversationdataset-minimal",
"timestamp": "2026-10-01T23:42:48Z"
},
"logName": "projects/cnrm-barni-4/logs/kcc-e2e-actuation-audit",
"timestamp": "2026-10-01T23:42:48.406177511Z"
}
] |
|
🤖 AI Factory started reviewing this pull request in a sandbox. |
reviewbot-robot
left a comment
There was a problem hiding this comment.
KCC Auto-Review Results
- Trigger criteria matched: Yes
- Client Creation: Pass
- Default Reconciler Kept: Pass
- Proto Diffs & Update Mask: Pass
- Structured Reporting: Pass
- KRM Status Updates: Pass
- LRO Wait: Pass
- Test Coverage: Pass
Detailed Findings / Actions Required:
None. The direct controller implementation for DialogflowConversationDataset follows all KCC greenfield controller conventions and design principles:
- GAPIC REST client (
NewConversationDatasetsRESTClient) is properly used. - Correctly registers the direct model in
static_config.goandregister.go. - Handles service-generated resource IDs correctly across
Find,Create,Delete, andExport. - Enforces resource immutability on update while invoking
structuredreporting.ReportDiffto report diffs before returning. - Consistently updates KRM status on
Createand no-opUpdate. - Waits for LRO completion on
CreateandDelete, and gracefully handles empty LRO delete responses. - Includes minimal and maximal test fixtures with golden files recorded against real GCP, achieving full field coverage.
- Implements complete KRM fuzzer covering all spec and status fields.
|
🤖 AI Factory started addressing review feedback for this pull request. |
|
Thank you for the review! All criteria passed with no actions required. Validations and tests continue to pass cleanly. (This comment was generated by overseer) |
Description
This PR implements the direct controller, E2E fixtures, and fuzzer for the greenfield resource
DialogflowConversationDataset(dialogflow.cnrm.cloud.google.com/v1alpha1).Key Changes
DialogflowConversationDatasetdirect controller adapter inpkg/controller/direct/dialogflow/conversationdataset/dialogflowconversationdataset_controller.gosupportingFind,Create,Update,Delete, andExportoperations using the GAPIC REST client (cloud.google.com/go/dialogflow/apiv2).Update.pkg/controller/direct/dialogflow/conversationdataset/dialogflowconversationdataset_fuzzer.gocovering all Spec and Status/ObservedState fields.DialogflowConversationDatasetinpkg/controller/resourceconfig/static_config.goandpkg/controller/direct/register/register.go.pkg/test/resourcefixture/testdata/basic/dialogflow/v1alpha1/dialogflowconversationdataset/.hack/record-gcpin projectcnrm-barni-4.${conversationDatasetID}dynamic ID normalization inmockgcp/mockdialogflow/normalize.go.alpha-missingfields.txtto reflect 100% field coverage in tests forDialogflowConversationDataset.Fixes #13603
This PR was generated by the overseer,greenfield,step/controller,overseer/review agent (powered by the gemini-3.7-flash model).