Renderer state
Renderer state combines data fetched over IPC, live event streams, and ordinary component-local UI state — there's no separate global store.
The renderer doesn't maintain a parallel copy of main-process truth beyond what it fetches and subscribes to. Three kinds of state show up:
Persisted state fetched over IPC
Workspaces, sessions, settings, and (in AgentDock Pro) AIgency runs are all owned by the main process and its database — the renderer fetches them on demand and refetches or patches them after a mutating call, rather than caching them indefinitely.
Live event streams
Conversation activity, AIgency's activity feed, and terminal output arrive as subscribed event streams rather than polled state — see Shared agent event model for the event shapes involved.
Component-local UI state
Things like which sidebar section is expanded, or whether a dialog is open, stay as ordinary React component state — they're never round-tripped through IPC or persisted, since they have no meaning outside the current window session.