Release BI (stage-378): v0.51.85 — 3-PR review-bypass batch — workspace-prefix display leakage fix + release-tag update banner + Slice 3a cancel-control gate RFC#2478
Merged
Conversation
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-378 — Release BI / v0.51.85 — 3-PR review-bypass batch
Constituents (all nesquena APPROVED prior to staging)
Total stage diff: 8 files changed, 421 insertions(+), 33 deletions(-)
Theme of the batch
Three tightly scoped contributor fixes — workspace-prefix display leakage in the streaming dedupe path (#2145, sensitive seam), release-tag-based update banner with bounded dirty-probe (#2146), and a docs-only Slice 3a cancel-control gate update to the runtime-adapter RFC (#2469).
Verification
Pre-Opus gate (all clean)
node -c static/ui.js: PASSast.parseonapi/streaming.py+api/updates.py: PASS^<<<<<<<|^>>>>>>>|^=======): cleanapi/streaming.pychange (sensitive path):_looks_like_current_user_turnis exact-match-after-strip (no substring fuzz)_assistant_reply_added_after_current_turnslices from current-turn position; falls back to full result_messages when_find_current_user_turnreturns Nonepytest (full suite)
Opus advisor sanity check
Opus specifically verified:
_looks_like_current_user_turnempty-needle guard at line 1006 prevents the empty-msg_text false positive_assistant_reply_added_after_current_turnnot m.get('_error')invariant matches synthetic error payloads filtered elsewhere_run_journal_has_visible_output— separate code paths, different fieldstimeout=1) ondiff-index --quiet: timeout →"", clean →"", dirty →"-dirty"; verified bytest_dirty_check_timeout_does_not_hide_base_version_release_gapreturns 0 when current==latest) verified bytest_release_check_ignores_post_release_branch_commitsNon-blocking follow-up Opus flagged: the self-heal retry path at
api/streaming.py:4095still uses the old_has_new_assistant_replylength-delta; not a regression because of theor _token_sentclause, but worth unifying with the primary path in a follow-up.Browser sanity checks (port 8789 stage server)
All 11 API checks PASS —
/health,/,/static/*,/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 (intentionally)
/modelalias cross-provider routing fix; awaiting independent review.confirm()), no contributor response in 3 days.process_completeSSE event; contributor turn to rebase.Closes: PR #2145 fixes silent failures in the workspace-prefix display path; PR #2146 cleans up release-tag detection; PR #2469 advances the runtime-adapter RFC.