Skip to content

stage-batch33: v0.51.151 / Release DW — SSE reattach + title-lang + composer cap#3038

Merged
nesquena-hermes merged 5 commits into
masterfrom
release/stage-batch33
May 28, 2026
Merged

stage-batch33: v0.51.151 / Release DW — SSE reattach + title-lang + composer cap#3038
nesquena-hermes merged 5 commits into
masterfrom
release/stage-batch33

Conversation

@nesquena-hermes
Copy link
Copy Markdown
Collaborator

stage-batch33 — 3-PR mid-risk batch (v0.51.151 / Release DW)

3 contributor PRs, all MERGEABLE, full pytest 6713 passed / 0 failed / 161s, Opus advisor SHIP-AS-IS.

Contents

PR Author Summary Files
#2925 @wirtsi SSE reattach on session-switch return + close leaked stream connections (closes #2924) 7 files +156/-17
#2984 @ai-ag2026 Keep generated session titles in conversation language 2 files +124
#2946 @Koraji95-coder Cap composer max-width at 1600px on ultrawide viewports (#2856 Position A) 1 file +5

Verification

  • Targeted pytest (subset): 176 passed, 0 failed, 7.67s
  • Sequential full pytest: 6713 passed, 11 skipped, 1 xfailed, 2 xpassed, 0 failed, 161.55s
  • Opus advisor: SHIP-AS-IS, 0 MUST-FIX, 4 SHOULD-FIX (filed as follow-up issue)
  • Pre-Opus gate: JS syntax, Python ast.parse, merge markers, CHANGELOG TBD, lock hygiene, Docker surface, string-assertion sweep — all clean

Extra fix in this stage

Pre-existing pytest failure on master (test_named_custom_provider_models_endpoint_network_error_uses_short_timeout) was caught by the full-suite gate. Root cause: the test recorder picked up unrelated background probes (Copilot v2 token, OpenRouter free-tier discovery) that now run during get_available_models(). Fix narrows the recorder to the broken-proxy endpoint only — the contract being pinned is unchanged. Single test-only commit.

Build skew sanity check

All three contributor branches MERGEABLE against current master at the time of staging. Stale-base dual-diff check:

Follow-ups to file post-merge

Opus flagged 4 SHOULD-FIX items (none ship-blocking):

  1. _detect_title_language German false-positive surface (api/streaming.py:1381-1394) — common tokens like 'session', 'die', 'der', 'das' can trigger German detection on English-with-tech-jargon prompts. Should require ≥3 hits or drop the most-ambiguous tokens.
  2. Hardcoded 'Alte Session Bilder' German fallback (api/streaming.py:1872-1877) — branch-specific one-off, tech debt.
  3. Title-language rule only knows German exemplars — uneven UX vs other locales.
  4. _isSessionActivelyViewed gate is broader than the comment claims (static/messages.js:2155-2158) — focus-gated reconnect.
  5. Implicit DOM↔INFLIGHT contract on reattach (static/messages.js:661-670) — load-bearing invariant not asserted.

Will file as single follow-up issue after release lands.

Koraji95-coder and others added 5 commits May 28, 2026 02:47
…orts (#2946)

Squash-merged pr-2946 into stage-batch33.
Squash-merged pr-2984 into stage-batch33.
…ections (#2925)

Squash-merged pr-2925 into stage-batch33. Closes #2924.
3-PR mid-risk batch: SSE reattach + title-lang + composer cap (#2925, #2984, #2946)
…example

Pre-existing failure on master: the test assumed only the broken-proxy /v1/models call would route through fake_urlopen, but get_available_models() also probes the Copilot internal v2 token endpoint (10.0s timeout) and OpenRouter free-tier discovery (8.0s), which now pollute the recorded timeout list.

Fix narrows the recorder to the broken-proxy endpoint only. The contract being pinned (broken-proxy probe uses CUSTOM_MODELS_ENDPOINT_TIMEOUT_SECONDS, not the urllib default 10) is unchanged.

Caught by stage-batch33 sequential pytest gate.
@nesquena-hermes nesquena-hermes merged commit 4d6269e into master May 28, 2026
3 checks passed
@nesquena-hermes nesquena-hermes deleted the release/stage-batch33 branch May 28, 2026 03:10
@zoilanyferrer9-stack
Copy link
Copy Markdown

  • Targeted pytest (subset): 176 passed, 0 failed, 7.67s
  • Sequential full pytest: 6713 passed, 11 skipped, 1 xfailed, 2 xpassed, 0 failed, 161.55s
  • Opus advisor: SHIP-AS-IS, 0 MUST-FIX, 4 SHOULD-FIX (filed as follow-up issue)
  • Pre-Opus gate: JS syntax, Python ast.parse, merge markers, CHANGELOG TBD, lock hygiene, Docker surface, string-assertion sweep — all clean

Extra fix in this stage

Pre-existing pytest failure on master (test_named_custom_provider_models_endpoint_network_error_uses_short_timeout) was caught by the full-suite gate. Root cause: the test recorder picked up unrelated background probes (Copilot v2 token, OpenRouter free-tier discovery) that now run during get_available_models(). Fix narrows the recorder to the broken-proxy endpoint only — the contract being pinned is unchanged. Single test-only commit.

Opus flagged 4 SHOULD-FIX items (none ship-blocking):

  1. _detect_title_language German false-positive surface (api/streaming.py:1381-1394) — common tokens like 'session', 'die', 'der', 'das' can trigger German detection on English-with-tech-jargon prompts. Should require ≥3 hits or drop the most-ambiguous tokens.
  2. Hardcoded 'Alte Session Bilder' German fallback (api/streaming.py:1872-1877) — branch-specific one-off, tech debt.
  3. Title-language rule only knows German exemplars — uneven UX vs other locales.
  4. _isSessionActivelyViewed gate is broader than the comment claims (static/messages.js:2155-2158) — focus-gated reconnect.
  5. Implicit DOM↔INFLIGHT contract on reattach (static/messages.js:661-670) — load-bearing invariant not asserted.

Will file as single follow-up issue after release lands.

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.

Live SSE stream does not reattach after session switch — user sees no live tokens until completion

4 participants