# Panels & view state

Resize, collapse, and peek the side panels; show or hide the Stage and the bottom dock — and trust that your layout comes back exactly as you left it after a reload.

## Resizing panels

Drag the edge between the sidebar and the deck, or between the deck and the Stage, to resize. Widths are clamped to sensible bounds — the sidebar to a comfortable column, and the Stage up to about 60% of the window. Drag the top edge of the bottom dock to make it taller or shorter.

## Collapsing & peeking the sidebar

Collapse the sidebar with Toggle Sidebar (⌘B / Ctrl+B) or its header control to give the deck more room. While it’s collapsed, hover the left edge of the window to peek it back into view; click a section to dock it open again, or move away to let it slide shut.

> It collapses itself when it needs toOn a narrow window the sidebar auto-collapses into the hover-peek menu, and it tucks away on its own when you drag the Stage past half the screen. Toggling it by hand always wins — your intent is remembered.

## The Stage and the bottom dock

Toggle the Stage (right panel) with ⌘J / Ctrl+J, or the panel button in the title bar. When it opens, it springs to about half the window so it’s immediately useful; a wider saved width is respected. Toggle the bottom dock (Problems / Find) with ⌘⇧M / Ctrl+Shift+M.

## How layout persists

Foxora keeps a single local snapshot of your view state under the key foxora.viewstate. It’s read synchronously at startup, so your first paint already has the right geometry — no flash of a default layout. Saved view state includes:

- Panel widths, and whether the sidebar and Stage are open.
- The active sidebar section (Sessions / Files / Agents).
- The last open project and the session to restore.
- Open file tabs per project, and your half-typed composer drafts.

```
// localStorage → foxora.viewstate (shape, abbreviated)
{
  "v": 1,
  "layout": {
    "sidebarCollapsed": false,
    "rightOpen": true,
    "sidebarWidth": 256,
    "rightWidth": 330
  },
  "nav": "sessions",
  "lastProject": "/Users/you/code/app",
  "lastSessionId": "ses_…"
}
```

> Pointers, not payloadsFoxora persists pointers — file paths and session ids — never their contents. The conversation and your files rehydrate from the engine and disk on reopen, so the snapshot stays tiny and always current.

> Device-local widthsPanel widths are intentionally local to each machine — a 13″ laptop and a 32″ display want different proportions — so they aren’t synced across devices.
