Spaces:
Building
Building
Commit History
-
fix(rotator): support undici 8 dispatch handler interface
OpenClaw bundles undici 8, which renamed the dispatch handler methods onHeaders/onData/onComplete/onError to onResponseStart/onResponseData/ onResponseEnd/onResponseError (statusCode now at arg index 1). The rotator's wrapUndiciHandler only instrumented the classic names, so on undici 8 none of them fired: successes were never recorded, 429/auth failures were never classified (keys never penalized/rotated), and the in-flight lease was only released by its 30s TTL (inflight_lease_expired). Instrument both interfaces in the handler Proxy; the shared settled/statusHandled guards prevent any double-counting. Classic-undici behavior (repo's undici 7) is unchanged. Verified end-to-end against real undici 8.3.0 and 7.27.0: 200 -> success recorded + lease released; 429 -> rate classified + key penalized. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>7106068 -
Merge pull request #209 from anurag008w/devin/1780455719-fix-key-rotator-auth
AnuragUnverified signatureFix Anthropic key rotation (x-api-key), Gemini stickiness, and dashboard pick counting0d5d3bf -
docs(changelog): document key-rotator auth, Gemini stickiness, and dashboard fixes
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>9578a6b -
Add sticky_pick/task_affinity_pick options to event-log filter
The rotator emits sticky_pick and task_affinity_pick events and the dashboard already counts them, but the event-log type filter had no way to select them. Add both so operators can directly confirm Gemini stickiness (and affinity reuse) in the live log. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>2c706a6 -
Fix Gemini stickiness lost when model is detected after key pick
OpenAI-compatible Gemini (and node:http) requests reach nextKey() before the request body reveals the model, so the key is picked under the temporary unknown-model sticky bucket. promoteStickyKeyModel() then deleted that bucket once the model was sniffed, so the next request again picked under an empty unknown bucket and fell back to round-robin -- defeating stickiness entirely (keys rotated on every call). Keep the unknown-model fallback bucket pinned to the same key on promotion so subsequent model-unknown picks stay sticky. The fallback is still cleared on a real provider failure via clearStickyKey()'s fallback-bucket path, so a poisoned key is still abandoned. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>753f734 -
Fix key rotation for Anthropic (x-api-key) and dashboard pick counting
Anthropic's native API authenticates via the x-api-key header, not Authorization: Bearer. The rotator only injected a Bearer header for non-Gemini providers, so anthropic pool keys were never rotated — every request kept using the caller's original x-api-key (the first promoted key). Add a per-provider authHeader and inject the rotated key into the correct header (x-api-key for anthropic) across the fetch, undici, and node:http patch paths. Also add task_affinity_pick to the manager's PICK_TYPES so the dashboard counts affinity reuses as picks instead of undercounting them. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>158e463
-
Merge pull request #208 from anurag008w/codex/fix-key-rotator-for-production-stability
AnuragUnverified signatureKey rotator: add key fingerprints (kid), improve event classification, sticky logic, and HTTP/Fetch patch robustnessfbf7667 -
Fix non-query http overload callback handling
Anuragc01cdd5 -
Merge pull request #207 from anurag008w/codex/fix-key-rotation-and-manager-functionality
AnuragUnverified signaturePropagate requestId for in-flight requests and improve pending accounting & UI4ec0290 -
Correlate rotator requests in manager accounting
Anurag9e499c7 -
Merge pull request #206 from anurag008w/codex/fix-key-rotator-error-handling
AnuragUnverified signatureEnhance key-rotator error parsing/handling and UI metrics; tweak env-builder UX/CSScef2468 -
Fix custom env builder card layout
Anurag9f5cc78 -
Merge pull request #205 from anurag008w/codex/fix-key-rotation-in-key-rotator
AnuragUnverified signatureAdd short same-task key affinity to rotator, improve inflight TTL handling, and harden WhatsApp startup/install and boot scripts72d696f -
Merge branch 'main' into codex/fix-key-rotation-in-key-rotator
AnuragUnverified signature00a44d5 -
Fix OpenClaw abort accounting and provider timeout
Anurag347107f -
Do not penalize keys for caller aborts
Anurag997574c -
Add custom env card builder
Anurag77d78fb -
Prevent boot installs from being captured
Anurag6456d8c -
Merge pull request #204 from anurag008w/codex/fix-key-rotation-in-key-rotator
AnuragUnverified signatureAdd short-lived task-affinity to key rotator and relax in-flight lease failure treatment267942f -
Bound key affinity to short bursts
Anurag4c22d5d -
Merge pull request #203 from anurag008w/codex/fix-api-rate-limit-handling
AnuragUnverified signatureKey rotator: 30s inflight TTL, auto sticky-scope, and stale-pending rotationb921ac1 -
Keep Gemini failures model scoped
Anuragaffbd4d -
Merge pull request #202 from anurag008w/codex/fix-key-rotation-manager-issues-i201hk
AnuragUnverified signatureLimit Cloudflare proxy for AI providers; configurable LLM fallback, sticky scope, and UI/instrumentation improvementsfb81013 -
Route verbose pick logs away from stderr
Anurag09b3bed
-
Merge pull request #200 from anurag008w/codex/investigate-key-rotator-issue
AnuragUnverified signatureImprove key-rotator hostname handling and sync-layer isolation; avoid inheriting NODE_OPTIONS and persisting provider secrets66b3f0d -
Isolate maintenance installs from gateway preloads
Anurag58d9010 -
Merge pull request #199 from anurag008w/codex/investigate-key-rotator-issue
AnuragUnverified signatureImprove host resolution & sync-rotation handling; avoid persisting provider secrets to config by default08da72a -
Keep provider secrets out of OpenClaw config
Anurag882b83c -
Merge pull request #198 from anurag008w/codex/investigate-key-rotator-issue
AnuragUnverified signatureFix key rotator HTTP request logging931d91e -
Fix key rotator http logs
Anurag5ead3a8 -
improve selective traversal, and provider model updates
AnuragUnverified signatureImprove sync reliability: timeouts, temp-path cleanup, selective traversal, and provider model updatesa4e1e4c -
Merge branch 'main' into codex/fix-backup-and-session-issues-in-huggingclaw
AnuragUnverified signature625d1a2 -
Fix NVIDIA GLM model id
Anuragd42fdc0 -
Refresh verified NVIDIA model catalogs
Anuragce96c5b -
fix:sync issue from previous changes
AnuragUnverified signatureMake workspace sync robust: timeouts, temp-path pruning, upload strategies, hashing, and model updatesea03885 -
Merge branch 'main' into codex/fix-backup-and-session-issues-in-huggingclaw
AnuragUnverified signature5073e3f -
Detect tiny config and session rewrites
Anurag4f44d8a -
add NVIDIA Step-3.7 model
AnuragUnverified signature1a7be31 -
Add NVIDIA StepFun flash model
Anuragd02beec -
fix backup and session issues
AnuragUnverified signatureImprove workspace sync robustness: timeouts, lock handling, and temp-path pruningcff0cd1 -
Prune DevData traversal excludes
Anuragff724b2 -
Tune one-shot sync timeouts for large uploads
Anuragaf84aa7 -
fix-openclaw-synchronization-issues
AnuragUnverified signatureImprove DevData/OpenClaw sync robustness and persist shell historye1afa1b -
Update header display in start.sh
AnuragUnverified signatureReplace old header print with a new styled header.3467b85 -
Audit DevData excludes and startup banner
Anurag4fe794e -
Sync only populated Jupyter devdata folders
Anurag28ef70e -
fix: triple key picking bug - harden error scoping, balance sticky keys, fix http headers
anurag008w960fd80 -
feat: rotator observability wiring, in-flight accounting, rotator visibility fixes
anurag008w197a069 -
fix: key rotation logic - match proxied provider headers across transports
anurag008wb7270c7 -
fix: rotator quota safety diagnostics
anurag008wa29d948