Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
0db0437
chore(release): open v3.8.31 development cycle
diegosouzapw Jun 20, 2026
fe70c4c
fix(mitm): exact host membership in MITM hosts test (CodeQL false pos…
diegosouzapw Jun 20, 2026
08a6795
fix(codex): request reasoning summaries (#4359)
xz-dev Jun 20, 2026
55eb1b5
fix(embeddings): inject NVIDIA NIM input_type for asymmetric embed mo…
diegosouzapw Jun 20, 2026
d6ce094
fix(api): migrate deprecated Codex [features].codex_hooks to [feature…
diegosouzapw Jun 20, 2026
4722841
fix(translator): drop the null flush on the same-format response path…
diegosouzapw Jun 20, 2026
aaf7e32
fix(translator): strip assistant echo fields on the OpenAI target pat…
diegosouzapw Jun 20, 2026
0773aa8
fix(cli): honor TAILSCALE_AUTHKEY for non-interactive tailscale login…
diegosouzapw Jun 20, 2026
838fdda
fix(dashboard): OAuth modal surfaces the real error on a non-JSON res…
diegosouzapw Jun 20, 2026
6dfc605
fix(translator): accept AI SDK-style { type: image, image: data-URL }…
diegosouzapw Jun 20, 2026
31f91cd
fix(dashboard): show a disabled connection's last error in the row (#…
diegosouzapw Jun 20, 2026
9112056
fix(providers): bound the OAuth connection-test probe with a timeout …
diegosouzapw Jun 20, 2026
94f474b
fix(providers): label a deactivated account distinctly from a revoked…
diegosouzapw Jun 20, 2026
2dc38c1
fix(db): cascade-delete orphaned model aliases when a provider is rem…
diegosouzapw Jun 20, 2026
7ef11eb
fix(api): persist max_input_tokens/max_output_tokens when adding a cu…
diegosouzapw Jun 20, 2026
a56c76a
docs: feature-documentation catch-up (v3.8.20 → v3.8.30) (#4391)
diegosouzapw Jun 20, 2026
ce8ff4a
fix(executors): don't inject thinking when tool_choice forces a tool …
NomenAK Jun 20, 2026
b417381
fix(translator): Gemini accepts HTTP/HTTPS image URLs (port from 9rou…
diegosouzapw Jun 20, 2026
3c3dcad
fix(executors): strip stream_options for qwen non-streaming / thinkin…
diegosouzapw Jun 20, 2026
f628135
fix(security): scope OAuth callback postMessage to a trusted-origin a…
diegosouzapw Jun 20, 2026
8eded5e
fix(sse): default combo per-target timeout to 120s for fast failover …
diegosouzapw Jun 20, 2026
98bf90f
refactor(combo): de-dup exhausted-target skip predicate across both d…
diegosouzapw Jun 20, 2026
c0291f8
refactor(combo): de-dup upstream-error exhaustion classification acro…
diegosouzapw Jun 20, 2026
542e0b5
refactor(chatCore): extract checkHeapPressureGuard leaf (god-file dec…
diegosouzapw Jun 20, 2026
ddef621
Localize CLI and stabilize fetch, memory, and coverage handling (#4383)
JxnLexn Jun 20, 2026
0d90b16
test(combo): reset circuit breakers between stream-readiness cases (r…
diegosouzapw Jun 20, 2026
c8ae007
feat(providers): add Microsoft 365 Copilot (BizChat) individual provi…
diegosouzapw Jun 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/actions/npm-ci-retry/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: npm ci with retry
description: Run npm ci with retries for transient registry/network failures.
runs:
using: composite
steps:
- shell: bash
run: |
set -euo pipefail

max_attempts=3
delay_seconds=20

for attempt in $(seq 1 "$max_attempts"); do
if [ "$attempt" -gt 1 ]; then
echo "npm ci attempt $attempt/$max_attempts after transient failure"
fi

if npm ci; then
exit 0
fi

exit_code=$?
if [ "$attempt" -eq "$max_attempts" ]; then
exit "$exit_code"
fi

sleep "$delay_seconds"
delay_seconds=$((delay_seconds * 2))
done
Loading
Loading