Release BJ (stage-379): v0.51.86 — 4-PR review-bypass batch — WebUI memory-provider session lifecycle + cross-provider /model alias + RuntimeAdapter cancel seam + Fork-from-here messaging coord#2486
Merged
Conversation
Backend (api/config.py): - resolve_model_provider(): check custom_providers for prefix match BEFORE the config_base_url branch. Previously, providers with a base_url set (e.g. deepseek) would catch all slash-delimited model ids and return the config provider, preventing custom provider routing. - get_available_models(): include model aliases in response so the frontend can resolve them on /model commands. Frontend (static/commands.js): - cmdModel(): resolve aliases by fetching /api/models before fuzzy matching the dropdown. - Add bare-model fallback when the alias resolves to a slash-delimited provider/model id (e.g. "deepseek/deepseek-v4-flash"). - Add cross-provider fallback: when the model is from a custom provider not in the active provider dropdown, call /api/session/update directly with the provider/model id and provider override.
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
…v0.51.83 (Opus catch)
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.
stage-379 — Release BJ / v0.51.86 — 4-PR review-bypass batch
Constituents (all nesquena APPROVED with detailed end-to-end traces)
/modelalias cross-provider routingTotal stage diff: 12 files changed, 1033 insertions(+), 56 deletions(-) (incl. 444 LOC tests + 208 LOC new module).
Theme of the batch
Four already-approved contributor fixes spanning four runtime surfaces: (a) a new WebUI memory-provider session-lifecycle module that gives OpenViking-style batch-extraction providers reliable boundary commits without per-turn extraction; (b) cross-provider
/model <alias>routing repair; (c) the first code slice of the Slice 3a cancel-control gate accepted in v0.51.85; (d) "Fork from here" coordinate-space fix on messaging-backed sessions.Verification
Pre-Opus gate (all clean)
node -constatic/commands.js+static/sessions.js: PASSast.parseonapi/session_lifecycle.py(new),api/streaming.py,api/routes.py,api/config.py,server.py: PASS**PR #TBD**from feat(runtime): route cancel through RuntimeAdapter seam #2479 contributor branch fixed during stamp)api/routes.pyduplicate-function-def check: cleanapi/streaming.pylines changed: 71 (only fix: add WebUI memory-provider session lifecycle for batch-extraction providers #2461 touches it; sensitive path)api/session_lifecycle.py(per the two-layer rule for >100 LOC + concurrency + new module): late-commit safety invariant, segment-merge correctness, empty-commit no-op, drain_all_on_shutdown, unregister_agent cleanup — all PASS via direct unmocked execution.pytest (full suite)
No regression in 20+ existing
resolve_model_providertests (relevant to #2473's narrow new conditional).Opus advisor sanity check
Notable known gap Opus flagged as low-risk: the reviewer's PR #2473 APPROVE comment references regression tests in commit
7b351336that were never actually pushed. The change is a single narrow conditional with explicit guards, and 20+ existing resolver tests pass; ship-acceptable.Browser sanity checks (port 8789 stage server)
All 11 API checks PASS:
/health,/,/static/*.js,/api/settings,POST /api/session/new,GET /api/session,POST /api/chat/start,GET /api/chat/stream/status,POST /api/session/delete.Not in this batch
Closes: PR #2461 closes the OpenViking commit gap; #2473 closes the cross-provider
/modelalias routing bug; #2479 lands the first code slice of Slice 3a; #2480 closes #2472 ("Fork from here" coordinate space).