This repository was archived by the owner on Oct 16, 2026. It is now read-only.
Repository navigation
feat(conformance): schema keyword, credential and discovery conformance - #83
Merged
Merged
Conversation
…ge from manifests - sdk: per-profile exhaustive keyword Disposition (preserve/normalize/consume/reject) - adapter-conformance: probe every classified keyword on the wire in both schema modes; replace schema_max_length with schema_profile (profile schema_version 2) - ci: validate_conformance.py classifies plugins from plugin.toml and requires an adapter-conformance profile and runner test for any provider_adapters
…ed plugin Shared credential-strategy fixtures run through the real component under a scripted wasmtime host. credential_strategies now requires a credential-conformance profile and a crate test that feeds it to the runner. Antigravity fixes found by the suite: preserve host retry-after on refresh transport failures, and treat an empty refresh_token as absent.
…mpiled plugin Shared account-model-source suite drives each compiled component through ownership, endpoint, credential attachment and failure classification, plus exact discovered-model output for recorded provider catalogs. Declaring account_model_sources now requires discovery-conformance.json and a crate test calling the runner. Fix status handling found by the suite: check HTTP status before UTF-8, keep host retry_after on transport failure, and map Antigravity catalog failures (401/403, 429, 5xx, 4xx), empty catalogs and ordering like the other sources.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
SchemaProfile::dispositionandclassified_keywords.schema-keywords.json); adapter profiles areschema_version2 and declareschema_profile. Canonical request ->build_body-> exact wire.claude-code-oauth,antigravity-oauth.account-model-sourcesuite (ownership, endpoint, credential attachment, failure classification, exactdiscovered-model[]) plus per-plugin catalog cases.ai-studio,b-ai,antigravity-oauth.scripts/validate_conformance.pyderives requirements fromplugin.toml:provider_adapters-> adapter,credential_strategies-> credential,account_model_sources-> discovery. Missing profile, wrong name, or no crate test calling the runner fails. "No adapter" is derived, never flagged; host-adapter plugins are covered by Kinetix core adapter evidence, not fake tests.Production fixes found by the suites
protocol_error); hostretry_afterpreserved on transport failure.credential_expired, 429 ->rate_limited, 4xx ->protocol_error, 5xx retryable (was allupstream_unavailable); empty catalog is an error; sorted by id.retry_afterpreserved.Known gaps
auth_flows(PKCE) has no shared suite yet; legacymodel_sources(opencode-free) is not covered.Retry-Afterresponse headers are ignored by OAuth error classification and discovery 429 handling.expires_inis missing (declared in its credential profile, unchanged). It also keeps a separate refresh implementation for discovery, now covered by discovery cases.$idis rejected by ref-inlining profiles regardless of disposition, so$idis probed at the root.Test plan
scripts/run-ci.shpasses locally;cargo clippy --workspace --all-targetsclean