Skip to content

fix(dashboard): show effective egress on no-auth account card - #14796

Merged
diegosouzapw merged 3 commits into
diegosouzapw:release/v3.8.51from
maxmad64bis:fix/noauth-effective-egress
Sep 25, 2026
Merged

diegosouzapw merged 3 commits into
diegosouzapw:release/v3.8.51from
maxmad64bis:fix/noauth-effective-egress

Conversation

@maxmad64bis

@maxmad64bis maxmad64bis commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • The no-auth card labeled any proxyless account "Direct (no proxy)", so users on a proxied or pooled connection saw direct egress while traffic inherited the connection's assignment.
  • The card rendered only the account's own proxy and never consulted the connection-level assignment list (GET /api/settings/proxies/assignments, list mode only — never the mutating resolve endpoints).
  • The card now derives a pure effective-egress value (own, inherited proxy, inherited pool by count, fail-closed empty pool, or direct only when nothing applies) for shield title/aria and selector option, with five new noAuthProvider keys in en/vi; execution unchanged.

Related Issues

  • No linked issue — self-contained UI display fix; read-only, no behavior change.

Validation

  • Change type: UI, i18n
  • Focused tests and category gates from the golden path
  • npm run lint
  • Reconciled with the current active release base; focused checks rerun afterward
  • Production-code changes include a new or updated automated test in this PR

Tests Added Or Updated

  • tests/unit/ui/noauth-effective-egress.test.tsx (new): 10 pure getEffectiveEgress cases (inherited proxy/pool-by-count, direct, pool-empty fail-closed, proxy-off-first, orphan proxyId, legacy fallback, provider→global precedence) + 3 render cases (inherited shield title, renamed empty option, pool-empty never direct); RED 13 failed before, GREEN 13 after.
  • tests/unit/ui/noauth-account-card.test.tsx unchanged green (8/8); tests/unit/7993-noauth-proxy-routing.test.ts + dashboard-localization-contract.test.ts green (16 passed, 0 failed); i18n: 67 locales, 0 __MISSING__ in vi.json.

Coverage Notes

  • The new getEffectiveEgress derivation plus shield/select branches are covered by the 13-case suite (all kinds plus proxy-off/orphan/legacy/combo edges).
  • No coverage decrease expected: all existing suites stay green, untouched behavior keeps its coverage.

Reviewer Notes

  • Assignments are read in list mode only — the resolveConnectionId/?resolve= endpoints are forbidden for display because they advance rotation cursors server-side.
  • proxyEnabled=false wins first; otherwise inheritance is assumed when the flag is absent.
  • A pool renders by count only, never a picked member; an empty pool renders fail-closed, never direct (registry rows only).

Maintainer rework (merge-batch 2026-09-24)

  • Merged the current release/v3.8.51 tip into the branch (clean merge, author commit preserved).
  • getEffectiveEgress: a combo-scope assignment only applies to requests routed through that combo, so a combo row alone no longer puts the account in pool-empty ("Pool empty, requests fail"). When no account, provider or global level decides the egress, a combo row now returns null (not affirmable). The card then keeps the neutral legacy shield and claims neither direct nor pool-empty. No new i18n keys.
  • Tests: the two combo unit tests now expect null, and a new render test checks that a combo-only setup shows the neutral "Configure proxy" shield without the red pool-empty styling. All three fail on the previous head and pass with the fix.

@maxmad64bis
maxmad64bis force-pushed the fix/noauth-effective-egress branch 2 times, most recently from 1028105 to 0926058 Compare September 24, 2026 19:12
@maxmad64bis
maxmad64bis marked this pull request as ready for review September 24, 2026 19:26
@maxmad64bis
maxmad64bis marked this pull request as draft September 24, 2026 21:21
@maxmad64bis
maxmad64bis force-pushed the fix/noauth-effective-egress branch from 0926058 to 2c39f9c Compare September 25, 2026 00:18
@maxmad64bis
maxmad64bis marked this pull request as ready for review September 25, 2026 01:01
…auth cards

