{"data":[{"id":"chg_a608c037e7f5eb445b9c80b93ad4816ee7f6b769386388f3706cc455274fb3a5","path":"/workspaces/{workspace_gid}/ai_studio/runs","method":"GET","direction":"response","fieldPath":"data/items/allOf[subschema #2]/rule","changeType":"response-property-became-nullable","detectedAt":"2026-10-18T17:22:58.169512+00:00","classification":"breaking","breakKind":"runtime","summary":"the response property `data/items/allOf[subschema #2]/rule` became nullable for the status `200`","reasoning":"response.now_optional_or_nullable: response response-property-became-nullable -> breaking","ruleId":"response.now_optional_or_nullable","classifierVersion":"2026-10-15.2","evidenceStrength":"spec_only","detectionMethod":"openapi_diff","fragment":[{"kind":"ctx","text":"..."},{"kind":"ctx","text":"                        serves as the de-duplication key for incremental loads."},{"kind":"ctx","text":"                      properties:"},{"kind":"add","text":"                        automation:"},{"kind":"add","text":"                          description: The multi-step automation (AutomationWorkflow) the step belonged to"},{"kind":"add","text":"                            when it ran. `null` for standalone rules. Non-null"},{"kind":"add","text":"                            for workflow steps regardless of whether the step"},{"kind":"add","text":"                            itself was later deleted. Each step of a multi-step"},{"kind":"add","text":"                            automation run is returned as its own row with the"},{"kind":"add","text":"                            same `automation`, so group by `automation.gid` to"},{"kind":"add","text":"                            reconstruct per-automation usage. Not"},{"kind":"add","text":"                            dereferenceable yet (no public Automations API)."},{"kind":"add","text":"                          nullable: true"},{"kind":"add","text":"                          properties:"},{"kind":"add","text":"                            gid:"},{"kind":"add","text":"                              example: \"1208222222222222\""},{"kind":"add","text":"                              readOnly: true"},{"kind":"add","text":"                              type: string"},{"kind":"add","text":"                            name:"},{"kind":"add","text":"                              example: Intake triage automation"},{"kind":"add","text":"                              readOnly: true"},{"kind":"add","text":"                              type: string"},{"kind":"add","text":"                            resource_type:"},{"kind":"add","text":"                              example: automation"},{"kind":"add","text":"                              readOnly: true"},{"kind":"add","text":"                              type: string"},{"kind":"add","text":"                          readOnly: true"},{"kind":"add","text":"                          type: object"},{"kind":"ctx","text":"                        credit_source:"},{"kind":"ctx","text":"                          description: Whether the credits were drawn from a paid or free balance."},{"kind":"ctx","text":"..."},{"kind":"ctx","text":"                          type: string"},{"kind":"ctx","text":"                        rule:"},{"kind":"del","text":"                          description: The rule (automation) that ran, as a compact reference. The Rules"},{"kind":"del","text":"                            API is not yet public, so this is not"},{"kind":"add","text":"                          description: The rule (AutomationStep) that ran, as a compact reference."},{"kind":"add","text":"                            Non-null for both standalone rules and multi-step"},{"kind":"add","text":"                            automation steps as long as the step still exists."},{"kind":"add","text":"                            `null` if the step was deleted after the run. The"},{"kind":"add","text":"                            Rules API is not yet public, so this is not"}]},{"id":"chg_138367b4d49df2027329d116b5766426def5e35450ce736a78062709ec96d6b9","path":"/workspaces/{workspace_gid}/ai_studio/runs","method":"GET","direction":"response","fieldPath":"data/items/allOf[subschema #2]/automation","changeType":"response-optional-property-added","detectedAt":"2026-10-18T17:22:58.169512+00:00","classification":"non_breaking","breakKind":null,"summary":"added the optional property `data/items/allOf[subschema #2]/automation` to the response with the `200` status","reasoning":"response.added: response response-optional-property-added -> non_breaking","ruleId":"response.added","classifierVersion":"2026-10-15.2","evidenceStrength":"spec_only","detectionMethod":"openapi_diff","fragment":[{"kind":"ctx","text":"..."},{"kind":"ctx","text":"                        serves as the de-duplication key for incremental loads."},{"kind":"ctx","text":"                      properties:"},{"kind":"add","text":"                        automation:"},{"kind":"add","text":"                          description: The multi-step automation (AutomationWorkflow) the step belonged to"},{"kind":"add","text":"                            when it ran. `null` for standalone rules. Non-null"},{"kind":"add","text":"                            for workflow steps regardless of whether the step"},{"kind":"add","text":"                            itself was later deleted. Each step of a multi-step"},{"kind":"add","text":"                            automation run is returned as its own row with the"},{"kind":"add","text":"                            same `automation`, so group by `automation.gid` to"},{"kind":"add","text":"                            reconstruct per-automation usage. Not"},{"kind":"add","text":"                            dereferenceable yet (no public Automations API)."},{"kind":"add","text":"                          nullable: true"},{"kind":"add","text":"                          properties:"},{"kind":"add","text":"                            gid:"},{"kind":"add","text":"                              example: \"1208222222222222\""},{"kind":"add","text":"                              readOnly: true"},{"kind":"add","text":"                              type: string"},{"kind":"add","text":"                            name:"},{"kind":"add","text":"                              example: Intake triage automation"},{"kind":"add","text":"                              readOnly: true"},{"kind":"add","text":"                              type: string"},{"kind":"add","text":"                            resource_type:"},{"kind":"add","text":"                              example: automation"},{"kind":"add","text":"                              readOnly: true"},{"kind":"add","text":"                              type: string"},{"kind":"add","text":"                          readOnly: true"},{"kind":"add","text":"                          type: object"},{"kind":"ctx","text":"                        credit_source:"},{"kind":"ctx","text":"                          description: Whether the credits were drawn from a paid or free balance."},{"kind":"ctx","text":"..."},{"kind":"ctx","text":"                          type: string"},{"kind":"ctx","text":"                        rule:"},{"kind":"del","text":"                          description: The rule (automation) that ran, as a compact reference. The Rules"},{"kind":"del","text":"                            API is not yet public, so this is not"},{"kind":"add","text":"                          description: The rule (AutomationStep) that ran, as a compact reference."},{"kind":"add","text":"                            Non-null for both standalone rules and multi-step"},{"kind":"add","text":"                            automation steps as long as the step still exists."},{"kind":"add","text":"                            `null` if the step was deleted after the run. The"},{"kind":"add","text":"                            Rules API is not yet public, so this is not"}]},{"id":"chg_fe8e8cbf835c6bad55f4beae99bb6648197c8045eed50fb080107653f5d77e4a","path":"/workspaces/{workspace_gid}/ai_studio/runs","method":"GET","direction":"response","fieldPath":null,"changeType":"response-optional-property-added","detectedAt":"2026-10-02T23:38:24.181148+00:00","classification":"non_breaking","breakKind":null,"summary":"added the optional property `data/items/allOf[subschema #2]/automation` to the response with the `200` status","reasoning":"response.added: response response-optional-property-added -> non_breaking","ruleId":"response.added","classifierVersion":"2026-09-14.1","evidenceStrength":"spec_only","detectionMethod":"openapi_diff","fragment":[]},{"id":"chg_0a62b6c46faf7acccce019bfcdb45a9aed44807582db4fd12f780fa9d930ff13","path":"/workspaces/{workspace_gid}/ai_studio/runs","method":"GET","direction":"response","fieldPath":null,"changeType":"response-property-became-nullable","detectedAt":"2026-10-02T23:38:24.181148+00:00","classification":"ambiguous","breakKind":null,"summary":"the response property `data/items/allOf[subschema #2]/rule` became nullable for the status `200`","reasoning":"override.spec_only_downgrade: response response-property-became-nullable -> ambiguous","ruleId":"override.spec_only_downgrade","classifierVersion":"2026-09-14.1","evidenceStrength":"spec_only","detectionMethod":"openapi_diff","fragment":[]}],"nextCursor":null}