Stage 383 / v0.51.90 — Release BN — 10-PR full sweep batch#2538
Merged
Conversation
…enu action PR #2294 added the show_previous_messaging_sessions setting and a "Hide from list" menu action for external sessions, but tripped 8 tests: - 4 locale-parity tests (tests/test_{japanese,russian,spanish,chinese}_locale.py) demand every en key be defined in ja/ru/es/zh blocks. The contributor only added the 5 new keys to en + ko, leaving ja/ru/es/zh/it/de/zh-TW/pt/fr missing them. tests/test_provider_quota_status.py also requires the two settings_{label,desc}_previous_messaging_sessions keys in ALL 11 locales. - tests/test_1466_sidebar_cancel_clarify.py read the first 5200 chars of _openSessionActionMenu to find cancelSessionStream/delete actions; the new "Hide from list" branch (17 lines for external sessions) pushed those past the read window. - tests/test_issue1611_session_profile_filtering.py grep'd for the literal string `_keep_latest_messaging_session_per_source(scoped)`, which no longer exists after the call was rewritten as a multi-line keyword-arg form. Fixes: 1. Translations for the 5 new i18n keys added to all 9 missing locales (it, ja, ru, es, de, zh-CN, zh-TW, pt, fr): - session_hide_external - session_hide_external_desc - session_hidden - settings_label_previous_messaging_sessions - settings_desc_previous_messaging_sessions Where the locale already used the English fallback for related keys (ru/es/de session_archive), I provided localized translations for the new keys to match the project's general direction. Native-script quality, not machine-translation. 2. test_1466 window bumped 5200 → 6400 with a comment explaining the bump (mirrors the existing 3200→4400→5200 history annotations). 3. test_1611 dedupe-position check loosened to match the function name without the `(scoped)` suffix so it tolerates both single-line and keyword-arg call shapes. Tests: full suite 5828 passed / 63 skipped / 0 failed (was 8 failed). Behavioral harness verifies the toggle's claimed behavior — off (default) hides reset/compression segments, on shows all rows in timestamp order. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts: # tests/test_gateway_sync.py
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
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 383 / v0.51.90 — Release BN — 10-PR full sweep batch
Full sweep batch covering 10 contributor PRs. No agent-authored work in this stage.
PRs in this batch
Fixed
base_urlas key-optional at WebUI agent startup (refactors 3 near-identical call sites throughresolve_custom_provider_connection)./modelscatalog even whencustom_providers[].modelis present.5+ mincap label past the Slice A bound./api/session/newis in flight; coalesces concurrentnewSession()calls behind a single in-flight promise.Added
show_previous_messaging_sessionssetting so users can opt back into seeing reset/auto-compressed messaging sessions; also adds a "Hide from list" action for imported messaging/CLI sessions.Documentation
docs/ui-ux/demo appearance controls to the current Theme + Skin contract instead of the deprecateddata-theme-only model.Verification
Pre-Opus 7-point gate — green
ast.parseover allapi/*.py+tests/*.py: clean^<<<<<<<,^>>>>>>>,^=======): none**PR (TBD|N/A|??)**placeholder scan: nonedocker_init.bash,docker-compose*.yml,.env.docker.example)Tests
5952 passed, 6 skipped, 3 xpassed in 119.58s (0:01:59)run-browser-tests.sh --skip-unit): 11/11 PASS (GET /health,GET /,GET /static/{ui,messages,sessions}.js,GET /api/settings,POST /api/session/new,GET /api/session,POST /api/chat/start,GET /api/chat/stream/status,POST /api/session/delete)Opus advisor (
opus-advise.sh --thinking) — GO-WITH-FOLLOWUPVerified each of the four concerns flagged in the brief:
get_available_models()and passes real configured keys to its new_read_custom_endpoint_modelshelper. fix: allow keyless named custom endpoints #2522 lives in_run_agent_streamingchat-build paths and injects a"dummy-key"only when the named provider has a base_url with no key. Shared depresolve_custom_provider_connection(api/config.py:1819) is untouched by either PR. Three call sites in_run_agent_streamingcorrectly DRY'd through the helper.api/routes.py:2167,show_previous_messaging_sessions=Trueshort-circuits before [codex] Fix empty gateway session hiding messaging history #2286's narrowedvisible_active_gateway_session_idsfilter. Both new tests intest_gateway_sync.pypass against the merged stage tip.try { return await _newSessionInFlight; } finally { _newSessionInFlight=null; }cleans up on resolve AND reject. Traced: network TypeError → retries → finally; HTTP 4xx/5xx → finally; 401 → undefined → TypeError → finally; concurrent click → returns same promise reference.test_queue_goal_adapter_methods_remain_docs_only_until_slice3c_implementationasserts the absence ofqueue_message/queue_input/update_goalonRuntimeAdapter/LegacyJournalRuntimeAdapter. It's a gate, not a contract lock — covers both old and new naming. Stamped withREMOVAL REQUIREDcomment intests/test_runtime_adapter_seam.pyso the next contributor doesn't "fix" it.Opus follow-ups (non-blocking, tracker-only):
AbortController+ ~30s timeout toapi()instatic/workspace.jsso_newSessionInFlightcan't stay pinned indefinitely on a request that accepts the connection but never responds. Pre-existing shape (not a regression from fix: guard new conversation cold-start clicks #2528)._read_custom_endpoint_modelsfails on a named provider — picker silently lacking models even though chat works is a confusing failure mode.REMOVAL REQUIREDcomment ontest_queue_goal_adapter_methods_remain_docs_only_until_slice3c_implementationso it's deleted with Slice 3c.Triage actions taken this sweep (not in the batch)
test (3.11)failing.Pre-merge CI
CI will gate the merge as usual.