mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-04 14:02:12 +03:00
Compare commits
base: pjandro:fix/video-transcript-rejected-usage-item7
pjandro:main
pjandro:release/v3.8.51
pjandro:fix/video-transcript-rejected-usage-item7
pjandro:feat/video-transcript-retention-p2b
pjandro:fix/release-v3.8.51-basereds-openapi-tiers
pjandro:fix/release-v3.8.51-filesize-chat
pjandro:feat/free-tier-gated-bucket
pjandro:dependabot/npm_and_yarn/omniroute/opencode-plugin/npm_and_yarn-b932170a7f
pjandro:feat/orch-fase3-a
pjandro:feat/provider-xkiro
pjandro:fix/release-react-hooks-set-state
pjandro:fix/release-integration-retired-models
pjandro:fix/free-tier-quota-reaudit
pjandro:security/v3851-public-error-boundaries
pjandro:fix/v3851-onemin-stream-error-boundary
pjandro:fix/release-basereds-gate
pjandro:fix/sec-3adv-baseurl-sk-bifrost
pjandro:fix/release-v3.8.51-filesize-hartmark
pjandro:fix/release-v3.8.51-filesize-houminxi
pjandro:fix/main-basereds
pjandro:fix/release-v3.8.51-basereds-public-creds
pjandro:feat/video-transcript-retention-p2c
pjandro:fix/sec-5926-credential-export-always-protected
pjandro:chore/bump-fast-uri-electron
pjandro:fix/release-v3.8.51-basereds-12581
pjandro:feat/video-transcript-retention-p2
pjandro:feat/chatgpt-session-provider
pjandro:fix/v3851-migration-151-152-safety
pjandro:fix/v3851-dashboard-failure-event-redaction
pjandro:fix/v3851-grok-web-stream-error-boundary
pjandro:fix/v3851-adapta-nonstream-error-boundary
pjandro:fix/v3851-zed-stream-error-boundary
pjandro:fix/v3851-streamhandler-public-errors
pjandro:fix/v3851-perplexity-stream-error-boundary
pjandro:security/v3851-adapta-stream-error-boundary
pjandro:fix/v3851-zai-web-stream-error-boundary
pjandro:security/v3851-codex-response-failed-boundary
pjandro:fix/v3851-huggingchat-transport-error-redaction
pjandro:fix/v3851-huggingchat-stream-error-boundary
pjandro:fix/v3851-web-session-credentials-syntax
pjandro:fix/video-transcript-reanchor
pjandro:fix/v3851-wreq32-web-cookie-transport
pjandro:fix/v3851-pack-required-path-dedup
pjandro:feat/video-transcript-retention
pjandro:chore/v3851-grok-test-prettier
pjandro:fix/v3851-typecheck-baseline-schema
pjandro:fix/v3851-open-sse-vendor-typecheck
pjandro:fix/v3851-provider-assets-provenance-final
pjandro:fix/v3851-system-prompt-noimplicit
pjandro:fix/release-v3851-filesize-basereds
pjandro:fix/v3851-rerank-api-typecheck
pjandro:fix/v3850-tls-client-license-provenance
pjandro:feat/radar-d32-optin-explainer
pjandro:feat/test-scoped-complete
pjandro:fix/12326-combo-delete-lkgp-cleanup
pjandro:fix/release-v3.8.51-eslint-unused-collectsse
pjandro:refactor/video-frame-contract
pjandro:fix/v3850-replace-tls-client-node
pjandro:chore/campaign-protected-surfaces
pjandro:fix/release-v3.8.51-basered-stryker-tap
pjandro:docs/revert-gstack-claude-md
pjandro:revert/11770-gstack-recommendation
pjandro:docs/openapi-full-route-coverage
pjandro:feat/provider-failure-window-cooldown
pjandro:fix/main-rm-maxretries
pjandro:fix/11804-combo-loop-safety-timer-leak
pjandro:docs/tier-flow-4tier
pjandro:docs/rename-diagram-files
pjandro:chore/eslint-react-hooks-batch6
pjandro:chore/bank-ratchet-v3.8.51
pjandro:fix/trivy-cve-2025-68121-tls-client
pjandro:fix/release-v3.8.51-basereds-api-route-typecheck
pjandro:refactor/11657-video-pipeline-ports
pjandro:feat/11654-video-audio-bridge-stt
pjandro:feat/11481-model-exposure-allow-deny
pjandro:fix/release-electron-dispatch-builds-github-ref
pjandro:feat/11659-video-embedded-subtitle-provenance
pjandro:feat/11655-video-drilldown-multiresolution
pjandro:feat/11652-video-transcript-provenance-budgets
pjandro:test/11656-video-segment-promotion-evidence
pjandro:fix/11885-update-restart-live-process
pjandro:docs/11661-video-bridge-canonical-state
pjandro:fix/9133-auto-combo-candidates-unfiltered
pjandro:fix/11787-prepublish-opencode-plugin-cjs-check
pjandro:fix/11500-arena-elo-log-dedup
pjandro:fix/11600-eslint-gate-cache-suppressions
pjandro:fix/11949-qdrant-local-embedding-providers
pjandro:fix/11861-nous-hermes-405b-label
pjandro:fix/11976-docker-publish-omni-build
pjandro:fix/11824-antigravity-mitm-alias-scoping
pjandro:fix/11810-combo-success-connection-header
pjandro:fix/11296-kie-flux-kontext-market
pjandro:fix/11707-codex-responses-lite-parallel-tool-calls
pjandro:fix/11600-eslint-suppressions-exit-code
pjandro:fix/tests-rmsync-maxretries-11966
pjandro:chore/11919-11918-11916-changelog-fragments
pjandro:fix/11920-provider-icon-guards-port
pjandro:fix/11915-openai-claude-usage-ordering-port
pjandro:fix/11882-playground-step-warnings-port
pjandro:fix/ci-heavy-build-concurrency-lane
pjandro:chore/runner-janitor-act-not-advise
pjandro:fix/check-workflows-provenance-runner
pjandro:test/config-expiry-time-bomb
pjandro:fix/npm-publish-provenance-runner
pjandro:fix/v3851-provider-assets-provenance-reconcile
pjandro:fix/v3850-retire-chatgpt-web
pjandro:fix/v3850-retire-qwen-web
pjandro:fix/v3850-remove-gpl-derived-integrations
pjandro:fix/v3850-retire-felo-web
pjandro:fix/v3850-generic-unresolved-provider-assets
pjandro:fix/v3850-retire-designer-web
pjandro:fix/v3851-gemini-retirement-async-getexecutor
pjandro:docs/v3850-provider-asset-notices
pjandro:fix/alibaba-allowlist-test-timebomb
pjandro:fix/npm-payload-prune-nft-manifests
pjandro:fix/v3850-video-fu05-transcript-live
pjandro:fix/v3850-clean-room-inspector-20260826
pjandro:fix/v3850-retire-edge-tts
pjandro:fix/v3850-remove-unlicensed-deepseek-wasm
pjandro:fix/v3850-retire-gemini-web-images
pjandro:codex/provider-assets-provenance-manifest-20260826
pjandro:fix/v3850-g4f-gateway-truthful-claims
pjandro:fix/v3850-video-fu06-timeline
pjandro:fix/v3850-replace-unlicensed-notify-audio
pjandro:fix/v3850-retire-unproven-doc-rasters
pjandro:docs/v3850-third-party-notices
pjandro:fix/v3850-prune-unresolved-provider-assets
pjandro:fix/install-upgrade-use-disk-not-tmpfs
pjandro:fix/upgrade-schema-divergence
pjandro:fix/install-upgrade-timeout-and-progress
pjandro:security/video-transcript-redaction
pjandro:test/v3851-tiered-rotation-timeout
pjandro:chore/v3851-prune-stale-eslint-suppressions-2
pjandro:fix/docker-bun-upload-ignore
pjandro:fix/docker-decouple-bun-manifest
pjandro:fix/npm-publish-build-sha
pjandro:docs/v3850-release-stats
pjandro:docs/dedup-hash-codeql-note
pjandro:fix/release-v3.8.50-changelog-aggregate
pjandro:fix/11500-decrypt-log-dedup
pjandro:fix/11433-opencode-alias-collision
pjandro:fix/11510-gemini-thought-signature
pjandro:fix/11526-responses-header-timeout
pjandro:fix/11296-kie-ai-model-ids
pjandro:fix/11462-roundrobin-combo-diagnostics
pjandro:fix/11324-skip-full-sync-on-add
pjandro:fix/7518-docker-build-memory-budget
pjandro:release/v3.8.50
pjandro:fix/dedup-hash-tenant-isolation
pjandro:fix/oidc-state-timing-safe
pjandro:fix/codeql-alert-866-clear-text-logging
pjandro:chore/filesize-rebaseline-0826-batch2
pjandro:chore/filesize-rebaseline-0826
pjandro:feat/opper-provider-port-11538
pjandro:chore/prune-stale-eslint-suppressions
pjandro:chore/recover-fix-trio-push
pjandro:chore/recover-batch-trio-0825
pjandro:chore/recover-fix-11146-items
pjandro:chore/recover-batch-loteA-0825
pjandro:fix/codeql-alerts-v3851-round5
pjandro:chore/recover-batch-0824i
pjandro:codex/reconcile-v3.8.50-final-20260824
pjandro:fix/sec-adv-v3850-batch2
pjandro:fix/release-v3.8.50-basereds
pjandro:fix/10315-10310-header-budget
pjandro:fix/radar-g11-guided-setup
pjandro:chore/bank-ratchet-v3.8.50
pjandro:green/8728
pjandro:compression-core
pjandro:release/v3.8.49
pjandro:release/v3.8.47
pjandro:release/v3.8.48
pjandro:release/v3.8.46
pjandro:release/v3.8.45
pjandro:recovery/pr6099-kiro-idc-original
pjandro:release/v3.8.44
pjandro:release/v3.8.43
pjandro:release/v3.8.42
pjandro:release/v3.8.41
pjandro:release/v3.8.40
pjandro:release/v3.8.39
pjandro:release/v3.8.38
pjandro:release/v3.8.37
pjandro:release/v3.8.36
pjandro:release/v3.8.35
pjandro:release/v3.8.34
pjandro:release/v3.8.33
pjandro:release/v3.8.32
pjandro:release/v3.8.31
pjandro:release/v3.8.30
pjandro:release/v3.8.29
pjandro:release/v3.8.28
pjandro:release/v3.8.27
pjandro:release/v3.8.26
pjandro:release/v3.8.25
pjandro:release/v3.8.24
pjandro:release/v3.8.23
pjandro:release/v3.8.22
pjandro:release/v3.8.21
pjandro:release/v3.8.20
pjandro:release/v3.8.19
pjandro:release/v3.8.18
pjandro:release/v3.8.17
pjandro:release/v3.8.16
pjandro:release/v3.8.15
pjandro:release/v3.8.14
pjandro:release/v3.8.13
pjandro:release/v3.8.12
pjandro:release/v3.8.11
pjandro:release/v3.8.10
pjandro:release/v3.8.9
pjandro:release/v3.8.8
pjandro:release/v3.8.7
pjandro:release/v3.8.6
pjandro:release/v3.8.5
pjandro:release/v3.8.4
pjandro:release/v3.8.3
pjandro:release/v3.8.2
pjandro:release/v3.8.1
pjandro:release/v3.8.0
pjandro:release/v3.7.9
pjandro:release/v3.7.8
pjandro:release/v3.7.7
pjandro:release/v3.7.6
pjandro:release/v3.7.5
pjandro:release/v3.7.4
pjandro:release/v3.7.3
pjandro:release/v3.7.2
pjandro:release/v3.7.1
pjandro:release/v3.7.0
pjandro:release/v3.6.8
pjandro:release/v3.6.9
pjandro:release/v3.6.5
pjandro:release/v3.6.3
pjandro:release/v3.6.2
pjandro:release/v3.6.1
pjandro:release/v3.6.0
pjandro:release/v3.5.6
pjandro:release/v3.5.5
pjandro:release/v3.5.1
pjandro:release/v3.5.0
pjandro:v3.8.50
pjandro:radar-export-latest
pjandro:v3.8.49
pjandro:v3.8.48
pjandro:v3.8.47
pjandro:v3.8.46
pjandro:v3.8.45
pjandro:v3.8.44
pjandro:v3.8.43
pjandro:v3.8.42
pjandro:v3.8.41
pjandro:v3.8.40
pjandro:v3.8.39
pjandro:v3.8.38
pjandro:v3.8.37
pjandro:v3.8.36
pjandro:v3.8.35
pjandro:v3.8.34
pjandro:v3.8.33
pjandro:v3.8.32
pjandro:v3.8.31
pjandro:v3.8.30
pjandro:v3.8.29
pjandro:v3.8.28
pjandro:v3.8.27
pjandro:v3.8.26
pjandro:v3.8.25
pjandro:v3.8.24
pjandro:v3.8.23
pjandro:v3.8.22
pjandro:v3.8.21
pjandro:v3.8.20
pjandro:v3.8.19
pjandro:v3.8.18
pjandro:v3.8.17
pjandro:v3.8.16
pjandro:v3.8.15
pjandro:v3.8.14
pjandro:v3.8.13
pjandro:v3.8.12
pjandro:v3.8.11
pjandro:v3.8.10
pjandro:v3.8.9
pjandro:v3.8.8
pjandro:v3.8.7
pjandro:v3.8.6
pjandro:v3.8.5
pjandro:v3.8.4
pjandro:v3.3.3
pjandro:v2.6.4
pjandro:v3.8.3
pjandro:v3.8.2
pjandro:v3.8.1
pjandro:v3.8.0
pjandro:v3.7.9
pjandro:v3.7.8
pjandro:v3.7.7
pjandro:v3.7.6
pjandro:v3.7.5
pjandro:v3.7.4
pjandro:v3.7.3
pjandro:v3.7.2
pjandro:v3.7.1
pjandro:v3.7.0
pjandro:v3.6.9
pjandro:v3.6.8
pjandro:v3.6.6
pjandro:v3.6.5
pjandro:v3.6.4
pjandro:v3.6.3
pjandro:v3.6.2
pjandro:v3.6.1
pjandro:v3.6.0
pjandro:v3.5.9
pjandro:v3.5.8
pjandro:v3.5.7
pjandro:v3.5.6
pjandro:v3.5.5
pjandro:v3.5.4
pjandro:v3.5.3
pjandro:v3.5.2
pjandro:v3.5.1
pjandro:v3.5.0
pjandro:v3.4.9
pjandro:v3.4.8
pjandro:v3.4.7
pjandro:v3.4.6
pjandro:v3.4.5
pjandro:v3.4.4
pjandro:v3.4.3
pjandro:v3.4.2
pjandro:v3.4.1
pjandro:v3.4.0
pjandro:v3.3.11
pjandro:v3.3.10
pjandro:v3.3.9
pjandro:v3.3.8
pjandro:v3.3.7
pjandro:v3.3.6
pjandro:v3.3.5
pjandro:v3.3.4
pjandro:v3.3.2
pjandro:v3.3.1
pjandro:v3.2.9
pjandro:v3.3.0
pjandro:v3.2.8
pjandro:v3.2.7
pjandro:v3.2.6
pjandro:v3.2.5
pjandro:v3.2.4
pjandro:v3.2.3
pjandro:v3.2.2
pjandro:v3.2.1
pjandro:v3.2.0
pjandro:v3.1.10
pjandro:v3.1.9
pjandro:v3.1.8
pjandro:v3.1.7
pjandro:v3.1.6
pjandro:v3.1.5
pjandro:v3.1.4
pjandro:v3.1.3
pjandro:v3.1.2
pjandro:v3.1.1
pjandro:v3.1.0
pjandro:v3.0.9
pjandro:v3.0.8
pjandro:v3.0.7
pjandro:v3.0.6
pjandro:v3.0.5
pjandro:v3.0.4
pjandro:v3.0.3
pjandro:v3.0.2
pjandro:v3.0.1
pjandro:v3.0.0
pjandro:v3.0.0-rc.16
pjandro:v3.0.0-rc.14
pjandro:v3.0.0-rc.15
pjandro:v3.0.0-rc.2
pjandro:v3.0.0-rc.3
pjandro:v3.0.0-rc.4
pjandro:v3.0.0-rc.5
pjandro:v3.0.0-rc.6
pjandro:v3.0.0-rc.7
pjandro:v3.0.0-rc.9
pjandro:v3.0.0-rc.11
pjandro:v3.0.0-rc.1
pjandro:v3.0.0-rc.8
pjandro:v3.0.0-rc.13
pjandro:v3.0.0-rc.12
pjandro:v3.0.0-rc.10
pjandro:v2.9.5
pjandro:v2.9.4
pjandro:v2.9.3
pjandro:v2.9.2
pjandro:v2.9.1
pjandro:v2.9.0
pjandro:v2.8.9
pjandro:v2.8.8
pjandro:v2.8.7
pjandro:v2.8.6
pjandro:v2.8.5
pjandro:v2.8.4
pjandro:v2.8.3
pjandro:v2.8.2
pjandro:v2.8.1
pjandro:v2.8.0
pjandro:v2.7.10
pjandro:v2.7.9
pjandro:v2.7.8
pjandro:v2.7.7
pjandro:v2.7.5
pjandro:v2.7.4
pjandro:v2.7.3
pjandro:v2.7.2
pjandro:v2.7.1
pjandro:v2.7.0
pjandro:v2.6.10
pjandro:v2.6.9
pjandro:v2.6.8
pjandro:v2.6.7
pjandro:v2.6.6
pjandro:v2.6.5
pjandro:v2.6.3
pjandro:v2.6.2
pjandro:v2.6.1
pjandro:v2.6.0
pjandro:v2.5.9
pjandro:v2.5.8
pjandro:v2.5.7
pjandro:v2.5.6
pjandro:v2.5.5
pjandro:v2.5.4
pjandro:v2.5.3
pjandro:v2.5.2
pjandro:v2.5.1
pjandro:v2.5.0
pjandro:v2.4.4
pjandro:v2.4.3
pjandro:v2.4.2
pjandro:v2.4.1
pjandro:v2.4.0
pjandro:v2.3.16
pjandro:v2.3.15
pjandro:v2.3.14
pjandro:v2.3.13
pjandro:v2.3.12
pjandro:v2.3.11
pjandro:v2.3.10
pjandro:v2.3.9
pjandro:v2.3.8
pjandro:v2.3.7
pjandro:v2.3.6
pjandro:v2.3.5
pjandro:v2.3.4
pjandro:v2.3.3
pjandro:v2.3.2
pjandro:v2.3.1
pjandro:v2.3.0
pjandro:v2.2.9
pjandro:v2.2.8
pjandro:v2.2.7
pjandro:v2.2.6
pjandro:v2.2.5
pjandro:v2.2.4
pjandro:v2.2.3
pjandro:v2.2.2
pjandro:v2.2.1
pjandro:v2.2.0
pjandro:v2.1.2
pjandro:v2.1.1
pjandro:v2.0.16
pjandro:v2.0.15
pjandro:v2.0.14
pjandro:v2.0.13
pjandro:v2.0.12
pjandro:v2.0.11
pjandro:v2.0.10
pjandro:v2.0.9
pjandro:v2.0.8
pjandro:v2.0.7
pjandro:v2.0.6
pjandro:v2.0.5
pjandro:v2.0.4
pjandro:v2.0.3
pjandro:v2.0.2
pjandro:v2.0.1
pjandro:v2.0.0
pjandro:v1.8.1
pjandro:v1.8.0
pjandro:v1.7.14
pjandro:v1.7.13
pjandro:v1.7.12
pjandro:v1.7.11
pjandro:v1.7.10
pjandro:v1.7.9
pjandro:v1.7.8
pjandro:v1.7.7
pjandro:v1.7.6
pjandro:v1.7.5
pjandro:v1.7.4
pjandro:v1.7.3
pjandro:v1.7.2
pjandro:v1.7.1
pjandro:v1.7.0
pjandro:v1.6.9
pjandro:v1.6.8
pjandro:v1.6.7
pjandro:v1.6.6
pjandro:v1.6.5
pjandro:v1.6.4
pjandro:v1.6.3
pjandro:v1.6.2
pjandro:v1.6.1
pjandro:v1.6.0
pjandro:v1.5.0
pjandro:v1.4.11
pjandro:v1.4.10
pjandro:v1.4.9
pjandro:v1.4.8
pjandro:v1.4.7
pjandro:v1.4.6
pjandro:v1.4.5
pjandro:v1.4.4
pjandro:v1.4.3
pjandro:v1.4.2
pjandro:v1.4.1
pjandro:v1.4.0
pjandro:v1.3.1
pjandro:v1.3.0
pjandro:v1.2.0
pjandro:v1.1.1
pjandro:v1.1.0
pjandro:v1.0.10
pjandro:v1.0.9
pjandro:v1.0.8
pjandro:v1.0.7
pjandro:v1.0.6
pjandro:v1.0.5
pjandro:v1.0.4
pjandro:v1.0.3
pjandro:v1.0.2
pjandro:v1.0.1
pjandro:v1.0.0
pjandro:v0.9.0
pjandro:v0.8.8
pjandro:v0.8.5
pjandro:v0.8.0
pjandro:v0.7.0
pjandro:v0.6.0
pjandro:v0.5.0
pjandro:v0.4.0
pjandro:v0.3.0
pjandro:v0.2.0
pjandro:v0.1.0
...
compare: pjandro:release/v3.8.51
pjandro:release/v3.8.51
pjandro:fix/video-transcript-rejected-usage-item7
pjandro:feat/video-transcript-retention-p2b
pjandro:fix/release-v3.8.51-basereds-openapi-tiers
pjandro:fix/release-v3.8.51-filesize-chat
pjandro:feat/free-tier-gated-bucket
pjandro:dependabot/npm_and_yarn/omniroute/opencode-plugin/npm_and_yarn-b932170a7f
pjandro:feat/orch-fase3-a
pjandro:feat/provider-xkiro
pjandro:fix/release-react-hooks-set-state
pjandro:fix/release-integration-retired-models
pjandro:fix/free-tier-quota-reaudit
pjandro:security/v3851-public-error-boundaries
pjandro:fix/v3851-onemin-stream-error-boundary
pjandro:fix/release-basereds-gate
pjandro:main
pjandro:fix/sec-3adv-baseurl-sk-bifrost
pjandro:fix/release-v3.8.51-filesize-hartmark
pjandro:fix/release-v3.8.51-filesize-houminxi
pjandro:fix/main-basereds
pjandro:fix/release-v3.8.51-basereds-public-creds
pjandro:feat/video-transcript-retention-p2c
pjandro:fix/sec-5926-credential-export-always-protected
pjandro:chore/bump-fast-uri-electron
pjandro:fix/release-v3.8.51-basereds-12581
pjandro:feat/video-transcript-retention-p2
pjandro:feat/chatgpt-session-provider
pjandro:fix/v3851-migration-151-152-safety
pjandro:fix/v3851-dashboard-failure-event-redaction
pjandro:fix/v3851-grok-web-stream-error-boundary
pjandro:fix/v3851-adapta-nonstream-error-boundary
pjandro:fix/v3851-zed-stream-error-boundary
pjandro:fix/v3851-streamhandler-public-errors
pjandro:fix/v3851-perplexity-stream-error-boundary
pjandro:security/v3851-adapta-stream-error-boundary
pjandro:fix/v3851-zai-web-stream-error-boundary
pjandro:security/v3851-codex-response-failed-boundary
pjandro:fix/v3851-huggingchat-transport-error-redaction
pjandro:fix/v3851-huggingchat-stream-error-boundary
pjandro:fix/v3851-web-session-credentials-syntax
pjandro:fix/video-transcript-reanchor
pjandro:fix/v3851-wreq32-web-cookie-transport
pjandro:fix/v3851-pack-required-path-dedup
pjandro:feat/video-transcript-retention
pjandro:chore/v3851-grok-test-prettier
pjandro:fix/v3851-typecheck-baseline-schema
pjandro:fix/v3851-open-sse-vendor-typecheck
pjandro:fix/v3851-provider-assets-provenance-final
pjandro:fix/v3851-system-prompt-noimplicit
pjandro:fix/release-v3851-filesize-basereds
pjandro:fix/v3851-rerank-api-typecheck
pjandro:fix/v3850-tls-client-license-provenance
pjandro:feat/radar-d32-optin-explainer
pjandro:feat/test-scoped-complete
pjandro:fix/12326-combo-delete-lkgp-cleanup
pjandro:fix/release-v3.8.51-eslint-unused-collectsse
pjandro:refactor/video-frame-contract
pjandro:fix/v3850-replace-tls-client-node
pjandro:chore/campaign-protected-surfaces
pjandro:fix/release-v3.8.51-basered-stryker-tap
pjandro:docs/revert-gstack-claude-md
pjandro:revert/11770-gstack-recommendation
pjandro:docs/openapi-full-route-coverage
pjandro:feat/provider-failure-window-cooldown
pjandro:fix/main-rm-maxretries
pjandro:fix/11804-combo-loop-safety-timer-leak
pjandro:docs/tier-flow-4tier
pjandro:docs/rename-diagram-files
pjandro:chore/eslint-react-hooks-batch6
pjandro:chore/bank-ratchet-v3.8.51
pjandro:fix/trivy-cve-2025-68121-tls-client
pjandro:fix/release-v3.8.51-basereds-api-route-typecheck
pjandro:refactor/11657-video-pipeline-ports
pjandro:feat/11654-video-audio-bridge-stt
pjandro:feat/11481-model-exposure-allow-deny
pjandro:fix/release-electron-dispatch-builds-github-ref
pjandro:feat/11659-video-embedded-subtitle-provenance
pjandro:feat/11655-video-drilldown-multiresolution
pjandro:feat/11652-video-transcript-provenance-budgets
pjandro:test/11656-video-segment-promotion-evidence
pjandro:fix/11885-update-restart-live-process
pjandro:docs/11661-video-bridge-canonical-state
pjandro:fix/9133-auto-combo-candidates-unfiltered
pjandro:fix/11787-prepublish-opencode-plugin-cjs-check
pjandro:fix/11500-arena-elo-log-dedup
pjandro:fix/11600-eslint-gate-cache-suppressions
pjandro:fix/11949-qdrant-local-embedding-providers
pjandro:fix/11861-nous-hermes-405b-label
pjandro:fix/11976-docker-publish-omni-build
pjandro:fix/11824-antigravity-mitm-alias-scoping
pjandro:fix/11810-combo-success-connection-header
pjandro:fix/11296-kie-flux-kontext-market
pjandro:fix/11707-codex-responses-lite-parallel-tool-calls
pjandro:fix/11600-eslint-suppressions-exit-code
pjandro:fix/tests-rmsync-maxretries-11966
pjandro:chore/11919-11918-11916-changelog-fragments
pjandro:fix/11920-provider-icon-guards-port
pjandro:fix/11915-openai-claude-usage-ordering-port
pjandro:fix/11882-playground-step-warnings-port
pjandro:fix/ci-heavy-build-concurrency-lane
pjandro:chore/runner-janitor-act-not-advise
pjandro:fix/check-workflows-provenance-runner
pjandro:test/config-expiry-time-bomb
pjandro:fix/npm-publish-provenance-runner
pjandro:fix/v3851-provider-assets-provenance-reconcile
pjandro:fix/v3850-retire-chatgpt-web
pjandro:fix/v3850-retire-qwen-web
pjandro:fix/v3850-remove-gpl-derived-integrations
pjandro:fix/v3850-retire-felo-web
pjandro:fix/v3850-generic-unresolved-provider-assets
pjandro:fix/v3850-retire-designer-web
pjandro:fix/v3851-gemini-retirement-async-getexecutor
pjandro:docs/v3850-provider-asset-notices
pjandro:fix/alibaba-allowlist-test-timebomb
pjandro:fix/npm-payload-prune-nft-manifests
pjandro:fix/v3850-video-fu05-transcript-live
pjandro:fix/v3850-clean-room-inspector-20260826
pjandro:fix/v3850-retire-edge-tts
pjandro:fix/v3850-remove-unlicensed-deepseek-wasm
pjandro:fix/v3850-retire-gemini-web-images
pjandro:codex/provider-assets-provenance-manifest-20260826
pjandro:fix/v3850-g4f-gateway-truthful-claims
pjandro:fix/v3850-video-fu06-timeline
pjandro:fix/v3850-replace-unlicensed-notify-audio
pjandro:fix/v3850-retire-unproven-doc-rasters
pjandro:docs/v3850-third-party-notices
pjandro:fix/v3850-prune-unresolved-provider-assets
pjandro:fix/install-upgrade-use-disk-not-tmpfs
pjandro:fix/upgrade-schema-divergence
pjandro:fix/install-upgrade-timeout-and-progress
pjandro:security/video-transcript-redaction
pjandro:test/v3851-tiered-rotation-timeout
pjandro:chore/v3851-prune-stale-eslint-suppressions-2
pjandro:fix/docker-bun-upload-ignore
pjandro:fix/docker-decouple-bun-manifest
pjandro:fix/npm-publish-build-sha
pjandro:docs/v3850-release-stats
pjandro:docs/dedup-hash-codeql-note
pjandro:fix/release-v3.8.50-changelog-aggregate
pjandro:fix/11500-decrypt-log-dedup
pjandro:fix/11433-opencode-alias-collision
pjandro:fix/11510-gemini-thought-signature
pjandro:fix/11526-responses-header-timeout
pjandro:fix/11296-kie-ai-model-ids
pjandro:fix/11462-roundrobin-combo-diagnostics
pjandro:fix/11324-skip-full-sync-on-add
pjandro:fix/7518-docker-build-memory-budget
pjandro:release/v3.8.50
pjandro:fix/dedup-hash-tenant-isolation
pjandro:fix/oidc-state-timing-safe
pjandro:fix/codeql-alert-866-clear-text-logging
pjandro:chore/filesize-rebaseline-0826-batch2
pjandro:chore/filesize-rebaseline-0826
pjandro:feat/opper-provider-port-11538
pjandro:chore/prune-stale-eslint-suppressions
pjandro:chore/recover-fix-trio-push
pjandro:chore/recover-batch-trio-0825
pjandro:chore/recover-fix-11146-items
pjandro:chore/recover-batch-loteA-0825
pjandro:fix/codeql-alerts-v3851-round5
pjandro:chore/recover-batch-0824i
pjandro:codex/reconcile-v3.8.50-final-20260824
pjandro:fix/sec-adv-v3850-batch2
pjandro:fix/release-v3.8.50-basereds
pjandro:fix/10315-10310-header-budget
pjandro:fix/radar-g11-guided-setup
pjandro:chore/bank-ratchet-v3.8.50
pjandro:green/8728
pjandro:compression-core
pjandro:release/v3.8.49
pjandro:release/v3.8.47
pjandro:release/v3.8.48
pjandro:release/v3.8.46
pjandro:release/v3.8.45
pjandro:recovery/pr6099-kiro-idc-original
pjandro:release/v3.8.44
pjandro:release/v3.8.43
pjandro:release/v3.8.42
pjandro:release/v3.8.41
pjandro:release/v3.8.40
pjandro:release/v3.8.39
pjandro:release/v3.8.38
pjandro:release/v3.8.37
pjandro:release/v3.8.36
pjandro:release/v3.8.35
pjandro:release/v3.8.34
pjandro:release/v3.8.33
pjandro:release/v3.8.32
pjandro:release/v3.8.31
pjandro:release/v3.8.30
pjandro:release/v3.8.29
pjandro:release/v3.8.28
pjandro:release/v3.8.27
pjandro:release/v3.8.26
pjandro:release/v3.8.25
pjandro:release/v3.8.24
pjandro:release/v3.8.23
pjandro:release/v3.8.22
pjandro:release/v3.8.21
pjandro:release/v3.8.20
pjandro:release/v3.8.19
pjandro:release/v3.8.18
pjandro:release/v3.8.17
pjandro:release/v3.8.16
pjandro:release/v3.8.15
pjandro:release/v3.8.14
pjandro:release/v3.8.13
pjandro:release/v3.8.12
pjandro:release/v3.8.11
pjandro:release/v3.8.10
pjandro:release/v3.8.9
pjandro:release/v3.8.8
pjandro:release/v3.8.7
pjandro:release/v3.8.6
pjandro:release/v3.8.5
pjandro:release/v3.8.4
pjandro:release/v3.8.3
pjandro:release/v3.8.2
pjandro:release/v3.8.1
pjandro:release/v3.8.0
pjandro:release/v3.7.9
pjandro:release/v3.7.8
pjandro:release/v3.7.7
pjandro:release/v3.7.6
pjandro:release/v3.7.5
pjandro:release/v3.7.4
pjandro:release/v3.7.3
pjandro:release/v3.7.2
pjandro:release/v3.7.1
pjandro:release/v3.7.0
pjandro:release/v3.6.8
pjandro:release/v3.6.9
pjandro:release/v3.6.5
pjandro:release/v3.6.3
pjandro:release/v3.6.2
pjandro:release/v3.6.1
pjandro:release/v3.6.0
pjandro:release/v3.5.6
pjandro:release/v3.5.5
pjandro:release/v3.5.1
pjandro:release/v3.5.0
pjandro:v3.8.50
pjandro:radar-export-latest
pjandro:v3.8.49
pjandro:v3.8.48
pjandro:v3.8.47
pjandro:v3.8.46
pjandro:v3.8.45
pjandro:v3.8.44
pjandro:v3.8.43
pjandro:v3.8.42
pjandro:v3.8.41
pjandro:v3.8.40
pjandro:v3.8.39
pjandro:v3.8.38
pjandro:v3.8.37
pjandro:v3.8.36
pjandro:v3.8.35
pjandro:v3.8.34
pjandro:v3.8.33
pjandro:v3.8.32
pjandro:v3.8.31
pjandro:v3.8.30
pjandro:v3.8.29
pjandro:v3.8.28
pjandro:v3.8.27
pjandro:v3.8.26
pjandro:v3.8.25
pjandro:v3.8.24
pjandro:v3.8.23
pjandro:v3.8.22
pjandro:v3.8.21
pjandro:v3.8.20
pjandro:v3.8.19
pjandro:v3.8.18
pjandro:v3.8.17
pjandro:v3.8.16
pjandro:v3.8.15
pjandro:v3.8.14
pjandro:v3.8.13
pjandro:v3.8.12
pjandro:v3.8.11
pjandro:v3.8.10
pjandro:v3.8.9
pjandro:v3.8.8
pjandro:v3.8.7
pjandro:v3.8.6
pjandro:v3.8.5
pjandro:v3.8.4
pjandro:v3.3.3
pjandro:v2.6.4
pjandro:v3.8.3
pjandro:v3.8.2
pjandro:v3.8.1
pjandro:v3.8.0
pjandro:v3.7.9
pjandro:v3.7.8
pjandro:v3.7.7
pjandro:v3.7.6
pjandro:v3.7.5
pjandro:v3.7.4
pjandro:v3.7.3
pjandro:v3.7.2
pjandro:v3.7.1
pjandro:v3.7.0
pjandro:v3.6.9
pjandro:v3.6.8
pjandro:v3.6.6
pjandro:v3.6.5
pjandro:v3.6.4
pjandro:v3.6.3
pjandro:v3.6.2
pjandro:v3.6.1
pjandro:v3.6.0
pjandro:v3.5.9
pjandro:v3.5.8
pjandro:v3.5.7
pjandro:v3.5.6
pjandro:v3.5.5
pjandro:v3.5.4
pjandro:v3.5.3
pjandro:v3.5.2
pjandro:v3.5.1
pjandro:v3.5.0
pjandro:v3.4.9
pjandro:v3.4.8
pjandro:v3.4.7
pjandro:v3.4.6
pjandro:v3.4.5
pjandro:v3.4.4
pjandro:v3.4.3
pjandro:v3.4.2
pjandro:v3.4.1
pjandro:v3.4.0
pjandro:v3.3.11
pjandro:v3.3.10
pjandro:v3.3.9
pjandro:v3.3.8
pjandro:v3.3.7
pjandro:v3.3.6
pjandro:v3.3.5
pjandro:v3.3.4
pjandro:v3.3.2
pjandro:v3.3.1
pjandro:v3.2.9
pjandro:v3.3.0
pjandro:v3.2.8
pjandro:v3.2.7
pjandro:v3.2.6
pjandro:v3.2.5
pjandro:v3.2.4
pjandro:v3.2.3
pjandro:v3.2.2
pjandro:v3.2.1
pjandro:v3.2.0
pjandro:v3.1.10
pjandro:v3.1.9
pjandro:v3.1.8
pjandro:v3.1.7
pjandro:v3.1.6
pjandro:v3.1.5
pjandro:v3.1.4
pjandro:v3.1.3
pjandro:v3.1.2
pjandro:v3.1.1
pjandro:v3.1.0
pjandro:v3.0.9
pjandro:v3.0.8
pjandro:v3.0.7
pjandro:v3.0.6
pjandro:v3.0.5
pjandro:v3.0.4
pjandro:v3.0.3
pjandro:v3.0.2
pjandro:v3.0.1
pjandro:v3.0.0
pjandro:v3.0.0-rc.16
pjandro:v3.0.0-rc.14
pjandro:v3.0.0-rc.15
pjandro:v3.0.0-rc.2
pjandro:v3.0.0-rc.3
pjandro:v3.0.0-rc.4
pjandro:v3.0.0-rc.5
pjandro:v3.0.0-rc.6
pjandro:v3.0.0-rc.7
pjandro:v3.0.0-rc.9
pjandro:v3.0.0-rc.11
pjandro:v3.0.0-rc.1
pjandro:v3.0.0-rc.8
pjandro:v3.0.0-rc.13
pjandro:v3.0.0-rc.12
pjandro:v3.0.0-rc.10
pjandro:v2.9.5
pjandro:v2.9.4
pjandro:v2.9.3
pjandro:v2.9.2
pjandro:v2.9.1
pjandro:v2.9.0
pjandro:v2.8.9
pjandro:v2.8.8
pjandro:v2.8.7
pjandro:v2.8.6
pjandro:v2.8.5
pjandro:v2.8.4
pjandro:v2.8.3
pjandro:v2.8.2
pjandro:v2.8.1
pjandro:v2.8.0
pjandro:v2.7.10
pjandro:v2.7.9
pjandro:v2.7.8
pjandro:v2.7.7
pjandro:v2.7.5
pjandro:v2.7.4
pjandro:v2.7.3
pjandro:v2.7.2
pjandro:v2.7.1
pjandro:v2.7.0
pjandro:v2.6.10
pjandro:v2.6.9
pjandro:v2.6.8
pjandro:v2.6.7
pjandro:v2.6.6
pjandro:v2.6.5
pjandro:v2.6.3
pjandro:v2.6.2
pjandro:v2.6.1
pjandro:v2.6.0
pjandro:v2.5.9
pjandro:v2.5.8
pjandro:v2.5.7
pjandro:v2.5.6
pjandro:v2.5.5
pjandro:v2.5.4
pjandro:v2.5.3
pjandro:v2.5.2
pjandro:v2.5.1
pjandro:v2.5.0
pjandro:v2.4.4
pjandro:v2.4.3
pjandro:v2.4.2
pjandro:v2.4.1
pjandro:v2.4.0
pjandro:v2.3.16
pjandro:v2.3.15
pjandro:v2.3.14
pjandro:v2.3.13
pjandro:v2.3.12
pjandro:v2.3.11
pjandro:v2.3.10
pjandro:v2.3.9
pjandro:v2.3.8
pjandro:v2.3.7
pjandro:v2.3.6
pjandro:v2.3.5
pjandro:v2.3.4
pjandro:v2.3.3
pjandro:v2.3.2
pjandro:v2.3.1
pjandro:v2.3.0
pjandro:v2.2.9
pjandro:v2.2.8
pjandro:v2.2.7
pjandro:v2.2.6
pjandro:v2.2.5
pjandro:v2.2.4
pjandro:v2.2.3
pjandro:v2.2.2
pjandro:v2.2.1
pjandro:v2.2.0
pjandro:v2.1.2
pjandro:v2.1.1
pjandro:v2.0.16
pjandro:v2.0.15
pjandro:v2.0.14
pjandro:v2.0.13
pjandro:v2.0.12
pjandro:v2.0.11
pjandro:v2.0.10
pjandro:v2.0.9
pjandro:v2.0.8
pjandro:v2.0.7
pjandro:v2.0.6
pjandro:v2.0.5
pjandro:v2.0.4
pjandro:v2.0.3
pjandro:v2.0.2
pjandro:v2.0.1
pjandro:v2.0.0
pjandro:v1.8.1
pjandro:v1.8.0
pjandro:v1.7.14
pjandro:v1.7.13
pjandro:v1.7.12
pjandro:v1.7.11
pjandro:v1.7.10
pjandro:v1.7.9
pjandro:v1.7.8
pjandro:v1.7.7
pjandro:v1.7.6
pjandro:v1.7.5
pjandro:v1.7.4
pjandro:v1.7.3
pjandro:v1.7.2
pjandro:v1.7.1
pjandro:v1.7.0
pjandro:v1.6.9
pjandro:v1.6.8
pjandro:v1.6.7
pjandro:v1.6.6
pjandro:v1.6.5
pjandro:v1.6.4
pjandro:v1.6.3
pjandro:v1.6.2
pjandro:v1.6.1
pjandro:v1.6.0
pjandro:v1.5.0
pjandro:v1.4.11
pjandro:v1.4.10
pjandro:v1.4.9
pjandro:v1.4.8
pjandro:v1.4.7
pjandro:v1.4.6
pjandro:v1.4.5
pjandro:v1.4.4
pjandro:v1.4.3
pjandro:v1.4.2
pjandro:v1.4.1
pjandro:v1.4.0
pjandro:v1.3.1
pjandro:v1.3.0
pjandro:v1.2.0
pjandro:v1.1.1
pjandro:v1.1.0
pjandro:v1.0.10
pjandro:v1.0.9
pjandro:v1.0.8
pjandro:v1.0.7
pjandro:v1.0.6
pjandro:v1.0.5
pjandro:v1.0.4
pjandro:v1.0.3
pjandro:v1.0.2
pjandro:v1.0.1
pjandro:v1.0.0
pjandro:v0.9.0
pjandro:v0.8.8
pjandro:v0.8.5
pjandro:v0.8.0
pjandro:v0.7.0
pjandro:v0.6.0
pjandro:v0.5.0
pjandro:v0.4.0
pjandro:v0.3.0
pjandro:v0.2.0
pjandro:v0.1.0
1 Commits
fix/video-
...
release/v3
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c3945a724c |
fix(ci): security-tier gate must honor ALWAYS_PROTECTED_API_PATTERNS too (+ file-size rebaseline) (#12605)
* fix(ci): mirror isLocalOnlyPath in the security-tier gate and rebaseline four merged-growth file caps
Two base-reds on release/v3.8.51 (#12581), both drained at the source.
1) check:openapi-security-tiers reported six CORRECTLY annotated routes as
unprotected and demanded the removal of their x-loopback-only annotation —
pushing the fix in the unsafe direction. The gate re-reads routeGuard.ts as
text (it cannot import the module: routeGuard pulls the server runtime and
the gate runs on plain node), but it only read the FIRST half of
isLocalOnlyPath():
LOCAL_ONLY_API_PREFIXES.some(...) || LOCAL_ONLY_API_PATTERNS.some(...)
so every route gated by a regex (/api/providers/volcengine-plan/connect/*)
or by an imported constant (VNC_ROUTE_PREFIX, which the text parse turned
into the literal string "VNC_ROUTE_PREFIX") looked open. Proven with
isLocalOnlyPath() at runtime: all six return true; the control
/api/providers/{id}/refresh stays false.
New scripts/check/routeGuardConstants.mjs reads BOTH arrays, resolves
imported identifiers by following the import, and THROWS on an unresolvable
token instead of silently degrading it into a literal. Its array scanner is
hand-rolled because regex literals carry the brackets and commas a
\[([^\]]+)\] capture plus a naive comma split break on ([^/] and {1,3}).
The reverse pass (missing-annotation warnings) now uses the same predicate.
2) check:file-size: four frozen files grew past their cap through merged PRs —
chat.ts +10 (#12427/#12503 video-transcript redaction, derived from the
post-guardrail payload at the single dispatch point) and stream.ts /
accountFallback.ts / codex.ts +17 total (#12179 hot-path regex hoisting,
bounded caches, quadratic-buffering fix). All cohesive at existing
chokepoints; rebaselined with the rationale recorded in the baseline file.
Refs #12581
* fix(ci): security-tier gate must honor ALWAYS_PROTECTED_API_PATTERNS too
#12350 fixed the LOCAL_ONLY half of the checker (prefixes + patterns +
imported consts). isAlwaysProtectedPath() is two-armed the same way:
ALWAYS_PROTECTED_API_PATHS.some(...) || ALWAYS_PROTECTED_API_PATTERNS.some(...)
but the checker still read only the path array, so the four credential
routes gated by the GHSA-5926-2w35-7h4q pattern (#12600) —
/api/providers/{id}/{claude,codex}-auth/{export,apply-local} — reported as
'has x-always-protected but is NOT in ALWAYS_PROTECTED_API_PATHS', asking for
the removal of a CORRECT annotation on a credential-export route.
Verified with the real predicate: all four isAlwaysProtectedPath() → true;
control /api/providers/{id}/models → false.
tests/unit/openapi-security-tiers.test.ts already checks BOTH arrays (#12600
updated the test but not the gate script) and stays green — this commit makes
the gate agree with the test and with the runtime.
Also carries the file-size rebaseline for four caps grown by merged PRs
(chat.ts +10 from #12427/#12503; stream.ts / accountFallback.ts / codex.ts
+17 from #12179), rationale recorded in the baseline file.
Refs #12581
* fix(ci): re-anchor the zcodeProtocol public-creds allowlist entry (302 -> 313)
The check:public-creds allowlist pins each frozen literal by FILE:LINE, so
#12179 (hot-path regex hoisting in the same file) shifted the ZCode handshake
id from L302 to L313 and broke the gate twice over: the old entry went stale
('a violação foi corrigida; REMOVA a entrada') while the literal itself, now
at L313, was no longer covered.
The literal is unchanged and still not a credential: `omniroute-${process.pid}`
is a per-process handshake id for the local ZCode app-server, already audited
and frozen with that justification. Only the anchor moves.
Refs #12581
* test(ci): re-anchor the ZCode allowlist test to L313 alongside the gate entry
The allowlist key is file:LINE:value, so the synthetic source in this test
pads to the exact line the entry pins. Re-anchoring the entry 302 -> 313
(previous commit) without moving the padding left the test asserting the old
line — caught by Unit Tests fast-path (4/4) on #12605.
Both halves now sit at 313, and the test still proves the allowlist does NOT
weaken detection: swapping the value for 'upstream-client-' is still flagged.
Refs #12581
* docs(ci): changelog fragment for #12605
* chore(ci): trim #12605 to the one fix the base still needs
The base drained fast while this PR was open. Re-verified on
|
2 changed files with 19 additions and 9 deletions
1
changelog.d/fixes/12605-openapi-tiers-public-creds.md
Normal file
1
changelog.d/fixes/12605-openapi-tiers-public-creds.md
Normal file
|
|
@@ -0,0 +1 @@
|
|||
- **CI:** the OpenAPI security-tier gate now mirrors `isAlwaysProtectedPath()` in full — it also reads `ALWAYS_PROTECTED_API_PATTERNS`, so the pattern-gated credential routes (`/api/providers/{id}/{claude,codex}-auth/{export,apply-local}`, GHSA-5926-2w35-7h4q) no longer report as unannotated. (#12605)
|
||||
|
|
@@ -106,6 +106,11 @@ function parsePatterns(name) {
|
|||
const LOCAL_ONLY_PREFIXES = parsePrefixes("LOCAL_ONLY_API_PREFIXES");
|
||||
const LOCAL_ONLY_PATTERNS = parsePatterns("LOCAL_ONLY_API_PATTERNS");
|
||||
const ALWAYS_PROTECTED_PATHS = parsePrefixes("ALWAYS_PROTECTED_API_PATHS");
|
||||
// isAlwaysProtectedPath() is ALSO two-armed (paths || patterns) — reading only the
|
||||
// path array repeated, on this half, the very bug #12350 fixed on the LOCAL_ONLY
|
||||
// half: the pattern-gated credential routes (…/{claude,codex}-auth/{export,
|
||||
// apply-local}, #12600) read as unannotated even though they are protected.
|
||||
const ALWAYS_PROTECTED_PATTERNS = parsePatterns("ALWAYS_PROTECTED_API_PATTERNS");
|
||||
|
||||
if (
|
||||
LOCAL_ONLY_PREFIXES.length === 0 ||
|
||||
|
|
@@ -135,6 +140,15 @@ function coveredByLocalOnly(pathStr) {
|
|||
return matchesPrefix(concrete) || LOCAL_ONLY_PATTERNS.some((re) => re.test(concrete));
|
||||
}
|
||||
|
||||
/** Mirror of routeGuard.isAlwaysProtectedPath() — both arms, same order. */
|
||||
function coveredByAlwaysProtected(pathStr) {
|
||||
const concrete = concretize(pathStr);
|
||||
return (
|
||||
ALWAYS_PROTECTED_PATHS.some((p) => concrete === p || concrete.startsWith(`${p}/`)) ||
|
||||
ALWAYS_PROTECTED_PATTERNS.some((re) => re.test(concrete))
|
||||
);
|
||||
}
|
||||
|
||||
const raw = yaml.load(fs.readFileSync(OPENAPI_PATH, "utf-8"));
|
||||
const paths = raw.paths || {};
|
||||
const errors = [];
|
||||
|
|
@@ -151,16 +165,11 @@ for (const [pathStr, methods] of Object.entries(paths)) {
|
|||
);
|
||||
}
|
||||
|
||||
if (spec["x-always-protected"] === true) {
|
||||
const matchesPath = ALWAYS_PROTECTED_PATHS.some(
|
||||
(p) => pathStr === p || pathStr.startsWith(`${p}/`)
|
||||
if (spec["x-always-protected"] === true && !coveredByAlwaysProtected(pathStr)) {
|
||||
errors.push(
|
||||
`${method.toUpperCase()} ${pathStr}: has x-always-protected but is NOT covered by ` +
|
||||
`ALWAYS_PROTECTED_API_PATHS or ALWAYS_PROTECTED_API_PATTERNS`
|
||||
);
|
||||
if (!matchesPath) {
|
||||
errors.push(
|
||||
`${method.toUpperCase()} ${pathStr}: has x-always-protected but is NOT in ` +
|
||||
`ALWAYS_PROTECTED_API_PATHS [${ALWAYS_PROTECTED_PATHS.join(", ")}]`
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.