Repository navigation
Conversation
# Conflicts: # AGENTS.md # README.md # docs/i18n/ar/llm.txt # docs/i18n/az/llm.txt # docs/i18n/bg/llm.txt # docs/i18n/bn/llm.txt # docs/i18n/cs/llm.txt # docs/i18n/da/llm.txt # docs/i18n/de/llm.txt # docs/i18n/es/llm.txt # docs/i18n/fa/llm.txt # docs/i18n/fi/llm.txt # docs/i18n/fr/llm.txt # docs/i18n/gu/llm.txt # docs/i18n/he/llm.txt # docs/i18n/hi/llm.txt # docs/i18n/hu/llm.txt # docs/i18n/id/llm.txt # docs/i18n/it/llm.txt # docs/i18n/ja/llm.txt # docs/i18n/ko/llm.txt # docs/i18n/mr/llm.txt # docs/i18n/ms/llm.txt # docs/i18n/nl/llm.txt # docs/i18n/no/llm.txt # docs/i18n/phi/llm.txt # docs/i18n/pl/llm.txt # docs/i18n/pt-BR/llm.txt # docs/i18n/pt/llm.txt # docs/i18n/ro/llm.txt # docs/i18n/ru/llm.txt # docs/i18n/sk/llm.txt # docs/i18n/sv/llm.txt # docs/i18n/sw/llm.txt # docs/i18n/ta/llm.txt # docs/i18n/te/llm.txt # docs/i18n/th/llm.txt # docs/i18n/tr/llm.txt # docs/i18n/uk-UA/llm.txt # docs/i18n/ur/llm.txt # docs/i18n/vi/llm.txt # docs/i18n/zh-CN/llm.txt # docs/i18n/zh-TW/llm.txt # llm.txt
…on-count docs 176_api_key_preferred_connections.sql collided with 176_xp_action_counts.sql, merged to release/v3.8.51 after this branch was cut. Renumbered to the next free slot (180) and recomputed the migration-count mentions in AGENTS.md, README.md, llm.txt and all docs/i18n/*/llm.txt against the real tip count (177). Also rebaselines the frozen file-size ceilings this PR's own feature growth crosses (src/sse/services/auth.ts, src/sse/handlers/chat.ts, src/lib/db/apiKeys.ts, ApiManagerPageClient.tsx) with justification, per check-file-size.mjs's own last-resort guidance. Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
…ken) Renamed 180_api_key_preferred_connections.sql to 184_api_key_preferred_connections.sql: the release tip landed 180_memory_fts_au_conditional_memory_id.sql after this PR's previous renumbering pass. Slot 184 is the owner-assigned number for this PR among the 7 PRs that collided on the 180 slot (cheaper-inference#13610=181, cheaper-inference#12962=182, cheaper-inference#12967=183, cheaper-inference#13102=184, cheaper-inference#13222=185, cheaper-inference#13373=186, cheaper-inference#13554=187). Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
# Conflicts: # AGENTS.md # README.md # config/quality/file-size-baseline.json # docs/i18n/am/llm.txt # docs/i18n/ar/llm.txt # docs/i18n/az/llm.txt # docs/i18n/bg/llm.txt # docs/i18n/bn/llm.txt # docs/i18n/cs/llm.txt # docs/i18n/da/llm.txt # docs/i18n/de/llm.txt # docs/i18n/el/llm.txt # docs/i18n/es/llm.txt # docs/i18n/et/llm.txt # docs/i18n/fa/llm.txt # docs/i18n/fi/llm.txt # docs/i18n/fr/llm.txt # docs/i18n/ga/llm.txt # docs/i18n/gu/llm.txt # docs/i18n/ha/llm.txt # docs/i18n/he/llm.txt # docs/i18n/hi/llm.txt # docs/i18n/hr/llm.txt # docs/i18n/hu/llm.txt # docs/i18n/hy/llm.txt # docs/i18n/id/llm.txt # docs/i18n/ig/llm.txt # docs/i18n/it/llm.txt # docs/i18n/ja/llm.txt # docs/i18n/ka/llm.txt # docs/i18n/km/llm.txt # docs/i18n/kn/llm.txt # docs/i18n/ko/llm.txt # docs/i18n/lt/llm.txt # docs/i18n/lv/llm.txt # docs/i18n/ml/llm.txt # docs/i18n/mr/llm.txt # docs/i18n/ms/llm.txt # docs/i18n/mt/llm.txt # docs/i18n/my/llm.txt # docs/i18n/ne/llm.txt # docs/i18n/nl/llm.txt # docs/i18n/no/llm.txt # docs/i18n/or/llm.txt # docs/i18n/pa/llm.txt # docs/i18n/phi/llm.txt # docs/i18n/pl/llm.txt # docs/i18n/pt-BR/llm.txt # docs/i18n/pt/llm.txt # docs/i18n/ro/llm.txt # docs/i18n/ru/llm.txt # docs/i18n/si/llm.txt # docs/i18n/sk/llm.txt # docs/i18n/sl/llm.txt # docs/i18n/sr/llm.txt # docs/i18n/sv/llm.txt # docs/i18n/sw/llm.txt # docs/i18n/ta/llm.txt # docs/i18n/te/llm.txt # docs/i18n/th/llm.txt # docs/i18n/tr/llm.txt # docs/i18n/uk-UA/llm.txt # docs/i18n/ur/llm.txt # docs/i18n/uz/llm.txt # docs/i18n/vi/llm.txt # docs/i18n/yo/llm.txt # docs/i18n/zh-CN/llm.txt # docs/i18n/zh-TW/llm.txt # llm.txt # src/lib/db/apiKeys.ts
… on the release train Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
…upstream Resolve apiKeys.ts (SELECT/INSERT carry both preferred_connections and the tip's expires_at/codex_service_mode), keys/route.ts (expiresAt + preferredConnections) and file-size-baseline.json (tip + measured ceilings). The legacy permissions modal no longer exists on the tip, so ApiManagerPageClient.tsx takes the tip's version; the preference UI is re-ported onto the access editor in the next commit.
The tip replaced the permissions modal with the per-key access editor, so the ordered preference list moves to a PreferredConnectionsSection component on the Connections tab (only connections the key may use are offered; click to append, arrows to reorder, Clear to reset). The form state carries selectedPreferredConnections, prunes it whenever the allowed set narrows, and the PATCH body always sends a subset of allowedConnections. Strings are translated in all 66 locales; up/down/inactive reuse common.* keys. Migration renumbered 184 -> 207 (184 is 184_proxy_logs_correlation_id on the tip, 206 is reserved). Routing doc points at the dashboard path. Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
# Conflicts: # src/sse/services/auth.ts
…upstream Resolve apiKeys.ts (metadata SELECT keeps preferred_connections on the new key_hash-only lookup), chat.ts (preferredConnectionIds threaded through the new selectCredentials helper) and file-size-baseline.json (base version; no ceiling exceeded). Renumber 207_api_key_preferred_connections.sql to 213 (207 is taken by 207_remove_opencode_free_provider.sql on the base) and name the changelog fragment with the PR number.
|
2026-10-24 validation update: isolated stacked branch |
|
2026-10-25 staged progress: |
Safe staged integration — NOT for production
Built from the upstream-first staging branch (#51), no changes to the existing
productionbranch or running VPS. This is a stacked draft PR; do not merge into production. The new branch is a source migration candidate only, not a tested release.Included
preferredConnectionsordering, UI, credential selection and regression tests (source of 91-file change, including translations).en,pt-BR,vi) by preserving existingremoveSelectionand newpreferredConnections*labels. All JSON parsed successfully.170/api_key_preferred_connectionsand194/api_key_preferred_connectionsledger entries to canonical213/api_key_preferred_connections.194_proxy_logs_attempt_timinginvariant by checking bothproxy_logs.headers_msandfirst_chunk_ms;213checksapi_keys.preferred_connections. This matters because the live fork database is known to contain the legacy194marker and no official timing columns (seedocs/maintenance/UPSTREAM_PARITY_GAP_AUDIT_20261024.mdon production).tests/unit/api-key-preferred-migration-bridge.test.tsexercises fresh database, previously migrated database and historical 170/194 markers plus idempotent repeat boot, using synthetic in-memory SQLite.src/sse/services/auth.tsretains the Codex eligibility import.Checked so far
git diff --check).Required before integration
runMigrations(); verify legacy 170/194 and new 213 ledgers, partially migrated states, rollback/backup safeguards and repeat startup.preferredFallbackAvailablemetadata, preferred 5s/12s Gemini 3.8 timeout behavior, and the newer hot DB/API settings from fork feat(api): adaptive Antigravity resilience, model quarantine and hot timeouts #47 separately. This branch includes only the contribution feat(auth): add per-API-key ordered connection preference cheaper-inference/OmniRoute#13102 and DB bridge, not advanced feat(api): adaptive Antigravity resilience, model quarantine and hot timeouts #47/fix: prevent Antigravity timing metrics from leaking on ignored responses #49 runtime quarantine/telemetry.Keep #51 and this PR draft, no deployment or migration against live DB.