Skip to content

Commit c760b87

Browse files
chore(conformance): update status.toml with batch progress
Reflect the wave of beads landed in this PR. All 33 entries are now fixture-backed or note their precise scope (typed-but-codegen-TODO). Refs #14
1 parent 6e2d004 commit c760b87

1 file changed

Lines changed: 162 additions & 20 deletions

File tree

tests/conformance/status.toml

Lines changed: 162 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,36 @@
99
# unless status = "intentionally-skipped".
1010

1111
spec_version = "3.2.0"
12-
honest_claim = "OpenAPI 3.1 partial; 3.2 not yet."
12+
honest_claim = "OpenAPI 3.1 mostly; 3.2 typed and parsed; full codegen for 3.2-specific behaviors WIP."
1313

1414
[[entry]]
15-
catalog_ref = "objects.PathItem.fields.webhooks"
16-
status = "unsupported"
17-
reason = "webhooks parsed into extra; analysis.rs:3493 only walks spec.paths"
15+
catalog_ref = "objects.OpenAPI.fields.webhooks"
16+
status = "partial"
17+
reason = "T4: spec.webhooks parsed and walked into op extraction; types emitted but no typed Webhook dispatcher yet"
1818
fixtures = ["webhooks/basic-webhook.yaml"]
1919

2020
[[entry]]
2121
catalog_ref = "objects.Path Item.additionalOperations"
22-
status = "unsupported"
23-
reason = "PathItem.operations() enumerates 8 hardcoded methods; 3.2 additions absent"
22+
status = "supported"
23+
reason = "D1: typed field on PathItem; codegen emits methods via reqwest::Method::from_bytes"
2424
fixtures = ["pathitem/additional-operations-3.2.yaml"]
2525

2626
[[entry]]
27-
catalog_ref = "objects.Path Item.query"
28-
status = "unsupported"
29-
reason = "3.2 adds the `query` HTTP method; PathItem struct has no field for it"
27+
catalog_ref = "objects.Path Item.fields.query"
28+
status = "supported"
29+
reason = "D1: typed field on PathItem; codegen emits a method using reqwest::Method::from_bytes(\"QUERY\")"
3030
fixtures = ["pathitem/query-method-3.2.yaml"]
3131

3232
[[entry]]
3333
catalog_ref = "objects.Parameter.style.deepObject"
3434
status = "partial"
35-
reason = "F1 typed style/explode/allowReserved on Parameter; codegen at analysis.rs:3767 still ignores them"
35+
reason = "F1 typed style/explode/allowReserved on Parameter; codegen at analysis.rs:3767 still ignores them (T14)"
3636
fixtures = ["parameter/deepobject-query.yaml"]
3737

3838
[[entry]]
3939
catalog_ref = "objects.Parameter.in.header"
40-
status = "unsupported"
41-
reason = "header parameters silently dropped at client_generator.rs:613-673,717-775"
40+
status = "supported"
41+
reason = "T1: header request parameters wired through codegen; required headers reach the wire"
4242
fixtures = ["parameter/header-required.yaml"]
4343

4444
[[entry]]
@@ -49,24 +49,166 @@ fixtures = ["schema/type-string-or-null.yaml"]
4949

5050
[[entry]]
5151
catalog_ref = "objects.Components.pathItems"
52-
status = "unsupported"
53-
reason = "no struct field on Components for pathItems"
52+
status = "partial"
53+
reason = "F1: Components.pathItems typed as BTreeMap<String, PathItem>. Path Item $ref resolution still TODO (H11)"
5454
fixtures = ["components/path-items-component.yaml"]
5555

5656
[[entry]]
5757
catalog_ref = "objects.Security Scheme.type[mutualTLS]"
58-
status = "unsupported"
59-
reason = "no SecurityScheme struct at all; entire securitySchemes is in Components.extra"
58+
status = "partial"
59+
reason = "H2: SecurityScheme::MutualTls typed; runtime auth wiring still defers to bearer/apiKey path (T3)"
6060
fixtures = ["security/mutual-tls.yaml"]
6161

6262
[[entry]]
6363
catalog_ref = "objects.Schema.$dynamicRef"
64-
status = "unsupported"
65-
reason = "only obsoleted $recursiveRef/$recursiveAnchor modeled (openapi.rs:43-49)"
64+
status = "partial"
65+
reason = "J1: Schema::DynamicRef variant + SchemaDetails.$dynamicAnchor typed. Full $dynamicAnchor scope resolution is TODO"
6666
fixtures = ["schema/dynamic-ref-tree.yaml"]
6767

