docs: provider counts + architecture attribution sweep (WOR-163, WOR-172)#109
Merged
Merged
Conversation
Closes WOR-163: align provider-count + routing-strategy claims across llms.txt, docs/, README.md, and the test assertion. Code reality is 43 native providers (crates/sbproxy-ai/data/ai_providers.yml) and 10 routing strategies (crates/sbproxy-ai/src/routing.rs). Previously these docs were stale at 20 / 36 / 9. Adds scripts/check-doc-drift.sh + .github/workflows/docs-ci.yml so the stale strings cannot reappear. Bumps providers.rs assertions from >= 38 to >= 43. Partially addresses WOR-172 (sbproxy-side bullets): - docs/architecture.md re-attributes WAF/DDoS/CSRF to sbproxy-modules and clarifies what sbproxy-security actually owns. - crates/sbproxy-modules/src/auth/mod.rs Auth::Digest rustdoc rewritten to describe the real RFC 7616 implementation (not "placeholder"). - crates/sbproxy-httpkit/src/lib.rs rustdoc narrowed to reflect the current bufferpool surface. - docs/configuration.md aligned with the actual CLI shape from crates/sbproxy/src/main.rs (explicit path or SB_CONFIG_FILE, validate <path> / --check). Enterprise-side WOR-172 bullets (CLAUDE.md, Dockerfile.proxy, Cargo.toml path renames, ingest lib.rs rustdoc) ship in a parallel enterprise PR.
scripts/docs-ci.sh runs under set -euo pipefail. When ENTERPRISE_ROOT is unset (the OSS-only repo never sets it), the existence check on line 58 errored out with `ENTERPRISE_ROOT: unbound variable` and the docs-ci workflow exited 1 before any link or code-block check ran. Default it to empty at the top of the script and gate the directory check on a non-empty value so the OSS path stays clean and an outer caller in a meta-repo can still point at an enterprise tree. Surfaced by the docs path-trigger expansion in the previous commit; not a behavioural change to the link or code-block checks.
86f8cb3 to
34525a4
Compare
rust-script v0.36.0 does not implement --check; passing it errors with "unexpected argument '--check' found" and exit code 2. The rust-script branch in scripts/docs-ci.sh therefore failed every non-skipped rust block. In practice all but one of the doc blocks were tagged no_run/ignore and bypassed the checker, so the bug only surfaced now that the docs-ci workflow's path triggers were widened. Drop the rust-script branch and unconditionally use the rustc fallback path (Shape 1 + Shape 2). It already covers the parse + type-check needs for any top-level Rust shape and runs in tens of ms per block. Local rerun on the OSS docs tree gives checked=92 skipped=24 rc=0.
1 task
rickcrawford
added a commit
that referenced
this pull request
May 9, 2026
Surfaced by lychee in the docs-ci workflow on PR #109. - bulk-redirects.md: configuration.md#redirect-action -> #redirect (matches the actual `### redirect` heading at L532). - exposed-credentials.md: configuration.md#exposed-credentials -> #exposed_credentials (matches `### exposed_credentials` at L1395). - web-bot-auth.md: configuration.md#bot_auth -> #authentication (the parent `## Authentication` section at L1000; bot_auth lives there as one of the eight built-in providers without its own subsection. Anchor parenthetical disambiguates). - feature-flags.md: scripting.md#cel-functions -> #3-cel-expressions (matches `## 3. CEL expressions` at L53; the reference is to the full CEL surface, not just functions). - routing-strategies.md: drop link to non-existent [Fail-6](roadmap.md). The line stays as plain text since the surrounding sentence is still accurate.
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.
Summary
Closes WOR-163: aligns provider-count and routing-strategy claims across
llms.txt,docs/,README.md, and the test assertion. Addsscripts/check-doc-drift.sh+.github/workflows/docs-ci.ymlCI guard so the stale strings (20 native,9 routing strategies,36 OpenAI-compatible,one trivial built-in strategy) cannot reappear. Bumpsproviders.rstest assertion from>= 38to>= 43.Partially addresses WOR-172 (sbproxy-side bullets): re-attributes WAF/DDoS/CSRF to
sbproxy-modulesindocs/architecture.md, fixesAuth::Digestrustdoc (was "placeholder"), narrowssbproxy-httpkitdescription to current bufferpool surface, alignsdocs/configuration.mdwith the actual CLI shape. Enterprise-side WOR-172 bullets (CLAUDE.md, Dockerfile.proxy, Cargo.toml path renames, ingest lib.rs) ship in a parallel enterprise PR.Test plan