A combo-scope assignment only applies to requests routed through that combo,
so its mere existence must not paint every account as "Pool empty, requests
fail". When no account/provider/global level decides, return null so the card
keeps the neutral legacy shield instead of claiming either direct or pool-empty.
diegosouzapw pushed a commit that referenced this pull request Sep 25, 2026
…attempts (#14474)

Merged in the 2026-09-25 maintainer merge-batch — thank you for the contribution!

The maintainer rework applied to this branch (if any) is described in the "Maintainer rework (merge-batch)" section of the PR body. Re-validated in a combined tree with the other ready Track-B PRs (#14474, #14188, #14525, #14807, #14796) on the current `release/v3.8.51` tip:
- 182/183 focused node tests. The one red (`combo-skipped-reset-timing`) passes 1/1 when run on its own; it is a timing flake under devbox load 95.
- `typecheck:core`: 0 errors; the tests these PRs previously broke (video-bridge-log-redaction, quota-reset-timing, flagship-0day-discovery, provider-models-discovery-split) are all green in the combined tree.
diegosouzapw pushed a commit that referenced this pull request Sep 25, 2026
…14525)

Merged in the 2026-09-25 maintainer merge-batch — thank you for the contribution!

The maintainer rework applied to this branch (if any) is described in the "Maintainer rework (merge-batch)" section of the PR body. Re-validated in a combined tree with the other ready Track-B PRs (#14474, #14188, #14525, #14807, #14796) on the current `release/v3.8.51` tip:
- 182/183 focused node tests. The one red (`combo-skipped-reset-timing`) passes 1/1 when run on its own; it is a timing flake under devbox load 95.
- `typecheck:core`: 0 errors; the tests these PRs previously broke (video-bridge-log-redaction, quota-reset-timing, flagship-0day-discovery, provider-models-discovery-split) are all green in the combined tree.
@diegosouzapw
diegosouzapw merged commit 6d941b9 into diegosouzapw:release/v3.8.51 Sep 25, 2026
11 of 16 checks passed
diegosouzapw pushed a commit that referenced this pull request Sep 25, 2026
Merged in the 2026-09-25 maintainer merge-batch — thank you for the contribution!

The maintainer rework applied to this branch (if any) is described in the "Maintainer rework (merge-batch)" section of the PR body. Re-validated in a combined tree with the other ready Track-B PRs (#14474, #14188, #14525, #14807, #14796) on the current `release/v3.8.51` tip:
- 182/183 focused node tests. The one red (`combo-skipped-reset-timing`) passes 1/1 when run on its own; it is a timing flake under devbox load 95.
- `typecheck:core`: 0 errors; the tests these PRs previously broke (video-bridge-log-redaction, quota-reset-timing, flagship-0day-discovery, provider-models-discovery-split) are all green in the combined tree.
diegosouzapw added a commit to maxmad64bis/OmniRoute that referenced this pull request Sep 25, 2026
…gress-visibility

Locales rebuilt as the release tip plus only this PR's keys. NoAuthAccountCard
keeps the tip's effective-egress shield (diegosouzapw#14796) and appends the set-aside note
to its title. The transport set-aside kind from diegosouzapw#14802 now maps to the
proxy-unreachable label instead of printing the raw kind.
diegosouzapw pushed a commit that referenced this pull request Sep 25, 2026
…nd preference order (#14754)

Maintainer rework: reconciled with release/v3.8.51 — locales rebuilt as the tip plus only this PR's keys (proxyRegistry.pool*, noAuthProvider.proxySetAside; bs also gets the 5 requestTimeline translations the tip was missing), 0 __MISSING__; NoAuthAccountCard keeps the tip's effective-egress shield (#14796) and appends the set-aside note to its title; the new 'transport' set-aside kind from #14802 maps to the proxy-unreachable label instead of the raw kind (new vitest case, red without the mapping). Tests: pool-visibility + refusal/transport suites 79/79, UI vitest 16/16; typecheck:core clean, open-sse typecheck OK, i18n ratio/keys/new-keys PASS, file-size OK. Thank you @maxmad64bis!
deptrai pushed a commit to deptrai/OmniRoute that referenced this pull request Sep 28, 2026
…iegosouzapw#14525)

Merged in the 2026-09-25 maintainer merge-batch — thank you for the contribution!

The maintainer rework applied to this branch (if any) is described in the "Maintainer rework (merge-batch)" section of the PR body. Re-validated in a combined tree with the other ready Track-B PRs (diegosouzapw#14474, diegosouzapw#14188, diegosouzapw#14525, diegosouzapw#14807, diegosouzapw#14796) on the current `release/v3.8.51` tip:
- 182/183 focused node tests. The one red (`combo-skipped-reset-timing`) passes 1/1 when run on its own; it is a timing flake under devbox load 95.
- `typecheck:core`: 0 errors; the tests these PRs previously broke (video-bridge-log-redaction, quota-reset-timing, flagship-0day-discovery, provider-models-discovery-split) are all green in the combined tree.
@maxmad64bis
maxmad64bis deleted the fix/noauth-effective-egress branch September 30, 2026 00:21
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.

2 participants