Skip to content

docs: AI gateway documentation overhaul#328

Open
rikatz wants to merge 3 commits into
praxis-proxy:mainfrom
rikatz:docs/overhaul
Open

docs: AI gateway documentation overhaul#328
rikatz wants to merge 3 commits into
praxis-proxy:mainfrom
rikatz:docs/overhaul

Conversation

@rikatz

@rikatz rikatz commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Expand docs hub with guides (OpenAI Responses, token counting), architecture pages, and filter cross-links
  • Add ai-guardrails example with integration test; shrink lint-example-tests SKIP list

Test plan

  • Conventions CI (signoff, signed commits, no AI authorship)
  • make lint / cargo xtask lint-example-tests
  • Integration tests for new ai-guardrails example

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Overhauls the AI gateway documentation, generates filter-to-example references, and adds an integration-tested guardrails example.

Changes:

  • Adds OpenAI Responses, token-counting, and crate-architecture guides.
  • Expands generated filter documentation with related examples.
  • Adds the guardrails example and reduces the example-test allowlist.

Reviewed changes

Copilot reviewed 40 out of 40 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
xtask/src/lint_example_tests.rs Reduces skipped examples.
xtask/src/filter_docs.rs Enhances generated filter docs.
tests/integration/tests/suite/examples/mod.rs Registers guardrails tests.
tests/integration/tests/suite/examples/ai_guardrails.rs Tests guardrails example passthrough.
examples/README.md Documents routing and guardrails examples.
examples/configs/ai-guardrails.yaml Adds guardrails configuration.
docs/token-counting.md Adds token-counting guide.
docs/README.md Reorganizes documentation hub.
docs/quickstart.md Updates next-step links.
docs/proposals.md Corrects discussion URL.
docs/openai-responses.md Adds Responses API guide.
docs/filters/tool_parse.md Adds related examples.
docs/filters/token_usage_headers.md Updates generated reference.
docs/filters/token_count.md Updates generated reference.
docs/filters/responses_proxy.md Adds related examples.
docs/filters/README.md Updates filter overview.
docs/filters/prompt_enrich.md Adds related example.
docs/filters/openai_stream_events.md Adds related examples.
docs/filters/openai_responses_validate.md Adds related examples.
docs/filters/openai_responses_rehydrate.md Adds related examples.
docs/filters/openai_responses_model_rewrite.md Updates type formatting and examples.
docs/filters/openai_responses_format.md Adds related examples.
docs/filters/openai_response_store.md Updates generated reference.
docs/filters/openai_conversations.md Updates generated reference.
docs/filters/model_to_header.md Adds related example.
docs/filters/mcp.md Adds related examples.
docs/filters/extensions.md Updates dependency and generation guidance.
docs/filters/anthropic_validate.md Adds related example.
docs/filters/anthropic_to_openai.md Adds related example.
docs/filters/anthropic_stream_events.md Adds related example.
docs/filters/anthropic_messages_protocol.md Adds related example.
docs/filters/anthropic_messages_format.md Adds related examples.
docs/filters/ai_guardrails.md Adds related example.
docs/filters/a2a.md Updates type formatting and examples.
docs/features.md Refreshes feature descriptions.
docs/developing/getting-started.md Corrects binary name.
docs/architecture/response-store.md Corrects source paths.
docs/architecture/crate-layout.md Adds crate architecture guide.
docs/architecture/ai-inference.md Updates core ownership and paths.
docs/architecture/agentic-protocols.md Updates agentic module paths.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread xtask/src/filter_docs.rs
Comment thread xtask/src/filter_docs.rs Outdated
Comment thread docs/features.md Outdated
Comment thread examples/configs/ai-guardrails.yaml Outdated
Comment thread docs/token-counting.md Outdated
Comment thread docs/architecture/crate-layout.md Outdated
Copilot AI review requested due to automatic review settings July 9, 2026 23:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 41 out of 41 changed files in this pull request and generated 5 comments.

Comment thread xtask/src/filter_docs.rs Outdated
Comment thread docs/token-counting.md Outdated
Comment thread examples/configs/ai-guardrails.yaml Outdated
Comment thread docs/features.md Outdated
Comment thread xtask/src/filter_docs.rs
Comment on lines +1636 to +1642
let needle = format!("filter: {filter_name}");
let mut matches = Vec::new();
for path in yaml_files {
let Ok(content) = fs::read_to_string(&path) else {
continue;
};
if content.contains(&needle)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged — not fixing in this docs PR. Substring matching has no false positives in current examples; YAML-aware exact filter: matching is reasonable follow-up if the example set grows.

Copilot AI review requested due to automatic review settings July 9, 2026 23:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 41 out of 41 changed files in this pull request and generated 2 comments.

Comment thread xtask/src/filter_docs.rs
Comment on lines +17 to 18
// Uses core `json_body_field`; covered by praxis core examples/tests.
"ai-inference-body-based-routing.yaml",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged — not fixing in this docs PR. model-to-header-routing.yaml is back on the SKIP list with an explicit justification; wiring model_to_header.rs to load_example_config is follow-up work.

Copilot AI review requested due to automatic review settings July 9, 2026 23:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 42 out of 42 changed files in this pull request and generated 3 comments.

// All configs are skipped until tests/integration is re-enabled.
"a2a-classifier-routing.yaml",
"a2a-task-routing.yaml",
// Uses core `json_body_field`; covered by praxis core examples/tests.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as the earlier SKIP-thread comment: kept on SKIP intentionally; integration test still uses inline YAML in this PR.

Comment thread xtask/src/filter_docs.rs
Comment thread docs/openai-responses.md Outdated
Expand the docs hub with OpenAI Responses and token-counting
guides, crate-layout architecture, and generated filter docs
with navigable example links. Add ai-guardrails example and
integration test, shrink the example-test SKIP list, and
address review feedback (guardrails scaffold labeling, issue
tracker links, filter_metadata docs, and config-note link
normalization).

Signed-off-by: Ricardo Pchevuzinske Katz <katz@redhat.com>
Copilot AI review requested due to automatic review settings July 10, 2026 00:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 42 out of 42 changed files in this pull request and generated 4 comments.

Comment thread docs/filters/extensions.md Outdated
Comment on lines +49 to +50
let parsed: serde_json::Value = serde_json::from_str(&body).expect("backend should echo valid JSON");
assert_eq!(parsed["model"], "gpt-4o", "body should pass through unchanged");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged — not expanding in this PR. The test verifies status 200 and backend echo; asserting the full JSON payload is a reasonable follow-up for stronger pass-through coverage.

Comment thread examples/configs/ai-guardrails.yaml Outdated
Comment thread docs/features.md Outdated
Clarify filter_metadata token phase-ordering in extensions.md,
drop stale praxis-proxy#48 references from guardrails docs, and keep
model-to-header-routing.yaml on the SKIP list.

Signed-off-by: Ricardo Pchevuzinske Katz <katz@redhat.com>
Copilot AI review requested due to automatic review settings July 10, 2026 00:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 42 out of 42 changed files in this pull request and generated 2 comments.

Comment thread docs/filters/ai_guardrails.md
Comment thread docs/features.md Outdated
Update guardrails filter rustdoc and regenerate filter pages so
they match the pass-through example. Fix awkward praxis-proxy#50 link wording
in features.md.

Signed-off-by: Ricardo Pchevuzinske Katz <katz@redhat.com>
Copilot AI review requested due to automatic review settings July 10, 2026 00:18

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 44 out of 44 changed files in this pull request and generated no new comments.

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.

2 participants