Skip to content

Commit cb29040

Browse files
authored
Address typed output compatibility gaps (#3433)
* preserve typed tool compatibility * retain typed output fidelity * tighten typed output contracts
1 parent 2d5ad6e commit cb29040

58 files changed

Lines changed: 1852 additions & 828 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/actions/build-ui/action.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Build UI
2-
description: Restore cached UI HTML artifacts, or set up Node and run script/build-ui on cache miss.
2+
description: Restore tested UI HTML artifacts, or set up Node and run script/build-ui on cache miss.
33

44
runs:
55
using: composite
@@ -13,7 +13,7 @@ runs:
1313
pkg/github/ui_dist/issue-write.html
1414
pkg/github/ui_dist/pr-write.html
1515
pkg/github/ui_dist/pr-edit.html
16-
key: ui-dist-v2-${{ hashFiles('ui/package-lock.json', 'ui/package.json', 'ui/index.html', 'ui/tsconfig*.json', 'ui/vite.config.ts', 'ui/src/**', 'ui/scripts/**') }}
16+
key: ui-dist-v3-${{ hashFiles('.github/actions/build-ui/action.yml', 'script/build-ui', 'ui/package-lock.json', 'ui/package.json', 'ui/index.html', 'ui/tsconfig*.json', 'ui/vite.config.ts', 'ui/src/**', 'ui/scripts/**') }}
1717
enableCrossOsArchive: true
1818

1919
- name: Set up Node.js

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1518,7 +1518,7 @@ For negotiated supported protocol versions `2026-07-28` or newer, the consolidat
15181518

15191519
- **search_repositories** - Search repositories
15201520
- **OAuth Challenge Scopes**: `repo`
1521-
- `minimal_output`: Return minimal repository information (default: true). When false, returns full GitHub API repository objects. (boolean, optional)
1521+
- `minimal_output`: Return minimal repository information (default: true). When false, modern clients receive additional curated repository details, not the complete GitHub API object. Legacy clients retain full GitHub API repository objects. (boolean, optional)
15221522
- `order`: Sort order (string, optional)
15231523
- `page`: Page number for pagination (min 1) (number, optional)
15241524
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)

‎docs/feature-flags.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,8 +402,8 @@ as output formatting) won't appear here.
402402
- `confidence_threshold`: Minimum similarity threshold a candidate must meet to be returned; higher values are stricter. When omitted, the API's high-precision default is used. The scale is defined by the API, so no client-side bounds are enforced. (number, optional)
403403
- `issue_number`: The number of the existing issue to find duplicates for (number, required)
404404
- `owner`: The owner of the repository (string, required)
405-
- `page`: Page number for pagination (min 1) (number, optional)
406-
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
405+
- `page`: Page number for pagination (min 0). Zero is forwarded for the GitHub API default. (number, optional)
406+
- `perPage`: Results per page for pagination (min 0, max 100). Zero is forwarded for the GitHub API default. (number, optional)
407407
- `repo`: The name of the repository (string, required)
408408

409409
### `thread_resolution_reason`

