Skip to content

fix(combo): isolate session stickiness by combo - #10137

Merged
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
hydraxman:fix/priority-combo-skip
Aug 13, 2026
Merged

diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
hydraxman:fix/priority-combo-skip

Conversation

@hydraxman

Copy link
Copy Markdown
Contributor

Summary

  • keep session-stickiness bindings local to the Combo that learned them
  • preserve same-Combo prompt-cache affinity while preventing identical first messages from reordering another priority chain
  • apply the same namespace on standard and round-robin dispatch paths

Related Issues

Validation

  • Change type: routing
  • Focused tests and category gates from the golden path
  • Targeted ESLint on all changed TypeScript files
  • Reconciled with the current active release base; focused checks rerun afterward
  • Production-code changes include an updated automated test in this PR
  • SonarQube PR analysis is green or any remaining issues are explicitly documented below

Focused validation:

  • node --import tsx/esm --test tests/unit/combo-session-stickiness.test.ts tests/unit/combo-disable-session-stickiness.test.ts — 34 passed
  • npx eslint open-sse/services/combo.ts open-sse/services/combo/sessionStickiness.ts open-sse/services/combo/targetResolution.ts tests/unit/combo-session-stickiness.test.ts --no-cache --suppressions-location config/quality/eslint-suppressions.json — passed
  • npm run check:complexity — passed
  • git diff HEAD^ HEAD --check — passed

Tests Added Or Updated

  • tests/unit/combo-session-stickiness.test.ts
    • proves bindings remain reusable within one Combo
    • proves the same first message cannot carry that binding into a different Combo

Coverage Notes

The focused regression exercises the new namespace at the session-stickiness boundary and verifies both isolation and retained same-Combo reuse. The two production callers pass the existing Combo name into that boundary; no routing branch or failure-handling path was removed.

Reviewer Notes

The active release head currently has unrelated baseline failures: core typecheck stops at malformed syntax in src/shared/constants/providers/apikey/gateways.ts; file-size reports six untouched files; changelog integrity reports two untouched feature fragments. The changed files pass targeted ESLint, focused tests, complexity, and diff checks.

@diegosouzapw
diegosouzapw merged commit 06f41cd into diegosouzapw:release/v3.8.50 Aug 13, 2026
4 of 6 checks passed
@diegosouzapw

Copy link
Copy Markdown
Owner

Merged into release/v3.8.50 — thank you @hydraxman for the contribution! It was validated on a combined merge-train (static gates + affected tests + vitest) together with 30 sibling PRs before landing.

fenix007 pushed a commit to fenix007/OmniRoute that referenced this pull request Aug 20, 2026
Co-authored-by: Bryan Nathan <bryan@users.noreply.github.com>
(cherry picked from commit 06f41cd)
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
Co-authored-by: Bryan Nathan <bryan@users.noreply.github.com>
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.

[BUG] Priority combo skips intermediate target and falls through to later target

3 participants