chore(deps): bump praxis core to 0.5.5 and pingora fork to 0.9.0 - #1188
Conversation
Praxis 0.5.5 bumps its pingora fork to 0.9.0, so the workspace pins for
quixotic-plecostomus-{core,http,proxy} move 0.8.2 -> 0.9.0 to keep a single
pingora_core in the graph. Adapt to three breaking API changes:
- FilterPipeline::build_with_chains now takes &InsecureOptions; pass
config.insecure_options in the server and test-utils pipeline builders.
- AdminEndpointOptions gained a stats field; set it to None.
- HttpFilterContext gained prior_pre_read_mutations and upstream_reached;
add them to the test-context constructors.
Regenerate four filter docs: the 0.5.5 schema generator renders the
on_invalid field as its enum type name (OnInvalidBehavior) instead of
inlining the variants.
Signed-off-by: Sébastien Han <seb@redhat.com>
The 0.5.5 bump's regenerated filter docs rendered the shared `on_invalid` field as its enum type name `OnInvalidBehavior` instead of inlining `continue | reject | error`. That output was an artifact of a local sibling praxis checkout lacking the enum in payload_processing; the crates.io 0.5.5 source (identical to 0.5.4 for on_invalid.rs) inlines the variants. Revert the four docs to match what `cargo xtask lint-filter-docs` generates in CI. Signed-off-by: Sébastien Han <seb@redhat.com>
|
nice |
|
@leseb ty! I kicked a couple of the flakes in the merge-queue job Edit: The CodeQL ( Suggested minimal fix in .github/workflows/codeql.yaml: - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938
with:
category: "/language:${{ matrix.language }}"
upload: ${{ github.event_name == 'merge_group' && 'never' || 'always' }}Keep the merge_group trigger so CodeQL remains a required merge-queue gate, but skip SARIF upload for the ephemeral gh-readonly-queue ref. Normal PR and main runs will continue uploading results. |
CodeQL's `Analyze (rust)` gate failed in the merge queue because the analyze step defaults to `upload: always` and code-scanning rejects uploads for the ephemeral `gh-readonly-queue` ref that `merge_group` events run against. Set `upload: never` for `merge_group` (else `always`) so the analysis still runs as a required gate while the throwaway ref no longer attempts an upload; PR and main runs keep uploading results. Signed-off-by: Sébastien Han <seb@redhat.com>
Thanks, next time feel free to directly push into my branch :) |
The praxis 0.5.5 bump (praxis-proxy#1188) changed the generated rendering of the on_invalid field from an inline variant list to the OnInvalidBehavior type name, but did not regenerate the affected filter docs. Regenerate a2a, anthropic_messages_format, mcp, and openai_responses_format via cargo xtask generate-filter-docs so lint-filter-docs passes against 0.5.5. Refs praxis-proxy#960 Signed-off-by: Sébastien Han <seb@redhat.com>
Integrate origin/main into the praxis-proxy#959 file_search outbound-chain migration. main advanced past the branch point with the praxis 0.5.5 bump (praxis-proxy#1188, pingora fork 0.9.0) and praxis-proxy#1162 "bound file search callout decoding", which rewrote the same file_search_callout/client.rs decode path. Conflicts resolved: - apis/src/openai/responses/file_search_callout/client.rs: keep praxis-proxy#1162's bounded streaming DeserializeSeed decoder for the decode path and praxis-proxy#959's FilteredSubrequestExecutor / StagedUpstream[Fallback] outbound_chain fetch path. The two rewrites touch disjoint regions and share the same parse_response_body_with_deadline -> parse_response_body -> deserialize_search_results wrapper, so the result is a clean union: praxis-proxy#959's simple serde_json::from_slice::<VectorStoreSearchResponse> decode and the VectorStoreSearchResponse type are dropped, praxis-proxy#1162's DecodedBudget accounting and response_admission_units are kept, the old RESPONSE_DECODE_MEMORY_MULTIPLIER is dropped. Only the serde import block was a textual conflict; resolved to the union of both sides. - tests/integration/sdk/openai/test_openai_responses_vllm.py: keep both main's decoded-results assertions and praxis-proxy#959's VectorStoreWitnessHandler outbound-chain header proof (x-vector-store-client marker). Cargo.toml / Cargo.lock adopt main's praxis 0.5.5 + pingora fork 0.9.0. Known follow-up: the branch still requires StagedUpstream / StagedUpstreamFallback to be upstreamed into a praxis release before it compiles against 0.5.5 -- cargo check -p praxis-ai-apis --lib currently reports exactly one error (E0432 for those two imports) and nothing else, confirming the integration is otherwise coherent. Tracked on draft PR praxis-proxy#1185. Signed-off-by: Sébastien Han <seb@redhat.com>
Summary
Bumps the praxis core crates (
praxis-proxy*) from0.5.4to0.5.5; since 0.5.5 bumps its pingora fork to 0.9.0, the workspace pins forquixotic-plecostomus-{core,http,proxy}also move0.8.2 → 0.9.0to keep a singlepingora_corein the graph. Adapts to the three breaking API changes in 0.5.5:FilterPipeline::build_with_chainsnow takes&InsecureOptions(passedconfig.insecure_options),AdminEndpointOptionsgained astatsfield (set toNone), andHttpFilterContextgainedprior_pre_read_mutationsandupstream_reached(added to the test-context constructors). Also regenerates four filter docs where the 0.5.5 schema generator now renders theon_invalidfield as its enum type nameOnInvalidBehaviorinstead of inlining the variants.Related issue
N/A — dependency maintenance bump.
Validation
cargo test -p praxis-ai-apis -p praxis-ai-filters -p praxis-ai-proxy -p praxis-ai-llmd-ext-proc --lib(1340 passed; the 2credential_injectfile-watcher tests fail identically on the base0.5.4— pre-existing macOS fsevents behavior, they pass on Linux/inotify in CI)make lintmake docChecklist
Signed-off-bytrailer.Breaking changes
None to
praxis-ai's public config or behavior; this is an internal dependency bump that adapts call sites to praxis 0.5.5's revised APIs.