Repository navigation
fix(pumas): consume the Pumas v0.8 additive typed HTTP contract - #124
Merged
Merged
Conversation
Pumas v0.8 (feat/v080-consumer-api, 4c79cd8e) grows typed responses additively and makes error.outcome authoritative. Tuldok refused valid responses and misreported refusals. - Capabilities: validate only the fields, capabilities (chat, image generation, image-to-text) and option bounds Tuldok uses; ignore context_tokens, multimodal_embedding/decision, new formats, reasons, options and fields; select by name; drop list-length caps (1 MiB body bound instead). - Errors: classify by error.outcome, not HTTP status (404/409 are ordinary refusals); accept request_id null; keep unknown codes; show Pumas' bounded error.message in job/UI errors, capability refusals and pumas_error bodies on OpenAI-compatible routes (after redaction). - Results: ignore additive envelope/result fields. - Image-to-text: no fixed 2048 max_tokens cap; the live bound follows the served context. Image facts are checked only when advertised. - Model listing prefers GET /v1/served-models (profiles shown), falling back to /v1/models on 404. - Repin the six actual DTO schema exports, source-derived capability fixture and source.json to 4c79cd8e; update the consumer contract doc. The PR51 advertisement decoder stays closed because it is retained as evidence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ement The gateway advertisement decoder was closed: any field Pumas added to the advertisement, or more than 64 entries in an open list, made the gateway disappear from scans. Required fields are now checked for presence and type only. Unknown fields are ignored and dropped from the decoded advertisement, so the stored build observation keeps only the known fields; list-length caps give way to the 64 KiB body bound. Missing required fields, wrong types, unsupported schema versions and malformed endpoints still fail, now as descriptor.Rejected with a reason naming the field. A gateway scan returns refused advertisements under `rejected` with their reasons, and the chooser shows them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The vision gateway fixture is projected from the Pumas DTOs, which now also advertise decision and multimodal_embedding. Pumas responses grow additively, so the browser flow asserts image_to_text is offered rather than an exact capability count. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #123 (
perf/fast-project-open-20261102). Retarget tomainonce #123 merges./v1/capabilitiesand error responses are read additively. A new capability, option, reason or error code no longer discards the whole response, which previously would have disabled image captioning./.well-known/pumasadvertisement is decoded openly: unknown fields are ignored and not stored. Missing required fields, wrong types, unsupported schema versions and malformed endpoints are still refused, asdescriptor.Rejected, with a reason naming the field. A gateway scan lists refused advertisements and their reasons instead of hiding them.Tests: gateway and discovery suites pass. Database-backed modules need
TULDOK_DATABASE_URLand were not run locally.Pumas side: MrScripty/Pumas-Library#76.
🤖 Generated with Claude Code