Skip to content

Split view for up to 4 agents, full-text history search, and bulk cleanup in History/Snapshots - #17

Merged
DevMando merged 1 commit into
mainfrom
feature/split-view-history-and-panels
Jul 25, 2026
Merged

Split view for up to 4 agents, full-text history search, and bulk cleanup in History/Snapshots#17
DevMando merged 1 commit into
mainfrom
feature/split-view-history-and-panels

Conversation

@DevMando

Copy link
Copy Markdown
Owner

What this delivers

Five improvements to how you work with multiple agents and find past work.

1. Compare more than two agents at once

Before: the Split button showed exactly two agents side by side. Watching a third meant clicking back and forth.

Now: you can put up to four agents on screen together. The layout picks itself based on how many you add — two sit side by side, three sit across, and four arrange as a 2×2 grid. Every divider between them can be dragged to give one agent more room, and dragging one divider leaves the other panes where you put them.

You add an agent either from the Add pane button in the split bar, or by right-clicking any agent tab and choosing Add to split view. Your arrangement — which agents, and how you sized them — is remembered and comes back the next time you open the app.

Why four and not more: each pane holds a full conversation plus a message box. Past three across, panes get too narrow to be useful, which is why four wraps into a grid instead of squeezing further.

2. "Compare" is now called "Split view"

The feature was named Compare, which describes only one way people use it — running the same prompt past two models. In practice, once three or four agents are on screen, you're usually watching them work in parallel on different folders, not comparing their answers. The name now matches the full range of use, and the button that leaves the mode says Exit split view rather than just Exit, which previously didn't say what it was exiting.

3. Clear out a whole project's history or snapshots at once

Before: deleting ten saved conversations for a finished project meant ten separate deletions.

Now: opening a project group in History or Snapshots reveals a Delete all n button at the top of it. One confirmation clears the group.

Two safeguards worth knowing:

  • It always confirms first and tells you exactly how many items will go, since this permanently deletes conversations from disk.
  • If you have a search active, the group only contains the items matching that search — so the confirmation says it's deleting the matches, not "all". You never delete more than you can see.

Single-item groups don't show the button at all; that item's own Delete already does the job.

4. Search inside past conversations, not just their titles

Before: History search only looked at a conversation's title, project, model, and the first ~140 characters. Searching for something discussed midway through a long conversation found nothing.

Now: it searches the full text of every archived conversation, and shows you the matching line on the card so you can see why a result came up — important when a match is in the middle of a conversation whose title says nothing about it.

Typing stays responsive: title and project matches appear instantly as before, and full-text results fill in a fraction of a second later. Each conversation is read from disk once and then cached, so searching doesn't get slower the more you type.

5. History cards show where you left off

Cards previously showed only the first thing you said in a conversation. Since conversations are labelled by agent name ("Agent 3") unless you rename them, that opening line is the only clue about what a conversation was about — so rather than replacing it, cards now show both: the opening message, and a dimmer last · line with your most recent message.

Together they answer the two questions you actually have when scanning History: what was this? and is it worth picking back up? Conversations already in your history are filled in automatically the first time you open the panel, so old and new entries look the same.

6. Smaller fix

The terminal icon on the left of the terminal panel's tab strip now closes the panel, matching the arrow on the far right. Previously it was decorative, so the icon that opened the terminal couldn't close it.


Scope and risk

User-visible surface: the agent tab area, the split bar, the History panel, and the Snapshots panel. Nothing changes about how agents run, what they can do, or how conversations are stored.

Data safety: the bulk-delete actions permanently remove conversations from disk, so both confirm first and state the count. No other change in this PR deletes anything.

Backwards compatibility: existing saved workspaces, conversations, and snapshots all load normally. Files written before these changes simply lack the new fields and fall back to previous behaviour; History entries get their new "last message" line filled in automatically on first open.

One known constraint: the split view caps at four agents by design, for the pane-width reason above. Raising it would need a different layout approach.

What to look at when reviewing

  1. Open two agents, hit Split, then add a third and fourth — check the layout shifts to 2×2 at four and that dragging dividers feels right.
  2. Restart the app and confirm your split arrangement comes back.
  3. In History, search for a phrase you know is buried mid-conversation and confirm the matching line is quoted on the card.
  4. Open a project group in History with several entries and check the Delete all confirmation names the right count.

…ctions

Split view now shows 2-4 agents at once rather than exactly two: two side by
side, three across, four as a 2x2 (past three, columns alone leave each pane
too narrow for a transcript plus an input box). Every divider drags and
repartitions only its two adjacent panes, so adjusting one split never nudges
a third. Panes are added from the split bar's "Add pane" picker or a tab's
"Add to split view"; the pane set and divider positions survive a restart,
keyed by each agent's persist-key so a missing project folder drops one pane
rather than shifting all of them. Panes still move between grid cells via
Grid.SetColumn/SetRow and are never re-parented, so no WebView2 is torn down.

Renames the feature from "Compare" to "Split view" throughout, UI and code
(HasCompareSet -> SplitConfigured, _comparePanes -> _splitPanes), because
comparing two models on one prompt is only one of its uses -- at three or four
panes you are usually watching agents work in parallel. The split bar's two
ComboBox pickers become MenuFlyout chips, which sidesteps the COMException
0x80070490 that rebuilding ComboBox item containers triggers.

History and Snapshots gain per-project bulk delete: opening a group of two or
more reveals "Delete all n" at the top of it. It confirms first, states the
count, and says so explicitly when a search is filtering the group, since a
group holds only what the panel is showing. Batched RemoveAll methods on both
stores do one file write and one panel rebuild for the whole set.

History search now reads each archived conversation's full text instead of only
its title and 140-character preview, and quotes the matching line so a hit
whose labels lack the term still explains itself. Metadata matching stays
instant; the body scan is debounced and runs off the UI thread behind a
per-session cache revalidated on the log's last-write time. History cards also
show where a conversation left off alongside how it started, with existing rows
backfilled from their logs on first open.

The terminal glyph in the terminal panel's tab strip now collapses the panel,
matching the chevron on the far right.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@DevMando
DevMando merged commit b1be1a7 into main Jul 25, 2026
1 check passed
@DevMando
DevMando deleted the feature/split-view-history-and-panels branch July 25, 2026 01:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant