Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
0ddea1b
fix(compression): honor the sent engine config in engine previews
woodsonl Oct 5, 2026
549ae3c
test(compression): cover the aggressive preview config threading
woodsonl Oct 5, 2026
106a2fa
test(compression): cover the pipeline-branch aggressive config thread
woodsonl Oct 5, 2026
7dfc329
fix(compression): strip empty-string form values before preview and save
woodsonl Oct 5, 2026
335f0d0
docs(changelog): add fragment for #15604
woodsonl Oct 5, 2026
112313a
fix(deps): next 16.3.6 (next/og RCE), axios 1.20, grpc-js 1.14.5, dom…
diegosouzapw Oct 6, 2026
9a64186
ci(quality): report pricing freshness in the release-green sweep (#15…
maxmad64bis Oct 6, 2026
107c562
docs(routing): pin scoring diagram weights with parity test (#15225)
maxmad64bis Oct 6, 2026
77dbff4
docs(contributing): align the Co-Authored-By checklist line with Hard…
maxmad64bis Oct 6, 2026
95284f1
fix(i18n): stop an apostrophe from turning a placeholder into literal…
maxmad64bis Oct 6, 2026
1063da6
fix(rankings): rank only providers from the documented free-model cat…
maxmad64bis Oct 6, 2026
9e97f04
fix(shared): share request context stores across duplicated modules (…
maxmad64bis Oct 6, 2026
e342c40
perf(db): memoize synced vision verdicts behind catalog version (#15378)
maxmad64bis Oct 6, 2026
84af48a
fix(combo): skip the redundant second LKGP write on matching combo ke…
maxmad64bis Oct 6, 2026
19f7f9b
fix(sse): keep thinking-only streams alive past the content-stall bud…
maxmad64bis Oct 6, 2026
ca4cbc1
fix(sse): record Trae upstream status on proxy failures (#15434)
maxmad64bis Oct 6, 2026
c46ad66
fix(sse): record Cursor upstream status on proxy failures (#15463)
maxmad64bis Oct 6, 2026
4fc1402
perf(i18n): read synced locale keys by direct lookup (#15466)
maxmad64bis Oct 6, 2026
8bb729e
fix(rate-limit): aggregate idle limiter eviction log to one line per …
maxmad64bis Oct 6, 2026
787a67b
fix(api): log the auto-combo variants GET /api/combos/auto skips inst…
maxmad64bis Oct 6, 2026
1b98484
fix(routing): trace estimated pricing and latency fallbacks (#15224)
maxmad64bis Oct 6, 2026
9cff483
fix(db): add the missing columns when a migration hits "duplicate col…
maxmad64bis Oct 6, 2026
fb07b05
feat(plugin): filter published catalog by provider with empty-result …
maxmad64bis Oct 6, 2026
3156744
fix(dashboard): report headers-wait and client aborts outside transpo…
maxmad64bis Oct 6, 2026
0e1d1a4
feat(proxies): log refusal-store writes and expose transport evidence…
maxmad64bis Oct 6, 2026
b7a5260
fix(sse): name the egress on every opencode rotation log line (#15375)
maxmad64bis Oct 6, 2026
a1af1df
ci: run the scheduled workflows only in the upstream repository (#15398)
maxmad64bis Oct 6, 2026
55bc0d4
fix(auth): answer a paused no-auth provider with a retryable cooldown…
maxmad64bis Oct 6, 2026
a1f3d32
fix(auth): pause only the refused model on the no-auth path (#15443)
maxmad64bis Oct 6, 2026
bb2ce35
fix(api): log chat and responses admission rejections to the request …
maxmad64bis Oct 6, 2026
dcd564e
feat(dashboard): flag uniform provider 5xx regime and split upstream …
maxmad64bis Oct 6, 2026
d1bf460
fix(plugin): stop requesting the retired virtual-entries route (#15392)
maxmad64bis Oct 6, 2026
4609bed
fix(auth): serve only catalogued free-access models on credits-exhaus…
maxmad64bis Oct 6, 2026
2d6d630
docs(i18n): refresh QUALITY_GATES and CONTRIBUTING mirrors across 66 …
diegosouzapw Oct 6, 2026
c079319
fix(api): synthesize string response.id for /v1/responses frames (#15…
yugui923 Oct 6, 2026
da4ddc2
refactor(sse): split handleChatCore into four response-path leaves (#…
HouMinXi Oct 6, 2026
759ab84
fix(proxy-health): skip sweep probes already proven by recent product…
maxmad64bis Oct 6, 2026
563d5df
fix(sse): keep dead Codex refresh token from tripping provider breake…
maxmad64bis Oct 6, 2026
1fe734f
fix(open-sse): replay title-shaped insufficient_quota refusals once (…
maxmad64bis Oct 6, 2026
8349538
feat(i18n): forward the optional reasoning control in the translation…
maxmad64bis Oct 6, 2026
c88abe8
fix(opencode): count silent streamed replies while the first-byte gua…
maxmad64bis Oct 6, 2026
71cc636
fix(providers): a 400 or 429 reading "endpoint is unavailable" now pa…
maxmad64bis Oct 6, 2026
5e232bc
fix(api): log wrapper admission rejections to the request journal (#1…
maxmad64bis Oct 6, 2026
9e0a2f4
fix(proxies): share the refusal store across duplicated server module…
maxmad64bis Oct 6, 2026
95555ed
fix(proxies): set aside region-refused members briefly (#15383)
maxmad64bis Oct 6, 2026
3d43b67
fix(opencode): only a refusal naming the model clears borrowed tools …
maxmad64bis Oct 6, 2026
73565a5
chore(skills): regenerate omni-providers endpoints reference from ope…
diegosouzapw Oct 6, 2026
994324f
feat(i18n): translate several locales per request in sync-ui-keys (#1…
maxmad64bis Oct 6, 2026
2eee95e
feat(plugin): publish useful catalog entries by default, full list on…
maxmad64bis Oct 6, 2026
a23b48c
fix(dashboard): stop reporting import success when discovery was degr…
jonlwheat2-gif Oct 6, 2026
d933c22
test(auth): pin the invariant that makes the 8 provider-auth routes s…
jonlwheat2-gif Oct 6, 2026
90f97f6
fix(mcp): one shared internal hop, read lazily (#15159 M-06) (#15468)
jonlwheat2-gif Oct 6, 2026
0f944a3
fix(providers): point freetheai at freetheai.org (#15385) (#15520)
jonlwheat2-gif Oct 6, 2026
2f29eb2
fix(ci): make check:error-helper trust the call, not the file (#15159…
jonlwheat2-gif Oct 6, 2026
566c203
fix(speech): sanitize upstream audio/transcription error bodies (#151…
jonlwheat2-gif Oct 6, 2026
e05f1bd
fix(transcription): sanitize the Kie createTask failure body (#15159 …
jonlwheat2-gif Oct 6, 2026
655ef61
chore(quality): freeze gateways.ts growth from the freetheai domain m…
diegosouzapw Oct 6, 2026
3efc28e
fix(auth): never sign anyone in through OIDC without an allowlist (#1…
HouMinXi Oct 6, 2026
e381601
fix(auth): let a cache-scoped key reach the cache routes (#15430)
HouMinXi Oct 6, 2026
7daf296
fix(auth): keep a provider wildcard inside the provider it names (#15…
HouMinXi Oct 6, 2026
acecd16
fix(auth): revoke one access token by prefix and stop rewriting last …
HouMinXi Oct 6, 2026
2b2e546
fix(backend): keep TLS fingerprinting when a request carries Next.js …
HouMinXi Oct 6, 2026
408b4f2
fix(sse): drop a replayed responses event when the sequence is a stri…
HouMinXi Oct 6, 2026
588ccb7
fix(sse): keep a clean empty Claude end_turn (#15505)
HouMinXi Oct 6, 2026
bf1f9e8
fix(responses): stop marking native collaboration calls as plaintext …
HouMinXi Oct 6, 2026
ebf3120
fix(quota): register the tracker batch after its binding is ready (#1…
HouMinXi Oct 6, 2026
0256b3d
fix(providers): do not treat a Claude weekly warning as exhaustion (#…
HouMinXi Oct 6, 2026
73582bd
fix(providers): pace Codex usage fetches that bypass the quota gate (…
HouMinXi Oct 6, 2026
866a361
fix(combo): lock a model after a local target timeout (#15494)
HouMinXi Oct 6, 2026
3361111
fix(combo): type the custom-model row in the auto pool check (#15461)
HouMinXi Oct 6, 2026
489428b
fix(mcp): read cost totals from the analytics summary (#15355)
HouMinXi Oct 6, 2026
e8b1a98
test(api): lock the filtered models response against a stale content-…
HouMinXi Oct 6, 2026
a5a056e
fix(dashboard): show the message inside a Cloudflare tunnel error obj…
HouMinXi Oct 6, 2026
a45b818
fix(providers): show a No Auth provider's real requirement on its ban…
HouMinXi Oct 6, 2026
593c851
test(executors): lock the thinking budget against raising a caller ma…
HouMinXi Oct 6, 2026
06090d3
fix(cli): send --allow-no-credential to the server (#15416)
HouMinXi Oct 6, 2026
58269a7
fix(cli): scope the serve port guard to the bind address (#15472)
HouMinXi Oct 6, 2026
83f1a98
fix(providers): load the ChatGPT web validator only when it is tested…
HouMinXi Oct 6, 2026
83b653d
fix(ci): register the cycles ratchet script in the gate manifest (#15…
HouMinXi Oct 6, 2026
fdf397f
build: stamp the service worker after the public directory is recopie…
HouMinXi Oct 6, 2026
15c9588
search: make the search deadlines configurable (#15495)
HouMinXi Oct 6, 2026
5be6f03
feat(claude): add Claude Sonnet 5.5 and correct Sonnet 5 pricing (#15…
HouMinXi Oct 6, 2026
ef3b71c
feat(identity): refresh pinned CLI versions from their release feeds …
HouMinXi Oct 6, 2026
4f4c983
chore(quality): freeze the wave-2 file-size growth (#15680)
diegosouzapw Oct 6, 2026
b8c50e1
fix(release): drain three v3.8.52 base-reds — cycles fast-gate, stale…
woodsonl Oct 6, 2026
ae5d1d6
fix(ci): give the file-size test gate its base LOC in PR mode (#15298)
woodsonl Oct 6, 2026
a46b309
test(plugins): isolate plugin dir per test process (#15296)
woodsonl Oct 6, 2026
ed9188f
fix(db): let current compression engine rows win over legacy keys (#1…
woodsonl Oct 6, 2026
38a2660
refactor(db): drop unreachable aggressiveEnabled fallback in engines-…
woodsonl Oct 6, 2026
e1e9230
fix(compression): merge engines writes by id instead of replacing the…
woodsonl Oct 6, 2026
9d6d1ad
fix(compression): apply the lossy policy to the default-combo fallbac…
woodsonl Oct 6, 2026
f07c521
test(compression): make output-style checks able to fail (#15614)
woodsonl Oct 6, 2026
44efe61
fix(compression): match legacy output text in hu, ja and zh (#15591)
woodsonl Oct 6, 2026
8c1ccf5
fix(db): union dispatch-tagged registry models into authoritative liv…
woodsonl Oct 6, 2026
f43c467
fix(compression): show a retry when settings fail to load (#15346)
woodsonl Oct 6, 2026
02f4358
fix(compression): roll panel saves back per field and resync after a …
woodsonl Oct 6, 2026
a9dbbb0
fix(compression): surface failed settings loads on Hub, Combos and RT…
woodsonl Oct 6, 2026
80a6b73
fix(compression): make the hub safe for overlapping saves (#15593)
woodsonl Oct 6, 2026
7ddee9b
fix(dashboard): show exclusions and RTK save failures, queue RTK conf…
woodsonl Oct 6, 2026
e153401
fix(compression): show a retry when the omniglyph page's settings loa…
woodsonl Oct 6, 2026
6a7361a
fix(dashboard): treat an emptied engine number field as unset (#15612)
woodsonl Oct 6, 2026
ad28b1b
fix: keep #15604 beside the siblings already on the release
diegosouzapw Oct 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -2488,6 +2488,13 @@ APP_LOG_TO_FILE=true
# never used for routing). "true" (or 1, yes) enables it.
# PROXY_POOL_EGRESS_OBSERVATION=false

# Opt-in: skip the scheduler probe for proxies already proven by recent
# production traffic (single provider, no recent proxy failure). Default: off.
# PROXY_HEALTH_PASSIVE_SKIP=false
# Window in ms of production traffic the passive skip looks at (60000..599999).
# Default: 300000 (5min).
# PROXY_PASSIVE_WINDOW_MS=300000

# Allow OAuth and provider validation flows to bypass a pinned proxy and connect
# directly when proxy reachability pre-checks fail. Default: false.
# Also configurable from Dashboard > Settings > Feature Flags.
Expand Down Expand Up @@ -3017,6 +3024,8 @@ APP_LOG_TO_FILE=true
# OMNIROUTE_TRANSLATION_MODEL=gpt-4o-mini
# Per-request timeout in milliseconds (default 60000).
# OMNIROUTE_TRANSLATION_TIMEOUT_MS=60000
# Optional reasoning control, sent as-is to the translation backend when set (e.g. none).
# OMNIROUTE_TRANSLATION_REASONING_EFFORT=
# Number of parallel translation requests (default 4).
# OMNIROUTE_TRANSLATION_CONCURRENCY=4

Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/nightly-compat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ concurrency:

jobs:
resolve-branch:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: Resolve active release branch
runs-on: ubuntu-latest
outputs:
Expand Down Expand Up @@ -57,6 +58,7 @@ jobs:
echo "target=$TARGET" >> "$GITHUB_OUTPUT"

compat-build-26:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: Node 26 Compatibility Build
runs-on: ubuntu-latest
timeout-minutes: 25
Expand Down Expand Up @@ -87,6 +89,7 @@ jobs:
OMNIROUTE_USE_TURBOPACK: "0"

compat-tests:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: Node ${{ matrix.node }} Compat Tests (${{ matrix.shard }}/4)
runs-on: ubuntu-latest
timeout-minutes: 25
Expand Down Expand Up @@ -117,7 +120,7 @@ jobs:
report:
name: Open / update tracking issue on failure
runs-on: ubuntu-latest
if: ${{ !cancelled() && (needs.compat-tests.result == 'failure' || needs.compat-build-26.result == 'failure') }}
if: ${{ (!cancelled() && (needs.compat-tests.result == 'failure' || needs.compat-build-26.result == 'failure')) && (github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute') }}
needs: [resolve-branch, compat-build-26, compat-tests]
permissions:
issues: write
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/nightly-llm-security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ permissions:

jobs:
promptfoo-guard:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: promptfoo — injection guard (block mode, no secret)
# #11965: this job runs a backend-only `next build`; the hosted 7 GB runner cannot build
# release/v3.8.51 (VM shutdown ~7 min in), so it targets the box's light pool (`omni-light`:
Expand Down Expand Up @@ -56,6 +57,7 @@ jobs:
run: kill "$(cat server.pid)" || true

garak:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: garak probes (skip without provider secret)
# #11965: this job runs a backend-only `next build`; the hosted 7 GB runner cannot build
# release/v3.8.51 (VM shutdown ~7 min in), so it targets the box's light pool (`omni-light`:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/nightly-mutation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ permissions:

jobs:
stryker:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: Stryker mutation (batch ${{ matrix.batch.name }} — advisory)
runs-on: ubuntu-latest
# Mutation testing is expensive. History of the budget:
Expand Down Expand Up @@ -144,7 +145,7 @@ jobs:
mutation-ratchet:
name: Mutation score ratchet (blocking)
needs: stryker
if: always()
if: ${{ always() && (github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute') }}
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/nightly-property.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ permissions:
issues: write
jobs:
property-random-seed:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/nightly-release-green.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ jobs:
name: Validate active release branch
# On a push, only run for release/* pushes — a push to main is handled by the
# main-green job below. Schedule/dispatch always run (they validate the highest release).
if: ${{ github.event_name != 'push' || startsWith(github.ref_name, 'release/') }}
if: ${{ (github.event_name != 'push' || startsWith(github.ref_name, 'release/')) && (github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute') }}
# Dynamic runner: with USE_VPS_RUNNER=true (release window / on-demand pre-flight)
# this runs on the dedicated VPS runner — clean env (no operator OMNIROUTE_API_KEY,
# no local noauth CLIs => zero machine-specific false positives) and no contention.
Expand Down Expand Up @@ -275,7 +275,7 @@ jobs:
name: Validate main branch
# On a push, only run for a push to main — a push to release/* is handled by
# release-green above. Schedule/dispatch always run (they also sweep main).
if: ${{ github.event_name != 'push' || github.ref_name == 'main' }}
if: ${{ (github.event_name != 'push' || github.ref_name == 'main') && (github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute') }}
runs-on: ${{ (vars.USE_VPS_RUNNER == 'true' && fromJSON('["self-hosted","omni-build"]')) || 'ubuntu-latest' }}
env:
JWT_SECRET: ci-nightly-secret-with-sufficient-length-for-validation
Expand Down Expand Up @@ -436,7 +436,7 @@ jobs:
# walk each time. Detection stays on push (release-green above); banking is batched.
bank-ratchet-shrinks:
name: Bank ratchet shrinks
if: ${{ github.event_name != 'push' }}
if: ${{ github.event_name != 'push' && (github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute') }}
runs-on: ubuntu-latest
permissions:
contents: write
Expand Down Expand Up @@ -567,7 +567,7 @@ jobs:
# first red PR. Advisory: never fails the workflow.
baseline-headroom:
name: Baseline headroom
if: ${{ github.event_name != 'push' }}
if: ${{ github.event_name != 'push' && (github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute') }}
timeout-minutes: 60
runs-on: ${{ (vars.USE_VPS_RUNNER == 'true' && fromJSON('["self-hosted","omni-light"]')) || 'ubuntu-latest' }}
permissions:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/nightly-resilience.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ permissions:

jobs:
heap:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: Heap-growth gate
runs-on: ubuntu-latest
steps:
Expand All @@ -23,6 +24,7 @@ jobs:
- run: npm run test:heap

chaos:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: Resilience chaos (fault injection)
runs-on: ubuntu-latest
steps:
Expand All @@ -37,6 +39,7 @@ jobs:
- run: npm run test:chaos

k6-soak:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: k6 load/soak
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -77,6 +80,7 @@ jobs:
run: kill "$(cat server.pid)" || true

a11y:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: A11y axe (nightly, freeze-and-alert)
# #11965: this job runs a backend-only `next build`; the hosted 7 GB runner cannot build
# release/v3.8.51 (VM shutdown ~7 min in), so it targets the box's light pool (`omni-light`:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/nightly-schemathesis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ permissions:

jobs:
schemathesis:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
name: Schemathesis — OpenAPI contract fuzz (advisory)
# #11965: this job runs a backend-only `next build`; the hosted 7 GB runner cannot build
# release/v3.8.51 (VM shutdown ~7 min in), so it targets the box's light pool (`omni-light`:
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -230,16 +230,20 @@ jobs:
route-guard-membership test-discovery test-runner-api
mutation-test-coverage any-budget:t11 build-scope pack-policy
complexity-ratchets model-lifecycle
cycles lockfile duplication dead-code type-coverage compression-budget
lockfile duplication dead-code type-coverage compression-budget
# #8781: open-sse workspace typecheck gate — the workspace imports @/ which
# escapes to src/ via undeclared path aliases. See check-open-sse-typecheck.mjs.
open-sse-typecheck
# Hard Rule #16 — AI/bot attribution in PR commits, title or body (#14436). Reads the PR
# from GITHUB_EVENT_PATH; no-op on non-PR events. ci.yml only runs on PRs to main.
ai-attribution
)
# Ratchet-mode gates append --ratchet. `cycles` belongs here since #15281
# (69cb18dca8): check-cycles.mjs exits 1 on ANY cycle without --ratchet, and
# the frozen ceiling lives in quality-baseline.json → metrics.cycles — same
# `check:cycles:ratchet` semantics ci.yml runs (base-red #15306).
ratchet_gates=(
secrets vuln-ratchet workflows openapi-breaking
secrets vuln-ratchet workflows openapi-breaking cycles
)
failed=()
for g in "${gates[@]}"; do
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/radar-export.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ env:

jobs:
publish-export:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
runs-on: ubuntu-latest
permissions:
contents: write # gh release upload — clobra o asset estável do export
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permissions: read-all

jobs:
analysis:
if: ${{ github.event_name != 'push' || github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }}
if: ${{ (github.event_name != 'push' || github.ref == format('refs/heads/{0}', github.event.repository.default_branch)) && (github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute') }}
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/test-quarantine.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ concurrency:

jobs:
quarantine:
if: ${{ github.event_name != 'schedule' || github.repository == 'diegosouzapw/OmniRoute' }}
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
Expand Down
Loading
Loading