Re-read the workspace when an app window becomes active
- Status: Todo
- Kind: Feature
- Authors: jp
- Date: 2026-08-19
- Implements: 099
- Label: client=macos
- Label: type=enhancement
jp_workspace_conversations and jp_workspace_events re-read the conversation index before answering, so a handle kept open across a concurrent jp query reports that query's turns. The app does not take advantage of it: it reads once when a window opens a workspace and never asks again, so the transcript on screen is whatever was on disk at that moment.
The gap this closes is small and the mechanism is already there. A window that re-requests its conversation list and its open transcript when it becomes the active window would show the result of a query the user just ran in a terminal, which is the normal way this app is used alongside jp.
Scope is the app side only:
- Re-request on
NSApplicationactivation, or on the window becoming key, whichever proves less noisy. - Keep the current selection and scroll position across the refresh. A list that jumps because a conversation moved to the top is worse than a stale one.
- Do nothing when the payload is unchanged, so an activation that found no new work costs no redraw.
Not this ticket: watching the store. Nothing notifies the app that something changed, so a window left in the foreground still shows what it last read. That is the Live Workspace View draft's problem, and it wants refresh_index (reconcile by diff) rather than the reset-style reload the boundary uses today.