You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Streaming flicker on mid-turn refresh - the live output tail no longer remounts (markdown re-parse + fade restart, plus a height reflow) every time a session-history refresh arrives while an agent is streaming. Row keys now use a stable per-(uuid, timestamp) ordinal instead of an index that shifted with history length, and measured row heights bridge the live→history identity swap so the visible tail stays put instead of collapsing to size estimates.
Grok agents in the same folder could cross conversations - two Grok agents running in the same working directory no longer risk one attaching to the other's session. Session discovery now claims each session per agent and matches on creation time (not modification time, which a concurrent agent's writes kept "hot"), and the watcher re-pins to the session id the CLI itself reports on stdout. This prevents one agent mirroring another's tool output into its terminal and the two sessions merging on the next resume; forked sessions never hand the fork-source id to the watcher.
Technical Details
Client: buildItemKey takes a stable liveOrdinal (per-(uuid,timestamp)) instead of originalIndex; new bridgeIdsFor maps live rows to their history twins so the virtualizer's measured heights survive the live→history key swap (VirtualizedOutputList / virtualizedOutputKey / AgentTerminalPane).
Server: grok/session-watcher adds a per-agent sessionOwners claim map, birthtime-based discovery, and setSessionId re-pin; process-lifecycle never hands the fork-source id to the Grok watcher and clears forkSession once a real id exists.
Android versionName/versionCode derive from package.json; APK built after the version bump and verified as versionName 1.165.1 / versionCode 1165001. 1068 tests / 87 files passing.