From 0f4a1c27fe89babb1a67eeb6c6b529c1d0c1023a Mon Sep 17 00:00:00 2001 From: shiyue Date: Mon, 15 Jun 2026 18:17:41 +0800 Subject: [PATCH] fix: persist codexapp streaming state --- public/app.js | 35 +++++- public/index.html | 4 +- public/style.css | 8 +- scripts/mock-codex-app-server.js | 36 +++++- scripts/regression.js | 93 ++++++++++++++ server.js | 209 ++++++++++++++++++++++++++++++- 6 files changed, 375 insertions(+), 10 deletions(-) diff --git a/public/app.js b/public/app.js index a87b13d..4574be0 100644 --- a/public/app.js +++ b/public/app.js @@ -2,7 +2,7 @@ (function () { 'use strict'; - const ASSET_VERSION = '20260615-codexapp-steer-status'; + const ASSET_VERSION = '20260615-codexapp-steer-status-session-menu'; const WS_URL = `${location.protocol === 'https:' ? 'wss' : 'ws'}://${location.host}/ws`; const RENDER_DEBOUNCE = 100; const COMPOSER_SUGGESTION_DEBOUNCE = 120; @@ -2287,6 +2287,18 @@ send({ type: 'set_session_pinned', sessionId: session.id, pinned: nextPinned }); } + function setSessionActionMenuOpen(item, open) { + if (!item) return; + item.classList.toggle('menu-open', open); + item.querySelector('.session-item-btn.more')?.setAttribute('aria-expanded', open ? 'true' : 'false'); + } + + function closeSessionActionMenus(exceptItem = null) { + document.querySelectorAll('.session-item.menu-open').forEach((item) => { + if (item !== exceptItem) setSessionActionMenuOpen(item, false); + }); + } + function createSessionListItem(session) { const item = document.createElement('div'); const isPinned = !!session.pinnedAt; @@ -2305,7 +2317,7 @@
- +