v0.50.267 — Contributor PR batch + Opus follow-up
7 contributor PRs shipped in a single batch with full review pipeline (Phase 0 fit-screen, code review, full pytest suite, QA harness, Opus advisor). All 7 PRs already had CI green and were individually reviewable; batched for release efficiency.
Highlights
Model ID normalization (2 PRs by @happy5318) — _norm_model_id and frontend _normalizeConfiguredModelKey both had a split(':', 1)[1] bug that only stripped the first colon-separated segment, leaving jingdong:GLM-5 un-normalized for @custom:jingdong:GLM-5-style IDs. Now strips multi-segment provider prefixes correctly. Opus advisor caught a related edge case (trailing-colon malformed configs would collapse distinct IDs to empty string) and a defensive parts[-1] or s guard was added before merge.
Session navigation + lifecycle (5 PRs) — pushState instead of replaceState for chat navigation (#1461 by @JKJameson) so the back button actually returns to prior chats. ondblclick fallback for session rename (#1465 by @AlexeyDsov) catches double-taps that the manual click-counter sometimes misses. EventSource transport reuse on switch-back (#1467 by @dso2ng) eliminates a window where streamed events were dropped during teardown-and-reopen. Graceful 401-redirect handling in loadSession flow (#1460 by @joaompfp) prevents TypeError when the auth session expires mid-fetch. Batch session actions + in-flight reload recovery (#1473 by @Thanatos-Z) — three fixes including runtime {N} placeholder substitution in t() so batch action buttons no longer render literal {0}.
Constituents
- #1454, #1474 — model ID normalization (@happy5318)
- #1461 — pushState chat navigation (@JKJameson)
- #1465 — session rename ondblclick + loading guard (@AlexeyDsov)
- #1467 — reuse in-flight session stream (@dso2ng)
- #1460 — 401 redirect graceful handling (@joaompfp)
- #1473 — batch session actions + in-flight reload recovery (@Thanatos-Z)
Plus 1 Opus advisor pre-release follow-up: trailing-empty fallback in _norm_model_id / _normalizeConfiguredModelKey (5 regression tests).
Test results
- pytest tests/ — 3776 passed (was 3760; +16 net: +11 from PR-bundled tests, +5 from Opus follow-up)
- QA harness — 20/20 passed, all browser API sanity checks green on isolated port 8789
- CI on stage-267 — green across Python 3.11 / 3.12 / 3.13
Contributors
Thanks to @happy5318, @JKJameson, @AlexeyDsov, @dso2ng, @joaompfp, and @Thanatos-Z for the contributions.