Skip to content

Close out remaining backlog items - #42

Merged
noha merged 3 commits into
masterfrom
close-out-remaining-backlog-items
Aug 1, 2026
Merged

Close out remaining backlog items#42
noha merged 3 commits into
masterfrom
close-out-remaining-backlog-items

Conversation

@noha

@noha noha commented Aug 1, 2026

Copy link
Copy Markdown
Member

No description provided.

noha and others added 3 commits August 1, 2026 17:07
Traced (2026-08-01) whether JSONSchemaObject/JSONSchemaArray>>acceptOpenApi:
is actually reached, rather than relying on the prior "seems unreachable"
assumption from the Stripe session: it IS reached, via
OAVisitor>>visitComponents: (self visitAll: aComponents schemas) visiting
each top-level named schema directly. But by that point in
OAReferenceResolveVisitor>>visitOpenApi:, those schemas are already fully
resolved via #processSchema:/JSONSchemaReferenceResolveVisitor earlier in
the very same method, before super visitOpenApi: is called. Recursing here
would just repeat already-done work - returning self unchanged is correct
given today's call order. Replaced the stale #todo flag with this traced
reasoning instead of leaving it looking like an outstanding task.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
OpenAPICall class>>isAbstract only treated the literal OpenAPICall as
abstract (self = OpenAPICall), not user-defined intermediate base classes
like OpenAPIBasePetCall which also have no #path of their own. Combined
with PetsAPI class>>rootCallClass answering the literal OpenAPICall
instead of its own OpenAPIBasePetCall root, OpenAPI>>buildPaths (via
#withAllSubclasses, which includes the receiver) tried to build a
pathItem for OpenAPIBasePetCall itself and crashed with
doesNotUnderstand: #path. This made /spec (OpenAPISpecCall>>get calls
PetsAPI new specString) unreachable - verified live, and now covered by
a real end-to-end test hitting /spec through the REST delegate.

isAbstract is now structural (not (self respondsTo: #path)) instead of a
literal-class comparison, so it correctly excludes any shared base class
regardless of name. rootCallClass now answers OpenAPIBasePetCall, scoping
buildPaths to PetsAPI's own call hierarchy instead of every OpenAPICall
subclass in the whole image - and lives as an OpenAPI-REST-Tests
extension (not in PetsAPI's own OpenAPI-Core-Tests home package), since
OpenAPIBasePetCall is only defined there.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CI moved to GitHub Actions a while ago; the badge still pointed at the
long-dead Travis CI build.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@noha
noha merged commit 0ba240f into master Aug 1, 2026
3 of 4 checks passed
@noha
noha deleted the close-out-remaining-backlog-items branch August 1, 2026 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant