fix: improve Windows UX and stabilize chat/session behavior across runtimes (#693)
* fix: preserve unsent prompt when adding editor context in VS Code * fix: append Add to chat selections as markdown blocks with stable spacing Convert selected assistant content to markdown before appending Wrap each Add to chat selection in an `md` fenced block Preserve multiline composer formatting across repeated appends * fix: normalize persisted Windows paths to prevent identity mismatches * fix: hide Windows subprocess console popups across server tasks Hide OpenCode startup and shell command child windows in the web server Apply windowsHide to cloudflared and skills-catalog git subprocesses Cover remaining git service exec paths that could surface console windows * fix: restore chat auto re-pin when reaching bottom Re-pin now triggers when scrolling back into the bottom zone, not only via the button. Upward user scroll intent still unpins immediately and is not overridden by re-pin. Unified bottom/re-pin threshold logic to reduce sensitivity mismatches. * fix: restore chat scroll release on mobile during streaming Restores pinned-scroll release on touch scroll up so mobile users can leave auto-follow while streaming. Improves re-pin behavior near bottom to avoid sticky or inconsistent pin states. Includes related chat UI and dependency updates in the same change set. * fix: hide daemon startup probe consoles on Windows * fix: prevent pinned scroll tug-of-war during streaming * fix: prefer git.exe to avoid Windows diff popup flashes * fix: prefer git.exe discovery in Windows git flows * fix: avoid where probes in Windows git resolution * fix: avoid update-check subprocess flashes on Windows * fix: normalize read file path labels * feat: add OpenChamber defaults and improve theme ports Add new OpenChamber light and dark themes Regenerate imported themes with stronger surface mapping Set OpenChamber themes as the default top options * fix: stabilize chat pin and unpin behavior during streaming Restores reliable unpin on upward wheel and touch gestures while auto-follow is active. Prevents immediate re-pin while the user is actively scrolling upward near the bottom. Keeps smooth follow-to-bottom behavior while reducing scroll tug-of-war. * fix: suppress Windows command popups in VSCode runtime processes Hide spawned git and server process windows in VS Code runtime Extend hidden-window handling to server port cleanup and reveal commands Keep behavior unchanged on non-Windows platforms
This commit is contained in:
committed by
GitHub
parent
a07c068b66
commit
3123de5f43
@@ -728,16 +728,21 @@ export const useSessionStore = create<SessionStore>()(
|
||||
|
||||
try {
|
||||
const pageSize = 500;
|
||||
const previousArchivedSessions = dedupeSessionsById(get().archivedSessions);
|
||||
const firstPage = await apiClient.experimental.session.list({ limit: pageSize, archived: false });
|
||||
let liveSessions = dedupeSessionsById(Array.isArray(firstPage.data) ? firstPage.data as Session[] : []);
|
||||
let archivedSessions: Session[] = [];
|
||||
let hasLoadedArchivedSessions = false;
|
||||
|
||||
const apply = async () => {
|
||||
if (!isLatestRequest()) {
|
||||
return;
|
||||
}
|
||||
const projectResults = await buildProjectResults(liveSessions);
|
||||
await applyProjectResults(projectResults, dedupeSessionsById(archivedSessions));
|
||||
const archivedForRender = hasLoadedArchivedSessions
|
||||
? dedupeSessionsById(archivedSessions)
|
||||
: previousArchivedSessions;
|
||||
await applyProjectResults(projectResults, archivedForRender);
|
||||
};
|
||||
|
||||
await apply();
|
||||
@@ -770,6 +775,7 @@ export const useSessionStore = create<SessionStore>()(
|
||||
? (response.data as Session[]).filter((session) => Boolean(session.time?.archived))
|
||||
: [];
|
||||
if (page.length > 0) {
|
||||
hasLoadedArchivedSessions = true;
|
||||
archivedSessions = dedupeSessionsById([...archivedSessions, ...page]);
|
||||
await apply();
|
||||
}
|
||||
@@ -779,6 +785,12 @@ export const useSessionStore = create<SessionStore>()(
|
||||
}
|
||||
archivedCursor = next;
|
||||
}
|
||||
|
||||
if (!hasLoadedArchivedSessions && isLatestRequest()) {
|
||||
hasLoadedArchivedSessions = true;
|
||||
archivedSessions = [];
|
||||
await apply();
|
||||
}
|
||||
};
|
||||
|
||||
void backgroundLoad().catch((error) => {
|
||||
|
||||
Reference in New Issue
Block a user