[defer] feat(proxy): steer local core selector off set-aside members - #14752
Merged
diegosouzapw merged 4 commits intoSep 25, 2026
Merged
diegosouzapw merged 4 commits into
diegosouzapw merged 4 commits into
Conversation
maxmad64bis
force-pushed
the
fix/core-selector-control
branch
2 times, most recently
from
September 24, 2026 13:31
486b22b to
182708e
Compare
maxmad64bis
marked this pull request as ready for review
September 24, 2026 13:46
This was referenced Sep 24, 2026
maxmad64bis
marked this pull request as draft
September 24, 2026 23:41
maxmad64bis
force-pushed
the
fix/core-selector-control
branch
from
September 25, 2026 07:58
182708e to
57daa37
Compare
maxmad64bis
marked this pull request as ready for review
September 25, 2026 07:58
# Conflicts: # AGENTS.md # README.md # 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/bs/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
A bare <name> parses as an unclosed rich-text tag in next-intl, so the subscription help line fell back to printing the raw key in every locale. Escape it as '<name>' so it renders literally, with a regression test that compiles the message in all locales.
Owner
|
Migration number coordination: several open PRs claim the same slot, and the release tip is already at |
# Conflicts: # docs/reference/ENVIRONMENT.md
diegosouzapw
merged commit Sep 25, 2026
61a1134
into
diegosouzapw:release/v3.8.51
1 of 3 checks passed
This was referenced Sep 26, 2026
4 of 5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Control calls to the local core selector stay invisible when they fail: a blocked target, an unusable secret, a refused switch or a network error only reach the server log, so the operator never sees the steering is broken. Failed control calls now surface as a subscription warning through the existing warning path (
status = "ok"+errorcolumn carryingSELECTOR_SWITCH_FAILED), persisted in dedicated columns so the next sync does not erase it, and cleared by the next success. The switch slot is reserved before the firstawait, so two simultaneous triggers on one selector collapse to a singlePUT.Related Issues
No linked issue — failed control calls surfacing as subscription warnings answers the maintainer's #14702 review thread (2026-09-24).
Validation
npm run lintTests Added Or Updated
tests/unit/proxySubscription.selectorWarning.test.ts(new, 3 tests): refused switch → warning persists after sync; next success → cleared; 2 simultaneous triggers → 1 singlePUT; 3/3 green (RED-proven both ways).Coverage Notes
en.jsonkeys (14, incl. the error code) translated across all 66 locales (check-new-key-coverage: 0 proxySubscription gaps).Reviewer Notes
SELECTOR_CONTROL_ALLOWLISTdocumented in.env.example+ENVIRONMENT.md(check-env-doc-syncgreen).fix/selector-member-refusal-memory) sits on the old head — rebase it--ontothis head after merge.Maintainer rework (merge-batch 2026-09-24)
release/v3.8.51into the branch (real merge, author commits preserved).AGENTS.md,llm.txt, the 66docs/i18n/*/llm.txtmirrors andREADME.md: the count was already stale and those files are agent-instruction surfaces that need separate operator approval. They now match the release tip.193_proxy_subscription_selector_control.sql(190–192 are reserved for other PRs in the same batch). Note: fix(proxies): steer selector to members without recent refusals #14804 is stacked on this branch and creates the same193file.settings.proxySubscription.selectorHelpin all 67 locales: the bareselector=<name>was parsed by next-intl as an unclosed rich-text tag (UNCLOSED_TAG), so the help line fell back to showing the raw key. It is now ICU-escaped ('<name>') and renders literally. Regression test:tests/unit/proxySubscription.selectorHelpIcu.test.ts(red before, green after).