Skip to content

feat(opencode): Proxy Pool dropdown (by-id) for account proxies (#5217 Gap 1) - #5370

Merged
diegosouzapw merged 2 commits into
release/v3.8.41from
fix/5217-gap1-proxy-pool-ui
Jun 29, 2026
Merged

diegosouzapw merged 2 commits into
release/v3.8.41from
fix/5217-gap1-proxy-pool-ui

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

Implements Gap 1 of #5217 (follow-up to the Stage 1 logging/observability PR #5351).

What

The OpenCode Free per-account proxy modal no longer forces manual Host/Port/credentials on every card. A Saved / Custom toggle:

  • Saved — pick a pre-saved proxy from the global Proxy Pool (GET /api/settings/proxies); stored as a by-id reference {fingerprint, proxyId}, so editing that pool proxy propagates to every account using it (the reporter's exact ask).
  • Custom — keeps the manual inputs (stored inline) as an escape hatch for one-off proxies.

Server-side resolveAccountProxiesFromRegistry (new src/sse/services/noAuthProxyResolution.ts) resolves proxyId → record in the no-auth credential path, so the executor receives a resolved proxy unchanged. Backward-compatible: existing inline entries keep working; an unknown/deleted proxyId degrades safely to direct (no crash). Persistence uses the lighter hydrate-by-id model (no proxy_assignments migration).

Validation (Hard Rule #18)

  • TDD (server) — noauth-proxy-resolution.test.ts (9): by-id resolve, credential omission, inline passthrough, unknown/deleted id, throwing lookup, precedence, malformed input. Fully unit-covered.
  • TDD (UI) — ui/noauth-account-card.test.tsx (+3): defaults to dropdown, persists {fingerprint, proxyId} on save, shield lights from a resolved reference.
  • Regression: opencode-rotation / mimocode / no-auth-fallback / apply-proxy-info → 47/47. typecheck/eslint/cycles/file-size clean.
  • Browser/VPS — being validated live (deploying to the VPS to render the dropdown in the dashboard and confirm the by-id round-trip); will post the evidence here.

… proxies (#5217 Gap 1)

Replaces the always-manual per-account proxy modal with a Saved/Custom toggle.
'Saved' picks a pool proxy from GET /api/settings/proxies and stores
{fingerprint, proxyId} (by-id reference — editing the pool proxy propagates to
all accounts using it); 'Custom' keeps the manual inputs (stored inline) as an
escape hatch. Server-side resolveAccountProxiesFromRegistry resolves proxyId ->
record so the executor receives a resolved proxy unchanged; inline entries keep
working; unknown/deleted proxyId degrades to direct (no crash).

Regression guards: noauth-proxy-resolution.test.ts, ui/noauth-account-card.test.tsx.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@diegosouzapw
diegosouzapw merged commit 24f178f into release/v3.8.41 Jun 29, 2026
1 check was pending
diegosouzapw added a commit that referenced this pull request Jun 29, 2026
Restores opencode-proxy-pool (#5370) + thinking RC-C (#5367) bullets and adds
the thinking A/B/D (#5352) bullet, all under a single header. Additive restore.
@diegosouzapw
diegosouzapw deleted the fix/5217-gap1-proxy-pool-ui branch July 1, 2026 19:24
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
… proxies (diegosouzapw#5217 Gap 1) (diegosouzapw#5370)

Integrated into release/v3.8.41 — Proxy Pool dropdown by-id for account proxies (diegosouzapw#5217 Gap 1).
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
Restores opencode-proxy-pool (diegosouzapw#5370) + thinking RC-C (diegosouzapw#5367) bullets and adds
the thinking A/B/D (diegosouzapw#5352) bullet, all under a single header. Additive restore.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant