Browser, Changes and diffs
The surfaces in the right pane: an embedded browser an agent can drive, the worktree's Changes tab, and the diffs it draws.
Everything on this page opens in the right pane of the centre, next to the terminals and chats on the left. Tabs and splits explains the two panes.
Browser
A Browser tab hosts a native web view, so a dev server previews without leaving the window. Cookies and site data live in a profile Sirio owns and keeps apart from your everyday browser.
An agent can drive it as well. sirioctl browser opens a page, reads its content, clicks and types into elements, waits for a condition and evaluates JavaScript, and its commands reach any origin without asking. A tab that the control socket flags as agent-driven stops before it navigates to an origin you have not granted and asks, for example, “Allow agent browser access to http://localhost:4321?”, with Allow and Deny. Allow keeps the origin granted, so the agent’s next try goes through, until you revoke it in Settings → Permissions. Deny saves nothing, and the next try asks again. See Browser automation.
Changes
The Changes tab holds the worktree’s git status and its diffs, with a whole pane’s width to show them. Open it from the tab strip’s + menu or the right panel’s Open view, or choose Open diff on a file in the right panel’s Changes view to open the tab on that file. Each worktree has one Changes tab, so a second Open diff switches to it and unfolds the new file.
The tab sorts files into three sections, Staged, Changed and Untracked, each file with the lines it adds and removes. Click a file to unfold its diff. An unfolded file offers Discard, Stage or Unstage, and a file in conflict adds Resolve in terminal, which opens a terminal tab for it. The ↗ at the end of an unfolded row opens the file itself in the editor. A button at the right end of each section’s header stages or unstages all of its files at once, a click on the rest of the header folds the section, and the toolbar carries Unified and Split, Refresh, Expand All and Collapse All, then Stage all and Discard all. Both kinds of discard ask before they touch anything, in a card inside the window rather than a system prompt.
While the tab is on screen it reads git again every second. While nothing shows it, it reads git about once every ten seconds, and it reads again the moment it comes back on screen. In a project without a git repository, Changes reads No changes.
A commit you click in the right panel’s History, or in a pull request’s Commits, opens as a read-only Changes tab of its own, with the same diffs. sirioctl surface changes drives the Changes tab from a script; see Surfaces.
Diffs
A diff shows Unified, with old and new lines in one column, or Split, with the old side on the left and the new side on the right. Sirio uses the same choice for every diff it shows, and starts each launch on Unified.
Long lines scroll sideways. In Unified, the code scrolls under one bar while the line numbers stay put. In Split, each side has its own bar and scrolls on its own, with the rows still lined up. A bar appears only when something is wider than its space.
Drag across a line of diff code to select it. A double-click takes one word or path segment, and a triple-click the whole line. Ctrl+C, or Cmd+C on macOS, copies the selection. The copy holds only the code you selected, and a selection stays within one line.
Pull requests
A GitHub pull request or a GitLab merge request opens in a tab of its own, with its conversation, commits, checks and a diff that the Changes view draws. See Pull and merge requests.
Markdown and other files
Every file opens in an Editor tab, coloured and navigable; see The editor. A Markdown file opens as a Preview that reads a README’s HTML and draws Mermaid and PlantUML diagrams, and in a narrow pane it scrolls sideways rather than rewrapping. See Markdown preview.