‎pkg/github/__toolsnaps__/actions_get.snap‎

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,221 @@
4343
"name": "actions_get",
4444
"outputSchema": {
4545
"additionalProperties": false,
46+
"oneOf": [
47+
{
48+
"properties": {
49+
"artifact": {
50+
"not": {
51+
"description": "Any value."
52+
}
53+
},
54+
"logs": {
55+
"not": {
56+
"description": "Any value."
57+
}
58+
},
59+
"method": {
60+
"enum": [
61+
"get_workflow"
62+
]
63+
},
64+
"usage": {
65+
"not": {
66+
"description": "Any value."
67+
}
68+
},
69+
"workflow_job": {
70+
"not": {
71+
"description": "Any value."
72+
}
73+
},
74+
"workflow_run": {
75+
"not": {
76+
"description": "Any value."
77+
}
78+
}
79+
}
80+
},
81+
{
82+
"properties": {
83+
"artifact": {
84+
"not": {
85+
"description": "Any value."
86+
}
87+
},
88+
"logs": {
89+
"not": {
90+
"description": "Any value."
91+
}
92+
},
93+
"method": {
94+
"enum": [
95+
"get_workflow_run"
96+
]
97+
},
98+
"usage": {
99+
"not": {
100+
"description": "Any value."
101+
}
102+
},
103+
"workflow": {
104+
"not": {
105+
"description": "Any value."
106+
}
107+
},
108+
"workflow_job": {
109+
"not": {
110+
"description": "Any value."
111+
}
112+
}
113+
},
114+
"required": [
115+
"workflow_run"
116+
]
117+
},
118+
{
119+
"properties": {
120+
"artifact": {
121+
"not": {
122+
"description": "Any value."
123+
}
124+
},
125+
"logs": {
126+
"not": {
127+
"description": "Any value."
128+
}
129+
},
130+
"method": {
131+
"enum": [
132+
"get_workflow_job"
133+
]
134+
},
135+
"usage": {
136+
"not": {
137+
"description": "Any value."
138+
}
139+
},
140+
"workflow": {
141+
"not": {
142+
"description": "Any value."
143+
}
144+
},
145+
"workflow_run": {
146+
"not": {
147+
"description": "Any value."
148+
}
149+
}
150+
}
151+
},
152+
{
153+
"properties": {
154+
"logs": {
155+
"not": {
156+
"description": "Any value."
157+
}
158+
},
159+
"method": {
160+
"enum": [
161+
"download_workflow_run_artifact"
162+
]
163+
},
164+
"usage": {
165+
"not": {
166+
"description": "Any value."
167+
}
168+
},
169+
"workflow": {
170+
"not": {
171+
"description": "Any value."
172+
}
173+
},
174+
"workflow_job": {
175+
"not": {
176+
"description": "Any value."
177+
}
178+
},
179+
"workflow_run": {
180+
"not": {
181+
"description": "Any value."
182+
}
183+
}
184+
},
185+
"required": [
186+
"artifact"
187+
]
188+
},
189+
{
190+
"properties": {
191+
"artifact": {
192+
"not": {
193+
"description": "Any value."
194+
}
195+
},
196+
"logs": {
197+
"not": {
198+
"description": "Any value."
199+
}
200+
},
201+
"method": {
202+
"enum": [
203+
"get_workflow_run_usage"
204+
]
205+
},
206+
"workflow": {
207+
"not": {
208+
"description": "Any value."
209+
}
210+
},
211+
"workflow_job": {
212+
"not": {
213+
"description": "Any value."
214+
}
215+
},
216+
"workflow_run": {
217+
"not": {
218+
"description": "Any value."
219+
}
220+
}
221+
}
222+
},
223+
{
224+
"properties": {
225+
"artifact": {
226+
"not": {
227+
"description": "Any value."
228+
}
229+
},
230+
"method": {
231+
"enum": [
232+
"get_workflow_run_logs_url"
233+
]
234+
},
235+
"usage": {
236+
"not": {
237+
"description": "Any value."
238+
}
239+
},
240+
"workflow": {
241+
"not": {
242+
"description": "Any value."
243+
}
244+
},
245+
"workflow_job": {
246+
"not": {
247+
"description": "Any value."
248+
}
249+
},
250+
"workflow_run": {
251+
"not": {
252+
"description": "Any value."
253+
}
254+
}
255+
},
256+
"required": [
257+
"logs"
258+
]
259+
}
260+
],
46261
"properties": {
47262
"artifact": {
48263
"additionalProperties": false,
@@ -742,6 +957,9 @@
742957
]
743958
}
744959
},
960+
"required": [
961+
"method"
962+
],
745963
"type": "object"
746964
}
747965
}

‎pkg/github/__toolsnaps__/actions_list.snap‎

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,110 @@
128128
"name": "actions_list",
129129
"outputSchema": {
130130
"additionalProperties": false,
131+
"oneOf": [
132+
{
133+
"properties": {
134+
"artifacts": {
135+
"not": {
136+
"description": "Any value."
137+
}
138+
},
139+
"method": {
140+
"enum": [
141+
"list_workflows"
142+
]
143+
},
144+
"workflow_jobs": {
145+
"not": {
146+
"description": "Any value."
147+
}
148+
},
149+
"workflow_runs": {
150+
"not": {
151+
"description": "Any value."
152+
}
153+
}
154+
}
155+
},
156+
{
157+
"properties": {
158+
"artifacts": {
159+
"not": {
160+
"description": "Any value."
161+
}
162+
},
163+
"method": {
164+
"enum": [
165+
"list_workflow_runs"
166+
]
167+
},
168+
"workflow_jobs": {
169+
"not": {
170+
"description": "Any value."
171+
}
172+
},
173+
"workflows": {
174+
"not": {
175+
"description": "Any value."
176+
}
177+
}
178+
},
179+
"required": [
180+
"workflow_runs"
181+
]
182+
},
183+
{
184+
"properties": {
185+
"artifacts": {
186+
"not": {
187+
"description": "Any value."
188+
}
189+
},
190+
"method": {
191+
"enum": [
192+
"list_workflow_jobs"
193+
]
194+
},
195+
"workflow_runs": {
196+
"not": {
197+
"description": "Any value."
198+
}
199+
},
200+
"workflows": {
201+
"not": {
202+
"description": "Any value."
203+
}
204+
}
205+
},
206+
"required": [
207+
"workflow_jobs"
208+
]
209+
},
210+
{
211+
"properties": {
212+
"method": {
213+
"enum": [
214+
"list_workflow_run_artifacts"
215+
]
216+
},
217+
"workflow_jobs": {
218+
"not": {
219+
"description": "Any value."
220+
}
221+
},
222+
"workflow_runs": {
223+
"not": {
224+
"description": "Any value."
225+
}
226+
},
227+
"workflows": {
228+
"not": {
229+
"description": "Any value."
230+
}
231+
}
232+
}
233+
}
234+
],
131235
"properties": {
132236
"artifacts": {
133237
"additionalProperties": false,
@@ -856,6 +960,9 @@
856960
]
857961
}
858962
},
963+
"required": [
964+
"method"
965+
],
859966
"type": "object"
860967
}
861968
}

0 commit comments

Comments
 (0)