From 17233293ac254538ed846722bd71612e88d0f953 Mon Sep 17 00:00:00 2001 From: ai-ag2026 <261867348+ai-ag2026@users.noreply.github.com> Date: Mon, 25 May 2026 06:11:22 +0200 Subject: [PATCH 01/13] fix(chat): dedupe uploaded-file pending turns --- static/sessions.js | 1 + tests/test_regressions.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/static/sessions.js b/static/sessions.js index 83d8c5c4..1e05847e 100644 --- a/static/sessions.js +++ b/static/sessions.js @@ -647,6 +647,7 @@ async function loadSession(sid){ if(!Array.isArray(messages)) return false; const pendingMsg=typeof getPendingSessionMessage==='function'?getPendingSessionMessage(session,messages):null; if(!pendingMsg) return false; + if(messages.some(existing=>_sameTranscriptMessage(existing,pendingMsg))) return false; const liveAssistantIdx=messages.findIndex(m=>m&&m.role==='assistant'&&m._live); if(liveAssistantIdx>=0) messages.splice(liveAssistantIdx,0,pendingMsg); else messages.push(pendingMsg); diff --git a/tests/test_regressions.py b/tests/test_regressions.py index 0c4d8ab8..c944f194 100644 --- a/tests/test_regressions.py +++ b/tests/test_regressions.py @@ -665,6 +665,12 @@ def test_inflight_merge_dedupes_uploaded_user_message(cleanup_test_sessions): assert "role==='user'" in src, ( "attached-files normalization should be limited to user turns" ) + pending_idx = src.find("function _mergePendingSessionMessage") + assert pending_idx >= 0, "pending session merge helper not found" + pending_block = src[pending_idx:pending_idx+500] + assert "_sameTranscriptMessage(existing,pendingMsg)" in pending_block, ( + "pending-user merge should reuse transcript identity dedupe before inserting the server pending message" + ) def test_loadSession_inflight_sets_active_stream_before_replaying_live_tool_cards(cleanup_test_sessions): From 21655af09b432449808a5c3ce7525c125f3d05d3 Mon Sep 17 00:00:00 2001 From: ai-ag2026 <261867348+ai-ag2026@users.noreply.github.com> Date: Mon, 25 May 2026 07:58:52 +0200 Subject: [PATCH 02/13] fix(chat): accept session_id URL parameter --- CHANGELOG.md | 4 ++++ static/sessions.js | 2 +- tests/test_regressions.py | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42919130..46168d2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ ## [Unreleased] +### Fixed + +- Browser session links that use the API-style `?session_id=` query parameter now open the requested conversation instead of falling back to the last locally stored session. + ## [v0.51.134] — 2026-05-25 — Release DF (stage-batch16 — single-PR Windows path defaults) ### Fixed diff --git a/static/sessions.js b/static/sessions.js index 83d8c5c4..cdd1709e 100644 --- a/static/sessions.js +++ b/static/sessions.js @@ -1556,7 +1556,7 @@ function _sessionIdFromLocation(){ } try{ const qs=new URLSearchParams(window.location.search||''); - return qs.get('session')||null; + return qs.get('session')||qs.get('session_id')||null; }catch(_e){return null;} } function _sessionUrlForSid(sid){ diff --git a/tests/test_regressions.py b/tests/test_regressions.py index 0c4d8ab8..1aa92703 100644 --- a/tests/test_regressions.py +++ b/tests/test_regressions.py @@ -650,6 +650,25 @@ def test_loadSession_inflight_merges_tail_with_persisted_transcript(cleanup_test ) + +def test_browser_session_url_accepts_api_session_id_param(cleanup_test_sessions): + """External links using ?session_id=... should open that session in the browser. + + The API endpoint uses `session_id`, while the browser URL historically used + `session`/`/session/`. Auth/cookie bridges and external callers can + legitimately produce `/?session_id=`; ignoring it falls back to stale + localStorage and renders the wrong or empty conversation. + """ + src = (REPO_ROOT / "static/sessions.js").read_text() + start = src.find("function _sessionIdFromLocation") + assert start >= 0, "session URL parser not found" + end = src.find("function _sessionUrlForSid", start) + assert end > start, "session URL parser block end not found" + block = src[start:end] + assert "qs.get('session')" in block or 'qs.get("session")' in block + assert "qs.get('session_id')" in block or 'qs.get("session_id")' in block + + def test_inflight_merge_dedupes_uploaded_user_message(cleanup_test_sessions): """Uploaded-file turns render optimistically before the server stores the final pending text with an `[Attached files: ...]` suffix. The INFLIGHT From 21e981a16641a8605fd44f1a9180b08ebe746d8d Mon Sep 17 00:00:00 2001 From: Frank Song Date: Mon, 25 May 2026 15:50:47 +0800 Subject: [PATCH 03/13] test: cover metadata-only profile routing --- ...test_issue2762_state_sync_profile_kwarg.py | 162 ++++++++++++++++++ 1 file changed, 162 insertions(+) diff --git a/tests/test_issue2762_state_sync_profile_kwarg.py b/tests/test_issue2762_state_sync_profile_kwarg.py index 577e289f..487941e1 100644 --- a/tests/test_issue2762_state_sync_profile_kwarg.py +++ b/tests/test_issue2762_state_sync_profile_kwarg.py @@ -25,6 +25,7 @@ from __future__ import annotations import sys import sqlite3 +import threading from pathlib import Path import pytest @@ -96,6 +97,72 @@ def _read_session(db_path: Path, session_id: str): conn.close() +def _make_message_state_db(path: Path, session_id: str, message_count: int, label: str): + conn = sqlite3.connect(path) + try: + conn.execute( + "CREATE TABLE sessions (id TEXT PRIMARY KEY, source TEXT, title TEXT, model TEXT, started_at REAL, message_count INTEGER)" + ) + conn.execute( + "CREATE TABLE messages (id INTEGER PRIMARY KEY AUTOINCREMENT, session_id TEXT, role TEXT, content TEXT, timestamp REAL)" + ) + conn.execute( + "INSERT INTO sessions (id, source, title, model, started_at, message_count) VALUES (?, ?, ?, ?, ?, ?)", + (session_id, "webui", label, "test-model", 1000.0, message_count), + ) + for idx in range(message_count): + conn.execute( + "INSERT INTO messages (session_id, role, content, timestamp) VALUES (?, ?, ?, ?)", + ( + session_id, + "user" if idx % 2 == 0 else "assistant", + f"{label} message {idx + 1}", + 1000.0 + idx, + ), + ) + conn.commit() + finally: + conn.close() + + +@pytest.fixture() +def two_profile_message_homes(tmp_path, monkeypatch): + """Minimal multi-profile state.db homes for metadata-only read-path tests.""" + import api.config as config + import api.models as models_mod + import api.profiles as profiles_mod + import api.routes as routes_mod + + hiyuki_home = tmp_path / "hiyuki" + maiko_home = tmp_path / "maiko" + session_dir = tmp_path / "webui-state" / "sessions" + for home in (hiyuki_home, maiko_home, session_dir): + home.mkdir(parents=True) + + sid = "metadata_profile_routing" + _make_message_state_db(hiyuki_home / "state.db", sid, 1, "hiyuki") + _make_message_state_db(maiko_home / "state.db", sid, 3, "maiko") + + def fake_profile_home(name): + if name == "maiko": + return maiko_home + if name == "hiyuki" or name in (None, "", "default"): + return hiyuki_home + raise LookupError(name) + + monkeypatch.setattr(profiles_mod, "get_hermes_home_for_profile", fake_profile_home) + monkeypatch.setattr(profiles_mod, "get_active_hermes_home", lambda: hiyuki_home) + monkeypatch.setattr(models_mod, "_active_state_db_path", lambda: hiyuki_home / "state.db") + monkeypatch.setattr(config, "STATE_DIR", tmp_path / "webui-state", raising=False) + monkeypatch.setattr(config, "SESSION_DIR", session_dir, raising=False) + monkeypatch.setattr(config, "SESSION_INDEX_FILE", session_dir / "_index.json", raising=False) + monkeypatch.setattr(models_mod, "SESSION_DIR", session_dir, raising=False) + monkeypatch.setattr(models_mod, "SESSION_INDEX_FILE", session_dir / "_index.json", raising=False) + monkeypatch.setattr(routes_mod, "_active_state_db_path", lambda: hiyuki_home / "state.db", raising=False) + + return {"sid": sid, "hiyuki": hiyuki_home, "maiko": maiko_home, "session_dir": session_dir} + + def test_get_state_db_honors_explicit_profile_kwarg(two_profile_homes): """_get_state_db(profile='maiko') resolves to maiko's home, NOT the active profile (hiyuki).""" @@ -182,6 +249,101 @@ def test_sync_session_usage_without_profile_kwarg_uses_active(two_profile_homes) "sync_session_usage() without profile= regressed: did not write to active profile's state.db" +def test_metadata_only_summary_reads_explicit_profile_state_db(two_profile_message_homes): + """Metadata-only state.db reads must honor explicit profile=. + + This pins the read-path equivalent of #2762/#2827: if the helper drops the + profile kwarg or stops forwarding it to get_state_db_session_messages(), it + falls back to the active profile (hiyuki) and reports the wrong count. + """ + from api.routes import _metadata_only_message_summary + + sid = two_profile_message_homes["sid"] + + maiko_summary = _metadata_only_message_summary(sid, profile="maiko") + hiyuki_summary = _metadata_only_message_summary(sid) + + assert maiko_summary["message_count"] == 3 + assert hiyuki_summary["message_count"] == 1 + + +def test_metadata_only_summary_honors_profile_from_background_thread(two_profile_message_homes): + """Explicit profile= must work even when TLS active-profile context is absent.""" + from api.routes import _metadata_only_message_summary + + sid = two_profile_message_homes["sid"] + result = {} + + def run(): + result["summary"] = _metadata_only_message_summary(sid, profile="maiko") + + worker = threading.Thread(target=run) + worker.start() + worker.join(timeout=2) + + assert not worker.is_alive() + assert result["summary"]["message_count"] == 3 + + +def test_api_session_metadata_only_passes_session_profile_to_summary( + two_profile_message_homes, monkeypatch +): + """GET /api/session?messages=0 must pass the loaded session profile onward. + + If the call site accidentally invokes _metadata_only_message_summary(sid) + without profile=s.profile, this test reports the active hiyuki count (1) + instead of maiko's count (3). + """ + from urllib.parse import urlparse + from io import BytesIO + + import api.models as models_mod + import api.routes as routes_mod + + sid = two_profile_message_homes["sid"] + session = models_mod.Session( + session_id=sid, + title="Metadata profile routing", + workspace=str(two_profile_message_homes["session_dir"]), + model="test-model", + profile="maiko", + messages=[ + {"role": "user", "content": "maiko message 1", "timestamp": 1000.0} + ], + created_at=1000.0, + updated_at=1001.0, + ) + session.save(touch_updated_at=False) + monkeypatch.setattr(routes_mod, "_lookup_cli_session_metadata", lambda _sid: {}) + + class Handler: + path = f"/api/session?session_id={sid}&messages=0&resolve_model=0" + headers = {} + client_address = ("127.0.0.1", 12345) + + def __init__(self): + self.status = None + self.wfile = BytesIO() + + def send_response(self, status): + self.status = status + + def send_header(self, *_args): + pass + + def end_headers(self): + pass + + def log_message(self, *_args, **_kwargs): + pass + + handler = Handler() + routes_mod.handle_get(handler, urlparse(handler.path)) + + assert handler.status == 200 + assert b'"message_count": 3' in handler.wfile.getvalue() + + def test_unknown_explicit_profile_returns_none_not_falls_back(two_profile_homes): """Copilot review of PR #2827: when ``profile`` is explicit and resolution fails (e.g. typoed profile name, IO error), the From 85e13a612107493071f298dcbe5c70f5723914b3 Mon Sep 17 00:00:00 2001 From: Frank Song Date: Mon, 25 May 2026 15:58:27 +0800 Subject: [PATCH 04/13] fix: reserve space for clarify dialogs --- CHANGELOG.md | 4 ++ static/messages.js | 54 +++++++++++++++++++++++++ static/style.css | 2 + tests/test_issue2883_clarify_padding.py | 46 +++++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 tests/test_issue2883_clarify_padding.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 42919130..ce110c9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ ## [Unreleased] +### Fixed + +- Clarification dialogs now reserve transcript space while open or collapsed, so the question prompt no longer covers the assistant text needed to answer it. + ## [v0.51.134] — 2026-05-25 — Release DF (stage-batch16 — single-PR Windows path defaults) ### Fixed diff --git a/static/messages.js b/static/messages.js index f10b5d9d..61b9346e 100644 --- a/static/messages.js +++ b/static/messages.js @@ -2677,12 +2677,63 @@ function _syncClarifyCollapseButton(card) { collapse.title = label; } +let _clarifyResizeListenerReady = false; + +function _clarifyMessagesNearBottom(messages) { + if (!messages) return false; + return messages.scrollHeight - messages.scrollTop - messages.clientHeight < 150; +} + +function _syncClarifyTranscriptSpace(card, opts) { + opts = opts || {}; + const messages = $("messages"); + if (!messages) return; + const wasNearBottom = _clarifyMessagesNearBottom(messages); + if (!card || !card.classList.contains("visible")) { + messages.classList.remove("clarify-open"); + messages.classList.remove("clarify-collapsed"); + messages.style.removeProperty("--clarify-card-height"); + messages.style.removeProperty("--clarify-dock-height"); + if (wasNearBottom && typeof scrollToBottom === "function" && typeof requestAnimationFrame === "function") { + requestAnimationFrame(scrollToBottom); + } + return; + } + const collapsed = card.classList.contains("collapsed"); + messages.classList.add("clarify-open"); + messages.classList.toggle("clarify-collapsed", collapsed); + const measure = () => { + if (!card.classList.contains("visible")) return; + const target = collapsed ? card : (card.querySelector(".clarify-inner") || card); + const h = target && target.getBoundingClientRect().height; + if (h > 0) { + messages.style.setProperty(collapsed ? "--clarify-dock-height" : "--clarify-card-height", Math.ceil(h + 24) + "px"); + } + if (wasNearBottom && typeof scrollToBottom === "function") scrollToBottom(); + }; + if (opts.immediate) measure(); + if (typeof requestAnimationFrame === "function") requestAnimationFrame(measure); + setTimeout(measure, 420); +} + +function _ensureClarifyResizeListener() { + if (_clarifyResizeListenerReady || typeof window === "undefined") return; + _clarifyResizeListenerReady = true; + window.addEventListener("resize", () => { + const card = $("clarifyCard"); + if (card && card.classList.contains("visible")) { + _syncClarifyTranscriptSpace(card, {immediate: true}); + } + }, {passive: true}); +} + function toggleClarifyCardCollapsed(forceCollapsed) { const card = $("clarifyCard"); if (!card) return; const collapsed = typeof forceCollapsed === "boolean" ? forceCollapsed : !card.classList.contains("collapsed"); card.classList.toggle("collapsed", collapsed); _syncClarifyCollapseButton(card); + _syncClarifyTranscriptSpace(card, {immediate: true}); } function _clearClarifyHideTimer() { @@ -2797,6 +2848,7 @@ function hideClarifyCard(force=false, reason="dismissed") { _clarifySessionId = null; _resetClarifyCardState(); card.classList.remove("visible"); + _syncClarifyTranscriptSpace(null); if (typeof unlockComposerForClarify === "function") unlockComposerForClarify(); $("clarifyQuestion").textContent = ""; $("clarifyChoices").innerHTML = ""; @@ -2911,8 +2963,10 @@ function showClarifyCard(pending) { lockComposerForClarify(question ? `Clarification needed: ${question}` : "Clarification needed"); } _clarifySetControlsDisabled(false, false); + _ensureClarifyResizeListener(); card.classList.add("visible"); _syncClarifyCollapseButton(card); + _syncClarifyTranscriptSpace(card, {immediate: true}); if (typeof applyLocaleToDOM === "function") applyLocaleToDOM(); // Move focus to clarify input synchronously (not in setTimeout) and // only if the user wasn't mid-type in the composer textarea. diff --git a/static/style.css b/static/style.css index b658d1fa..7ff52d11 100644 --- a/static/style.css +++ b/static/style.css @@ -984,6 +984,8 @@ .messages.terminal-open{padding-bottom:var(--terminal-card-height,320px);scroll-padding-bottom:var(--terminal-card-height,320px);transition:padding-bottom .26s cubic-bezier(.2,.8,.2,1);} .messages.terminal-collapsed{padding-bottom:var(--terminal-dock-height,72px);scroll-padding-bottom:var(--terminal-dock-height,72px);transition:padding-bottom .22s cubic-bezier(.2,.8,.2,1);} .messages.handoff-dock-visible{padding-bottom:var(--handoff-dock-height,72px);scroll-padding-bottom:var(--handoff-dock-height,72px);transition:padding-bottom .22s cubic-bezier(.2,.8,.2,1);} + .messages.clarify-open{padding-bottom:var(--clarify-card-height,320px);scroll-padding-bottom:var(--clarify-card-height,320px);transition:padding-bottom .22s cubic-bezier(.2,.8,.2,1);} + .messages.clarify-collapsed{padding-bottom:var(--clarify-dock-height,72px);scroll-padding-bottom:var(--clarify-dock-height,72px);} .messages.terminal-expanding-from-dock{transition:none!important;} .queue-card-inner{background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:14px 14px 0 0;contain:paint;transform:translateY(100%);opacity:0;transition:transform .35s cubic-bezier(.32,.72,.16,1),opacity .2s ease;overflow:hidden;max-height:240px;overflow-y:auto;padding-bottom:4px;} .queue-card.visible .queue-card-inner{transform:translateY(0);opacity:1;} diff --git a/tests/test_issue2883_clarify_padding.py b/tests/test_issue2883_clarify_padding.py new file mode 100644 index 00000000..3c289698 --- /dev/null +++ b/tests/test_issue2883_clarify_padding.py @@ -0,0 +1,46 @@ +from pathlib import Path + + +ROOT = Path(__file__).resolve().parent.parent +MESSAGES_JS = (ROOT / "static" / "messages.js").read_text(encoding="utf-8") +STYLE_CSS = (ROOT / "static" / "style.css").read_text(encoding="utf-8") + + +def _compact(text: str) -> str: + return "".join(text.split()) + + +def test_clarify_card_reserves_transcript_space(): + compact_css = _compact(STYLE_CSS) + + assert ".messages.clarify-open" in STYLE_CSS + assert "padding-bottom:var(--clarify-card-height,320px)" in compact_css + assert "scroll-padding-bottom:var(--clarify-card-height,320px)" in compact_css + + +def test_clarify_collapse_uses_smaller_transcript_space(): + compact_css = _compact(STYLE_CSS) + compact_js = _compact(MESSAGES_JS) + + assert ".messages.clarify-collapsed" in STYLE_CSS + assert "padding-bottom:var(--clarify-dock-height,72px)" in compact_css + assert 'classList.toggle("clarify-collapsed",collapsed)' in compact_js + assert "--clarify-dock-height" in MESSAGES_JS + + +def test_clarify_show_hide_toggle_messages_padding_classes(): + compact_js = _compact(MESSAGES_JS) + + assert "_syncClarifyTranscriptSpace(card,{immediate:true})" in compact_js + assert "_syncClarifyTranscriptSpace(null)" in compact_js + assert 'classList.add("clarify-open")' in MESSAGES_JS + assert 'classList.remove("clarify-open")' in MESSAGES_JS + assert "--clarify-card-height" in MESSAGES_JS + + +def test_clarify_padding_remeasures_on_resize(): + compact_js = _compact(MESSAGES_JS) + + assert "function_ensureClarifyResizeListener()" in compact_js + assert 'window.addEventListener("resize"' in MESSAGES_JS + assert "_ensureClarifyResizeListener();" in MESSAGES_JS From 10463158f877e310569e96d959c8b0610a668e64 Mon Sep 17 00:00:00 2001 From: Frank Song Date: Mon, 25 May 2026 16:25:11 +0800 Subject: [PATCH 05/13] docs: add clarify dialog screenshot evidence --- docs/images/pr-2919-clarify-after-desktop.png | Bin 0 -> 68369 bytes docs/images/pr-2919-clarify-before-desktop.png | Bin 0 -> 123556 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/pr-2919-clarify-after-desktop.png create mode 100644 docs/images/pr-2919-clarify-before-desktop.png diff --git a/docs/images/pr-2919-clarify-after-desktop.png b/docs/images/pr-2919-clarify-after-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..344ba3dc4e066dd088ee548e2f300b63a22d839b GIT binary patch literal 68369 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®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 literal 0 HcmV?d00001 diff --git a/docs/images/pr-2919-clarify-before-desktop.png b/docs/images/pr-2919-clarify-before-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..4ad4291220ab264edb87fcdbd30d4f6f62b13ed6 GIT binary patch literal 123556 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 T$NZS2*7E6N^+$*Y&tLr;=}F%v literal 0 HcmV?d00001 From cfca26f2e8d158755340b997e2f19a5be5865c9a Mon Sep 17 00:00:00 2001 From: Frank Song Date: Mon, 25 May 2026 16:31:15 +0800 Subject: [PATCH 06/13] Repaint sidebar after session archive or delete --- CHANGELOG.md | 4 +++ static/sessions.js | 27 +++++++++++++++++--- tests/test_session_action_menu_regression.py | 26 +++++++++++++++++++ 3 files changed, 54 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42919130..8079ed45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ ## [Unreleased] +### Fixed + +- Session sidebar Archive/Delete menu actions now repaint from local sidebar state immediately after the server confirms the mutation, instead of waiting for the full `/api/sessions` refresh before the row disappears. + ## [v0.51.134] — 2026-05-25 — Release DF (stage-batch16 — single-PR Windows path defaults) ### Fixed diff --git a/static/sessions.js b/static/sessions.js index 83d8c5c4..34fb99ab 100644 --- a/static/sessions.js +++ b/static/sessions.js @@ -1544,6 +1544,24 @@ function _sessionArchiveToast(response, session){ function _sessionDeleteDescription(session){ return session&&session.worktree_path?t('session_delete_worktree_desc'):t('session_delete_desc'); } +function _optimisticallyArchiveSessionInList(sid, archived){ + if(!sid||!Array.isArray(_allSessions)) return; + let changed=false; + _allSessions=_allSessions.map(s=>{ + if(!s||s.session_id!==sid) return s; + changed=true; + return {...s,archived:!!archived}; + }); + if(changed) renderSessionListFromCache(); +} +function _optimisticallyRemoveSessionFromList(sid){ + if(!sid||!Array.isArray(_allSessions)) return; + const before=_allSessions.length; + _allSessions=_allSessions.filter(s=>!s||s.session_id!==sid); + if(_selectedSessions&&_selectedSessions.has(sid)) _selectedSessions.delete(sid); + if(typeof _dropStaleOptimisticSessionRow==='function') _dropStaleOptimisticSessionRow(sid); + if(_allSessions.length!==before) renderSessionListFromCache(); +} function _sessionIdFromLocation(){ if(typeof window==='undefined'||!window.location) return null; @@ -1866,9 +1884,10 @@ function _openSessionActionMenu(session, anchorEl){ closeSessionActionMenu(); try{ const response=await api('/api/session/archive',{method:'POST',body:JSON.stringify({session_id:session.session_id,archived:!session.archived})}); + _optimisticallyArchiveSessionInList(session.session_id,!session.archived); session.archived=!session.archived; if(S.session&&S.session.session_id===session.session_id) S.session.archived=session.archived; - await renderSessionList(); + void renderSessionList(); showToast(session.archived?_sessionArchiveToast(response,session):t('session_restored')); }catch(err){showToast(t('session_archive_failed')+err.message);} } @@ -1882,9 +1901,10 @@ function _openSessionActionMenu(session, anchorEl){ closeSessionActionMenu(); try{ await api('/api/session/archive',{method:'POST',body:JSON.stringify({session_id:session.session_id,archived:true})}); + _optimisticallyArchiveSessionInList(session.session_id,true); session.archived=true; if(S.session&&S.session.session_id===session.session_id) S.session.archived=true; - await renderSessionList(); + void renderSessionList(); showToast(t('session_hidden')); }catch(err){showToast(t('session_archive_failed')+err.message);} } @@ -3874,6 +3894,7 @@ async function deleteSession(sid){ let response=null; try{ response=await api('/api/session/delete',{method:'POST',body:JSON.stringify({session_id:sid})}); + _optimisticallyRemoveSessionFromList(sid); _clearHandoffStorageForSession(sid); }catch(e){setStatus(`Delete failed: ${e.message}`);return;} if(S.session&&S.session.session_id===sid){ @@ -3894,7 +3915,7 @@ async function deleteSession(sid){ } } showToast(_sessionResponseRetainsWorktree(response,session)?t('session_deleted_worktree'):t('session_deleted')); - await renderSessionList(); + void renderSessionList(); } // ── Project helpers ───────────────────────────────────────────────────── diff --git a/tests/test_session_action_menu_regression.py b/tests/test_session_action_menu_regression.py index e3d36cdc..136b5882 100644 --- a/tests/test_session_action_menu_regression.py +++ b/tests/test_session_action_menu_regression.py @@ -29,3 +29,29 @@ def test_session_list_refresh_does_not_close_open_conversation_actions(): assert "if(_renamingSid) return;" in body assert "if(_sessionActionMenu) return;" in body assert body.index("if(_sessionActionMenu) return;") < body.index("closeSessionActionMenu();") + + +def test_archive_action_repaints_sidebar_before_full_refresh(): + """Archive should hide the row from cached sidebar state before /api/sessions returns.""" + body = _function_block(SESSIONS_JS, "_openSessionActionMenu") + + api_call = "const response=await api('/api/session/archive'" + optimistic = "_optimisticallyArchiveSessionInList(session.session_id,!session.archived);" + full_refresh = "void renderSessionList();" + + assert optimistic in body + assert body.index(api_call) < body.index(optimistic) < body.index(full_refresh) + + +def test_delete_action_repaints_sidebar_before_loading_remaining_sessions(): + """Delete should remove the row locally before loading replacement session data.""" + body = _function_block(SESSIONS_JS, "deleteSession") + + api_call = "response=await api('/api/session/delete'" + optimistic = "_optimisticallyRemoveSessionFromList(sid);" + remaining_fetch = "const remaining=await api('/api/sessions');" + full_refresh = "void renderSessionList();" + + assert optimistic in body + assert body.index(api_call) < body.index(optimistic) < body.index(full_refresh) + assert body.index(optimistic) < body.index(remaining_fetch) From 5e1b51d16f0c1404bf2d45cb3ac238b2189e7b18 Mon Sep 17 00:00:00 2001 From: ai-ag2026 <261867348+ai-ag2026@users.noreply.github.com> Date: Mon, 25 May 2026 11:14:15 +0200 Subject: [PATCH 07/13] docs: add canonical session resolution contract --- CHANGELOG.md | 3 + docs/CONTRACTS.md | 5 + docs/rfcs/README.md | 3 + docs/rfcs/canonical-session-resolution.md | 124 ++++++++++++++++++ .../test_canonical_session_resolution_rfc.py | 37 ++++++ 5 files changed, 172 insertions(+) create mode 100644 docs/rfcs/canonical-session-resolution.md create mode 100644 tests/test_canonical_session_resolution_rfc.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 42919130..f1a89c2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ ## [Unreleased] +### Added +- Added a proposed canonical session resolution RFC covering URL routes, query parameters, localStorage, sidebar rows, and compression-lineage IDs so future session-routing fixes have one review contract. + ## [v0.51.134] — 2026-05-25 — Release DF (stage-batch16 — single-PR Windows path defaults) ### Fixed diff --git a/docs/CONTRACTS.md b/docs/CONTRACTS.md index 44649946..777a7436 100644 --- a/docs/CONTRACTS.md +++ b/docs/CONTRACTS.md @@ -27,6 +27,11 @@ does not change runtime behavior, maintainer policy, bot behavior, or CI gates. model-context reconstruction, compression, UI scene/cache, and sidebar metadata repairs. Start here for narrow fixes that keep the existing WebUI execution path. +- [`docs/rfcs/canonical-session-resolution.md`](rfcs/canonical-session-resolution.md): + proposed contract for resolving URL routes, query parameters, localStorage, + sidebar rows, and compression-lineage IDs to one canonical visible session + target. Start here for session routing, boot restore, stale parent, or + compression-tip selection changes. - [`docs/rfcs/hermes-run-adapter-contract.md`](rfcs/hermes-run-adapter-contract.md): proposed event/control contract, runtime-state ownership matrix, acceptance-test catalog, and reversible migration gates for moving WebUI diff --git a/docs/rfcs/README.md b/docs/rfcs/README.md index 58b9291c..9cd72388 100644 --- a/docs/rfcs/README.md +++ b/docs/rfcs/README.md @@ -46,5 +46,8 @@ First-time contributor RFCs should be discussed in an issue before opening a PR. — #2361 consistency rules for keeping transcript, model context, live streams, replay, compression, and session metadata coherent during active and recovered WebUI runs. +- [`canonical-session-resolution.md`](canonical-session-resolution.md) — #2361 + focused contract for resolving URL, query parameter, localStorage, sidebar, + and compression-lineage session IDs to one canonical visible chat target. - [`turn-journal.md`](turn-journal.md) — Crash-safe WebUI turn journal for recovering interrupted chat submissions. diff --git a/docs/rfcs/canonical-session-resolution.md b/docs/rfcs/canonical-session-resolution.md new file mode 100644 index 00000000..5f1a416c --- /dev/null +++ b/docs/rfcs/canonical-session-resolution.md @@ -0,0 +1,124 @@ +# Canonical Session Resolution Contract + +- **Status:** Proposed +- **Author:** @ai-ag2026 +- **Created:** 2026-05-25 +- **Tracking issue:** [#2361](https://github.com/nesquena/hermes-webui/issues/2361) +- **Related architecture:** [#1925](https://github.com/nesquena/hermes-webui/issues/1925), [`webui-run-state-consistency-contract.md`](webui-run-state-consistency-contract.md) + +## Problem + +WebUI can reach the same conversation through several browser-facing entrypoints: + +- a URL route such as `/session/`, +- a query parameter such as `?session=` or `?session_id=`, +- the browser's `localStorage` active-session value, +- sidebar rows built from `/api/sessions`, +- direct session open actions from links, search, or imported session lists, +- browser boot restore after reload, auth redirect, or PWA resume. + +After automatic compression, those entrypoints can point at different rows in one +logical conversation lineage. A pre-compression parent snapshot can remain a +valid archived session while the user-facing conversation tip has moved to a +newer continuation. If each caller resolves IDs independently, the UI can appear +to lose the session, reopen an old one-message snapshot, duplicate sidebar rows, +or prefer the wrong transcript even though durable data is still present. + +This contract defines the expected resolution semantics for those entrypoints. It +is intentionally narrower than the run adapter RFC: this is about choosing the +correct visible session target, not moving execution ownership. + +## Goals + +- Define one canonical browser-facing resolution concept for sessions and + compression lineage. +- Make URL, query parameter, localStorage, sidebar, and direct-open behavior use + the same mental model. +- Preserve archived parent snapshots without letting them become the default + active target when a continuation exists. +- Give reviewers a small checklist for future session-routing, sidebar, and + compression-lineage changes. + +## Non-goals + +- Do not delete archived `pre_compression_snapshot` rows. +- Do not merge or rewrite session files as part of this contract. +- Do not replace state.db/session sidecar reconciliation. +- Do not require a new backend endpoint before narrow frontend guards can land. +- Do not change explicit history browsing when the user deliberately opens an + archived snapshot as a record. + +## Terms + +| Term | Meaning | +|---|---| +| Requested session ID | The ID supplied by route, query parameter, localStorage, sidebar click, or direct session open. | +| Canonical visible session | The session row WebUI should display by default for normal chat navigation. | +| `canonical_visible_session_id` | Proposed field/name for an API or helper output that identifies the canonical visible session. | +| Compression snapshot | A preserved archived parent row with `pre_compression_snapshot` set. | +| Continuation session | The active child/tip created after compression, usually represented by `continuation_session_id`, `_lineage_tip_id`, or newer lineage metadata. | +| Lineage relation | Links such as `parent_session_id`, `_lineage_root_id`, `_lineage_tip_id`, and `_compression_segment_count` that connect rows belonging to one logical conversation. | + +## Resolution Rules + +1. **Directly valid non-snapshot IDs stay stable.** If the requested session ID + exists and is not a `pre_compression_snapshot`, it should normally resolve to + itself. +2. **Snapshot parents defer to visible continuation tips.** If the requested + session ID is a `pre_compression_snapshot` and the session list has a newer + non-snapshot continuation in the same lineage, normal chat navigation should + resolve to that continuation as the `canonical_visible_session_id`. +3. **Explicit archive/history inspection remains possible.** A future UI affordance + may intentionally open a snapshot as a historical record, but that should be a + distinct mode from ordinary boot restore, URL restore, or sidebar continuation. +4. **Local browser state is advisory.** `localStorage` may remember the last active + ID, but browser boot restore must treat it as a requested session ID and still + run canonical resolution before rendering. +5. **Query aliases share the same resolver.** `?session=...`, `?session_id=...`, + and `/session/...` should feed the same requested-ID path instead of carrying + separate precedence rules. +6. **Sidebar collapse and session loading agree.** The row chosen as the visible + representative for a lineage should match the target opened by `loadSession()` + for that lineage during ordinary navigation. +7. **404 self-heal is separate from lineage resolution.** Missing/deleted sessions + should still use the stale-route recovery path. A present archived parent with + a live continuation is not a 404; it is a canonicalization problem. + +## Entry Point Matrix + +| Entry point | Input | Expected resolution | +|---|---|---| +| URL route | `/session/` | Treat `` as requested; resolve to canonical visible session before ordinary render. | +| Query parameter | `?session=` or `?session_id=` | Same as URL route. Query spelling must not change the target semantics. | +| localStorage | last active session ID | Advisory requested ID during browser boot restore; canonicalize before render. | +| Sidebar click | visible row ID or lineage representative | Open the same canonical visible session that the row represents. | +| Direct session open | programmatic call/search/import link | Use the shared requested-ID resolver unless the caller explicitly opts into archive inspection. | +| Browser boot restore | URL and/or localStorage state after reload/auth/PWA resume | Prefer explicit URL/query input, then localStorage, then canonicalize the requested ID. | + +## Review Checklist + +For PRs that touch session routing, compression lineage, sidebar collapse, boot +restore, direct session open, or URL parsing, answer: + +- Which entrypoints provide the requested session ID? +- Does the code path accept both route and query parameter forms where relevant? +- Does localStorage go through the same canonicalization path as URL restore? +- Can a `pre_compression_snapshot` become the default active chat when a + non-snapshot `continuation_session_id` / `_lineage_tip_id` exists? +- Do sidebar collapse and `loadSession()` pick the same visible representative? +- Is missing-session 404 recovery kept distinct from present-but-archived lineage + canonicalization? +- What regression proves route, query parameter, localStorage, and sidebar paths + agree for compressed lineage rows? + +## Rollout Plan + +1. Document this proposed contract and link it from the public contract index. +2. Keep narrow bugfixes small while referencing the relevant rule they preserve. +3. Add shared frontend helper coverage for URL/query/localStorage/sidebar + requested-ID inputs. +4. If backend session APIs later expose `canonical_visible_session_id`, make the + frontend resolver prefer the backend value while preserving client fallback for + older WebUI servers. +5. If #1925 moves execution/session ownership behind an adapter, carry this + contract forward as an adapter-facing session-navigation invariant. diff --git a/tests/test_canonical_session_resolution_rfc.py b/tests/test_canonical_session_resolution_rfc.py new file mode 100644 index 00000000..f3edc687 --- /dev/null +++ b/tests/test_canonical_session_resolution_rfc.py @@ -0,0 +1,37 @@ +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +RFC = ROOT / "docs" / "rfcs" / "canonical-session-resolution.md" +RFC_INDEX = ROOT / "docs" / "rfcs" / "README.md" +CONTRACTS = ROOT / "docs" / "CONTRACTS.md" + + +def test_canonical_session_resolution_rfc_is_indexed(): + assert RFC.exists(), "canonical session resolution RFC must exist" + + rel = "docs/rfcs/canonical-session-resolution.md" + rfc_index = RFC_INDEX.read_text(encoding="utf-8") + contracts = CONTRACTS.read_text(encoding="utf-8") + + assert "canonical-session-resolution.md" in rfc_index + assert rel in contracts + + +def test_canonical_session_resolution_contract_names_entrypoints_and_outputs(): + text = RFC.read_text(encoding="utf-8") + + required_terms = [ + "URL route", + "query parameter", + "localStorage", + "sidebar", + "pre_compression_snapshot", + "canonical_visible_session_id", + "continuation_session_id", + "parent_session_id", + "direct session open", + "browser boot restore", + ] + + missing = [term for term in required_terms if term not in text] + assert missing == [] From 2881fcec89e2fe49d92db1569c4b8a979e11e98c Mon Sep 17 00:00:00 2001 From: carryzuo00 Date: Mon, 25 May 2026 10:35:37 +0000 Subject: [PATCH 08/13] fix(agent_health): detect profile-scoped gateway.pid for correct status _gateway_root_pid_path() unconditionally returned /gateway.pid. Profile-scoped gateways (started with --profile or via active_profile) write their runtime files under /profiles// instead of the root, so the root-level path never existed. build_agent_health_payload() therefore always received a non-existent pid_path, fell through to the stale root-level gateway_state.json, and returned alive=None. This caused the cron/scheduled-jobs page to display "Gateway not configured" even when a gateway was actively running. Fix: after failing to find a root-level gateway.pid, fall back to the active profile directory via get_active_hermes_home(). Root-level wins when it exists, so deployments that do write there are unaffected. Errors from profile lookup are swallowed and the root path is returned, preserving the previous safe default. Adds five focused unit tests covering the new fallback, the priority rule, and the error-handling path. --- api/agent_health.py | 16 ++- tests/test_agent_health_pid_path_fallback.py | 108 +++++++++++++++++++ 2 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 tests/test_agent_health_pid_path_fallback.py diff --git a/api/agent_health.py b/api/agent_health.py index 2ee564e5..897827ab 100644 --- a/api/agent_health.py +++ b/api/agent_health.py @@ -174,10 +174,24 @@ def _gateway_root_pid_path() -> Path | None: Gateway runtime files are root-level singletons. A profile-scoped WebUI process may have HERMES_HOME=/profiles/, but gateway.pid, gateway.lock, and gateway_state.json still live under . + + When the root-level gateway.pid is absent (profile-scoped gateway + deployments write it under /profiles//), fall back to the + active profile's directory so the gateway is detected correctly. """ try: from hermes_constants import get_default_hermes_root - return get_default_hermes_root() / _GATEWAY_PID_FILE + root_pid = get_default_hermes_root() / _GATEWAY_PID_FILE + if root_pid.exists(): + return root_pid + try: + from api.profiles import get_active_hermes_home + profile_pid = Path(get_active_hermes_home()) / _GATEWAY_PID_FILE + if profile_pid.exists(): + return profile_pid + except Exception: + pass + return root_pid except Exception: return None diff --git a/tests/test_agent_health_pid_path_fallback.py b/tests/test_agent_health_pid_path_fallback.py new file mode 100644 index 00000000..e0a5b37d --- /dev/null +++ b/tests/test_agent_health_pid_path_fallback.py @@ -0,0 +1,108 @@ +"""Regression coverage for _gateway_root_pid_path() profile-scoped fallback. + +Before the fix, _gateway_root_pid_path() unconditionally returned +/gateway.pid. Profile-scoped gateways (running via +``gateway run --profile `` or with ``active_profile`` set) write +their PID file under /profiles//gateway.pid instead of +the root, so the root-level file never existed. The WebUI's +build_agent_health_payload() therefore always received a non-existent +pid_path, fell through to the stale root-level gateway_state.json, and +returned alive=None — causing the cron page to display "Gateway not +configured" even though the gateway was running. + +Fix: when the root-level gateway.pid is absent, _gateway_root_pid_path() +now falls back to the active profile's directory. +""" + +from __future__ import annotations + +from pathlib import Path + + +def _call(monkeypatch, root: Path, profile_dir: Path | None = None) -> Path | None: + """Call _gateway_root_pid_path() with mocked filesystem roots.""" + import hermes_constants + import api.profiles as profiles + + monkeypatch.setattr(hermes_constants, "get_default_hermes_root", lambda: root) + if profile_dir is not None: + monkeypatch.setattr(profiles, "get_active_hermes_home", lambda: str(profile_dir)) + + from api.agent_health import _gateway_root_pid_path + return _gateway_root_pid_path() + + +# ── core behaviour ──────────────────────────────────────────────────────────── + +def test_returns_root_pid_when_root_level_file_exists(tmp_path, monkeypatch): + """Root-level gateway.pid present → return it (original behaviour unchanged).""" + root = tmp_path / "hermes" + root.mkdir() + root_pid = root / "gateway.pid" + root_pid.write_text("1234") + profile_dir = root / "profiles" / "other" + profile_dir.mkdir(parents=True) + (profile_dir / "gateway.pid").write_text("9999") + + result = _call(monkeypatch, root=root, profile_dir=profile_dir) + assert result == root_pid + + +def test_falls_back_to_profile_pid_when_root_absent(tmp_path, monkeypatch): + """Root gateway.pid absent + profile-level exists → return profile path.""" + root = tmp_path / "hermes" + root.mkdir() + # root-level gateway.pid intentionally not created + profile_dir = root / "profiles" / "safeline" + profile_dir.mkdir(parents=True) + profile_pid = profile_dir / "gateway.pid" + profile_pid.write_text("5678") + + result = _call(monkeypatch, root=root, profile_dir=profile_dir) + assert result == profile_pid + + +def test_returns_root_path_when_neither_pid_exists(tmp_path, monkeypatch): + """Neither root nor profile gateway.pid exists → return root path (graceful).""" + root = tmp_path / "hermes" + root.mkdir() + profile_dir = root / "profiles" / "empty" + profile_dir.mkdir(parents=True) + # no gateway.pid created anywhere + + result = _call(monkeypatch, root=root, profile_dir=profile_dir) + assert result == root / "gateway.pid" + + +def test_returns_root_path_when_profile_lookup_raises(tmp_path, monkeypatch): + """get_active_hermes_home() raising must be caught; root path returned.""" + root = tmp_path / "hermes" + root.mkdir() + + import hermes_constants + import api.profiles as profiles + + monkeypatch.setattr(hermes_constants, "get_default_hermes_root", lambda: root) + + def _raise(): + raise RuntimeError("profile resolution failed") + + monkeypatch.setattr(profiles, "get_active_hermes_home", _raise) + + from api.agent_health import _gateway_root_pid_path + result = _gateway_root_pid_path() + assert result == root / "gateway.pid" + + +def test_root_takes_priority_over_profile_when_both_exist(tmp_path, monkeypatch): + """Root gateway.pid present even when profile pid also exists → root wins.""" + root = tmp_path / "hermes" + root.mkdir() + root_pid = root / "gateway.pid" + root_pid.write_text("1111") + profile_dir = root / "profiles" / "safeline" + profile_dir.mkdir(parents=True) + (profile_dir / "gateway.pid").write_text("2222") + + result = _call(monkeypatch, root=root, profile_dir=profile_dir) + assert result == root_pid From aa6daf82f2259fc6321c71887a26c0b71d57b69b Mon Sep 17 00:00:00 2001 From: Frank Song Date: Mon, 25 May 2026 21:48:51 +0800 Subject: [PATCH 09/13] fix(gateway): treat active sessions as configured --- CHANGELOG.md | 4 ++++ api/routes.py | 2 +- tests/test_gateway_status_agent_health.py | 9 +++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42919130..6acc7063 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ ## [Unreleased] +### Fixed + +- Gateway status now treats existing messaging-session metadata as configured when `gateway.status` is unavailable, avoiding a misleading "Gateway not configured" warning for multi-container deployments with active gateway sessions. + ## [v0.51.134] — 2026-05-25 — Release DF (stage-batch16 — single-PR Windows path defaults) ### Fixed diff --git a/api/routes.py b/api/routes.py index 8140f3f9..bbce9aba 100644 --- a/api/routes.py +++ b/api/routes.py @@ -4754,7 +4754,7 @@ def handle_get(handler, parsed) -> bool: configured = True else: # alive is None → gateway not configured / unavailable running = bool(identity_map) - configured = False + configured = bool(identity_map) platforms_set: set[str] = set() for meta in identity_map.values(): diff --git a/tests/test_gateway_status_agent_health.py b/tests/test_gateway_status_agent_health.py index 843f7cd5..66a70f45 100644 --- a/tests/test_gateway_status_agent_health.py +++ b/tests/test_gateway_status_agent_health.py @@ -124,7 +124,8 @@ def test_gateway_status_running_true_and_platforms_when_agent_health_alive_and_s def test_gateway_status_alive_none_falls_back_to_identity_map_heuristic(monkeypatch): """When alive=None (not configured) but sessions exist, running reflects identity_map. - configured=false tells the frontend to show 'not configured' state.""" + configured=true because sessions metadata proves a gateway is configured + even if gateway.status cannot be imported in this WebUI process.""" from api import routes monkeypatch.setattr( @@ -144,8 +145,8 @@ def test_gateway_status_alive_none_falls_back_to_identity_map_heuristic(monkeypa result = handler.get_json() # Fallback to identity_map: sessions exist → running=true assert result["running"] is True - # But configured=false because alive was None (no gateway metadata) - assert result["configured"] is False + # Existing gateway sessions prove the gateway has been configured. + assert result["configured"] is True def test_gateway_status_handles_corrupted_sessions_json(monkeypatch): @@ -244,4 +245,4 @@ def test_gateway_status_last_active_empty_when_alive_and_no_sessions_path(monkey assert result["configured"] is True # In test context, sessions_path won't exist (no real filesystem), # so last_active must be empty. - assert result["last_active"] == "" \ No newline at end of file + assert result["last_active"] == "" From fe597c1cdf59f7193aeda9f7d226093e7db3860e Mon Sep 17 00:00:00 2001 From: george-andraws <96165956+george-andraws@users.noreply.github.com> Date: Mon, 25 May 2026 09:12:14 -0700 Subject: [PATCH 10/13] fix chat upload attachment paths --- static/messages.js | 2 +- tests/test_chat_upload_attachment_paths.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 tests/test_chat_upload_attachment_paths.py diff --git a/static/messages.js b/static/messages.js index f10b5d9d..4da8e3a5 100644 --- a/static/messages.js +++ b/static/messages.js @@ -433,7 +433,7 @@ async function send(){ setComposerStatus(''); const uploadedNames=uploaded.map(u=>u.name||u); - const uploadedPaths=uploaded.map(u=>u&&u.is_image?(u.name||u.filename||u):(u.path||u.name||u)); + const uploadedPaths=uploaded.map(u=>u&&u.path?u.path:(u&&u.name?u.name:(u&&u.filename?u.filename:u))); let msgText=text; if(uploaded.length&&!msgText)msgText=`I've uploaded ${uploaded.length} file(s): ${uploadedPaths.join(', ')}`; else if(uploaded.length)msgText=`${text}\n\n[Attached files: ${uploadedPaths.join(', ')}]`; diff --git a/tests/test_chat_upload_attachment_paths.py b/tests/test_chat_upload_attachment_paths.py new file mode 100644 index 00000000..6e0fba38 --- /dev/null +++ b/tests/test_chat_upload_attachment_paths.py @@ -0,0 +1,21 @@ +"""Regression coverage for WebUI chat upload path handoff.""" +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +MESSAGES_JS = ROOT / "static" / "messages.js" + + +def test_image_uploads_use_server_path_in_attached_files_context(): + """The agent text context must include real uploaded paths for images. + + /api/upload returns an absolute attachment path. The browser also sends the + structured attachment payload to /api/chat/start, but text/tool-mode agents + still rely on the literal ``[Attached files: ...]`` suffix. Images must not + be downgraded to bare filenames there, otherwise tools like vision_analyze + cannot open the uploaded file immediately. + """ + src = MESSAGES_JS.read_text(encoding="utf-8") + + assert "uploadedPaths=uploaded.map(u=>u&&u.is_image?" not in src + assert "uploadedPaths=uploaded.map(u=>u&&u.path?u.path" in src From fa9881445ac522c615316b35d5720abc7d9c3952 Mon Sep 17 00:00:00 2001 From: nesquena-hermes <[email protected]> Date: Mon, 25 May 2026 17:03:00 +0000 Subject: [PATCH 11/13] stage-batch17: backfill CHANGELOG entries for #2906 and #2940 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b372f9a..06f05692 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ - Gateway status now treats existing messaging-session metadata as configured when `gateway.status` is unavailable, avoiding a misleading "Gateway not configured" warning for multi-container deployments with active gateway sessions. - Session sidebar Archive/Delete menu actions now repaint from local sidebar state immediately after the server confirms the mutation, instead of waiting for the full `/api/sessions` refresh before the row disappears. - Clarification dialogs now reserve transcript space while open or collapsed, so the question prompt no longer covers the assistant text needed to answer it. +- Chat uploads now send the absolute server-side path for image attachments in the agent text context, restoring immediate tool access (e.g. `vision_analyze`) to files uploaded in the current turn. +- Pending uploaded-file user turns no longer double-render when both the optimistic bubble and the server's pending-message hydration produce the same `[Attached files: ...]` suffix. ## [v0.51.134] — 2026-05-25 — Release DF (stage-batch16 — single-PR Windows path defaults) From 41e424b3d5e017e3efa2df2c5e5db195f8057b0b Mon Sep 17 00:00:00 2001 From: nesquena-hermes <[email protected]> Date: Mon, 25 May 2026 17:06:27 +0000 Subject: [PATCH 12/13] stage-batch17: stamp v0.51.135 / Release DG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06f05692..6db39afd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ## [Unreleased] +## [v0.51.135] — 2026-05-25 — Release DG (stage-batch17 — 9-PR small-fix batch) + ### Added - Added a proposed canonical session resolution RFC covering URL routes, query parameters, localStorage, sidebar rows, and compression-lineage IDs so future session-routing fixes have one review contract. From fe9d95e22b3c27876c8fdb1aa8df4dec98cb2081 Mon Sep 17 00:00:00 2001 From: nesquena-hermes <[email protected]> Date: Mon, 25 May 2026 17:11:59 +0000 Subject: [PATCH 13/13] stage-batch17: skip #2927 test file when hermes-agent module not available (CI fix) --- tests/test_agent_health_pid_path_fallback.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_agent_health_pid_path_fallback.py b/tests/test_agent_health_pid_path_fallback.py index e0a5b37d..27485009 100644 --- a/tests/test_agent_health_pid_path_fallback.py +++ b/tests/test_agent_health_pid_path_fallback.py @@ -18,6 +18,10 @@ from __future__ import annotations from pathlib import Path +import pytest + +pytest.importorskip("hermes_constants", reason="hermes-agent not installed") + def _call(monkeypatch, root: Path, profile_dir: Path | None = None) -> Path | None: """Call _gateway_root_pid_path() with mocked filesystem roots."""