fix(spec): quote all remaining comma-bearing flow descriptions (#22)

openapi-generator flagged 3 more phantom keys in parameter/schema descriptions
(provider '(slack, github)', state 'HMAC-signed, single-use', etc). Generalize
the quote fix to every inline flow description ending a map; comprehensive
parse-based scan across params/schemas/responses now reports 0 phantom keys
(examples[] is valid OpenAPI 3.1 JSON-Schema, not a phantom). 10 descriptions
quoted across admin/exec/framework/integrations/prompts/tasks/tracker/visor.

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
2026-07-04 15:48:35 -07:00
committed by GitHub
co-authored by Hanzo Dev
parent 43a100c1fc
commit a73aa3736c
9 changed files with 20 additions and 27 deletions
+1 -1
View File
@@ -457,7 +457,7 @@ components:
type: object
required: [amountCents]
properties:
amountCents: { type: integer, format: int64, description: Positive credit to add (capped at 10,000,000 cents per grant) }
amountCents: { type: integer, format: int64, description: "Positive credit to add (capped at 10,000,000 cents per grant)" }
currency: { type: string, default: usd }
reason: { type: string, description: Operator justification (recorded in the audit trail) }
CreditResult:
+1 -1
View File
@@ -130,7 +130,7 @@ components:
type: object
required: [lang, code]
properties:
lang: { type: string, description: Language / runtime (e.g. python, node) }
lang: { type: string, description: "Language / runtime (e.g. python, node)" }
code: { type: string }
files: { type: array, description: Optional input files, items: { $ref: '#/components/schemas/ExecFile' } }
ExecFile:
+2 -2
View File
@@ -213,7 +213,7 @@ paths:
summary: List documents of a DocType
operationId: listDocuments
parameters:
- { name: filters, in: query, schema: { type: string }, description: 'JSON object of field→value filters (declared fields, name, or docstatus)' }
- { name: filters, in: query, schema: { type: string }, description: "'JSON object of field→value filters (declared fields, name, or docstatus)'" }
- { name: fields, in: query, schema: { type: string }, description: 'Comma list or JSON array of field names to project' }
- { name: order_by, in: query, schema: { type: string }, description: 'field [asc|desc]' }
- { name: limit, in: query, schema: { type: integer, default: 100 } }
@@ -387,6 +387,6 @@ components:
properties:
name: { type: string }
doctype: { type: string }
docstatus: { type: integer, enum: [0, 1, 2], description: '0=draft, 1=submitted, 2=cancelled' }
docstatus: { type: integer, enum: [0, 1, 2], description: "'0=draft, 1=submitted, 2=cancelled'" }
createdAt: { type: integer, format: int64 }
updatedAt: { type: integer, format: int64 }
+10 -17
View File
@@ -27183,7 +27183,7 @@ paths:
in: query
schema:
type: string
description: "JSON object of field\u2192value filters (declared fields, name, or docstatus)"
description: "'JSON object of field\u2192value filters (declared fields, name, or docstatus)'"
- name: fields
in: query
schema:
@@ -34321,8 +34321,7 @@ paths:
required: true
schema:
type: string
description: Signed
single-use link state: null
description: Signed, single-use link state
responses:
'302':
description: Redirect to Slack sign-in
@@ -34399,8 +34398,7 @@ paths:
required: true
schema:
type: string
description: Provider slug (e.g. slack
github): null
description: Provider slug (e.g. slack, github)
get:
tags:
- Providers
@@ -54563,7 +54561,7 @@ paths:
required: true
schema:
type: string
description: Engine resource path (e.g. namespaces, nexus)
description: '''Engine resource path (e.g. namespaces, nexus)'''
responses:
'200':
description: Engine JSON
@@ -55817,9 +55815,7 @@ components:
amountCents:
type: integer
format: int64
description: Positive credit to add (capped at 10
0: null
000 cents per grant): null
description: Positive credit to add (capped at 10,000,000 cents per grant)
currency:
type: string
default: usd
@@ -64327,8 +64323,7 @@ components:
properties:
lang:
type: string
description: Language / runtime (e.g. python
node): null
description: Language / runtime (e.g. python, node)
code:
type: string
files:
@@ -64822,7 +64817,7 @@ components:
- 0
- 1
- 2
description: 0=draft, 1=submitted, 2=cancelled
description: '''0=draft, 1=submitted, 2=cancelled'''
createdAt:
type: integer
format: int64
@@ -73743,8 +73738,7 @@ components:
type: array
items:
type: integer
description: Version numbers
newest first: null
description: Version numbers, newest first
labels:
type: array
items:
@@ -75747,7 +75741,7 @@ components:
type: string
identifier:
type: string
description: KEY-<number>, the human handle
description: '''KEY-<number>, the human handle'''
projectKey:
type: string
number:
@@ -76221,8 +76215,7 @@ components:
type: string
dryRun:
type: boolean
description: When true
return a price quote and spend nothing: null
description: When true, return a price quote and spend nothing
visor_MachineView:
type: object
description: A machine, shaped for the console (org-scoped name as id).
+2 -2
View File
@@ -86,7 +86,7 @@ paths:
description: Sets a `__Host-` init cookie and redirects to Slack sign-in. State-authed (no bearer).
security: []
parameters:
- { name: state, in: query, required: true, schema: { type: string }, description: Signed, single-use link state }
- { name: state, in: query, required: true, schema: { type: string }, description: "Signed, single-use link state" }
responses:
'302': { description: Redirect to Slack sign-in }
'400': { description: Invalid or expired link }
@@ -126,7 +126,7 @@ paths:
/v1/integrations/{provider}:
parameters:
- { name: provider, in: path, required: true, schema: { type: string }, description: Provider slug (e.g. slack, github) }
- { name: provider, in: path, required: true, schema: { type: string }, description: "Provider slug (e.g. slack, github)" }
get:
tags: [Providers]
summary: Get one provider with this org's connection status
+1 -1
View File
@@ -114,7 +114,7 @@ components:
properties:
name: { type: string }
type: { type: string }
versions: { type: array, items: { type: integer }, description: Version numbers, newest first }
versions: { type: array, items: { type: integer }, description: "Version numbers, newest first" }
labels: { type: array, items: { type: string } }
tags: { type: array, items: { type: string } }
lastUpdatedAt: { type: string, format: date-time }
+1 -1
View File
@@ -97,7 +97,7 @@ paths:
summary: Engine JSON API (namespaces, workflows, activities, …), identity-gated
operationId: tasksGet
parameters:
- { name: resource, in: path, required: true, schema: { type: string }, description: 'Engine resource path (e.g. namespaces, nexus)' }
- { name: resource, in: path, required: true, schema: { type: string }, description: "'Engine resource path (e.g. namespaces, nexus)'" }
responses:
'200': { description: Engine JSON, content: { application/json: { schema: { type: object, additionalProperties: true } } } }
'403': { $ref: '#/components/responses/IdentityRequired' }
+1 -1
View File
@@ -190,7 +190,7 @@ components:
type: object
properties:
id: { type: string }
identifier: { type: string, description: 'KEY-<number>, the human handle' }
identifier: { type: string, description: "'KEY-<number>, the human handle'" }
projectKey: { type: string }
number: { type: integer }
title: { type: string }
+1 -1
View File
@@ -380,7 +380,7 @@ components:
size: { type: string, description: Machine size slug (or use instanceType) }
instanceType: { type: string }
region: { type: string }
dryRun: { type: boolean, description: When true, return a price quote and spend nothing }
dryRun: { type: boolean, description: "When true, return a price quote and spend nothing" }
PoolRequest:
type: object
required: [provider]