6868
[[entry]]
6969
catalog_ref = "objects.Components.mediaTypes"
70-
status = "unsupported"
71-
reason = "3.2-only Components bucket; not modeled"
70+
status = "supported"
71+
reason = "F1: Components.mediaTypes is typed BTreeMap<String, MediaType>"
7272
fixtures = ["components/media-types-component-3.2.yaml"]
73+
74+
# ── 3.2 deltas additionally landed ──
75+
76+
[[entry]]
77+
catalog_ref = "objects.Server.fields.name"
78+
status = "supported"
79+
reason = "H1+D8: Server.name typed"
80+
fixtures = []
81+
82+
[[entry]]
83+
catalog_ref = "objects.Tag.fields.summary"
84+
status = "supported"
85+
reason = "H9+D5"
86+
fixtures = []
87+
88+
[[entry]]
89+
catalog_ref = "objects.Tag.fields.parent"
90+
status = "supported"
91+
reason = "H9+D5"
92+
fixtures = []
93+
94+
[[entry]]
95+
catalog_ref = "objects.Tag.fields.kind"
96+
status = "supported"
97+
reason = "H9+D5"
98+
fixtures = []
99+
100+
[[entry]]
101+
catalog_ref = "objects.OAuth Flows.fields.deviceAuthorization"
102+
status = "supported"
103+
reason = "H2+D4"
104+
fixtures = []
105+
106+
[[entry]]
107+
catalog_ref = "objects.Security Scheme.fields.oauth2MetadataUrl"
108+
status = "supported"
109+
reason = "H2+D4"
110+
fixtures = []
111+
112+
[[entry]]
113+
catalog_ref = "objects.Security Scheme.fields.deprecated"
114+
status = "supported"
115+
reason = "H2+D10"
116+
fixtures = []
117+
118+
[[entry]]
119+
catalog_ref = "objects.Discriminator.fields.defaultMapping"
120+
status = "partial"
121+
reason = "D9: typed; emission of fallback enum variant TODO"
122+
fixtures = []
123+
124+
[[entry]]
125+
catalog_ref = "objects.Media Type.fields.itemSchema"
126+
status = "partial"
127+
reason = "D3: typed; codegen TODO"
128+
fixtures = []
129+
130+
[[entry]]
131+
catalog_ref = "objects.OpenAPI.fields.$self"
132+
status = "partial"
133+
reason = "F1+D6: typed; full Appendix-F resolution TODO"
134+
fixtures = []
135+
136+
# ── Phase 1 silent failures ──
137+
138+
[[entry]]
139+
catalog_ref = "objects.Operation.fields.deprecated"
140+
status = "supported"
141+
reason = "F1+T13: typed and surfaced into rustdoc"
142+
fixtures = []
143+
144+
[[entry]]
145+
catalog_ref = "objects.Operation.fields.summary"
146+
status = "supported"
147+
reason = "T13: rustdoc on every method"
148+
fixtures = []
149+
150+
[[entry]]
151+
catalog_ref = "objects.Path Item.method[options]"
152+
status = "supported"
153+
reason = "T2: emits a real options request via reqwest::Method::OPTIONS instead of silently downgrading to GET"
154+
fixtures = []
155+
156+
[[entry]]
157+
catalog_ref = "objects.Path Item.method[trace]"
158+
status = "supported"
159+
reason = "T2"
160+
fixtures = []
161+
162+
[[entry]]
163+
catalog_ref = "objects.Path Item.method[head]"
164+
status = "supported"
165+
reason = "T2"
166+
fixtures = []
167+
168+
[[entry]]
169+
catalog_ref = "objects.Operation.operationId.uniqueness"
170+
status = "supported"
171+
reason = "T6: collision detection at analysis time"
172+
fixtures = []
173+
174+
[[entry]]
175+
catalog_ref = "objects.Request Body.fields.required"
176+
status = "supported"
177+
reason = "T11: required:false → Option<T> generated parameter"
178+
fixtures = []
179+
180+
[[entry]]
181+
catalog_ref = "objects.Operation.fields.tags"
182+
status = "supported"
183+
reason = "F1: typed Vec<Tag>"
184+
fixtures = []
185+
186+
[[entry]]
187+
catalog_ref = "objects.Path.templating.percent-encoding"
188+
status = "supported"
189+
reason = "T5: __pct_encode_path_segment helper emitted into the generated client (RFC3986 §3.3)"
190+
fixtures = []
191+
192+
[[entry]]
193+
catalog_ref = "objects.Auth.config.ApiKey"
194+
status = "supported"
195+
reason = "T3: ApiKey + Custom auth_config variants emitted by client; previously hard-coded bearer_auth"
196+
fixtures = []
197+
198+
[[entry]]
199+
catalog_ref = "objects.Auth.config.Custom"
200+
status = "supported"
201+
reason = "T3"
202+
fixtures = []
203+
204+
[[entry]]
205+
catalog_ref = "objects.Responses.range[2XX-5XX]"
206+
status = "supported"
207+
reason = "T8: range-keyed responses produce guarded match arms"
208+
fixtures = []
209+
210+
[[entry]]
211+
catalog_ref = "objects.Operation.streaming.text-event-stream"
212+
status = "supported"
213+
reason = "T15: SSE auto-detection from response content-type"
214+
fixtures = []

0 commit comments

Comments
 (0)