Skip to content

Release v2.10.0 (tiled view)#30

Merged
vultuk merged 7 commits intomainfrom
release/v2.10.0-fix
Sep 13, 2025
Merged

Release v2.10.0 (tiled view)#30
vultuk merged 7 commits intomainfrom
release/v2.10.0-fix

Conversation

@vultuk
Copy link
Owner

@vultuk vultuk commented Sep 13, 2025

Replaces PR #29 due to unresolved conversation rule. Includes tiled view, splitter, per-pane sessions; version bump and changelog.

Copilot AI review requested due to automatic review settings September 13, 2025 20:56
@vultuk vultuk merged commit d2b6778 into main Sep 13, 2025
@vultuk vultuk deleted the release/v2.10.0-fix branch September 13, 2025 20:56
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This release adds a tiled view feature allowing users to view two Claude sessions side-by-side, bumping the version to 2.10.0.

  • Implementation of MVP tiled view with two resizable panes
  • Independent terminal connections for each pane with session selection
  • Persistent layout state and resizer position in localStorage

Reviewed Changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
src/public/style.css Added CSS styles for tab actions button, tiled pane layout, resizer controls, and tile-specific UI components
src/public/session-manager.js Added calls to refresh pane session selectors when sessions are loaded or updated
src/public/panes.js New file implementing ClaudePane and PaneManager classes for tiled view functionality
src/public/index.html Added tiled view toggle button, new tiled container HTML structure, and panes.js script inclusion
src/public/app.js Integrated PaneManager initialization, tile toggle event handling, and pane-aware terminal resizing
package.json Version bump from 2.9.0 to 2.10.0
CHANGELOG.md Added v2.10.0 changelog entry and reorganized previous v2.9.0 entry

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.


.tab-actions { display: flex; gap: 6px; align-items: center; }
.tab-tile {
width: 28px; height: 28px; display:flex; align-items:center; justify-content:center;
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing spaces around CSS property values. Should be 'display: flex; align-items: center; justify-content: center;' for consistency with the rest of the codebase.

Suggested change
width: 28px; height: 28px; display:flex; align-items:center; justify-content:center;
width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;

Copilot uses AI. Check for mistakes.
.tile-grid {
display: grid; grid-template-columns: 1fr 6px 1fr; grid-template-rows: 100%; width: 100%;
}
.tile-pane { display:flex; flex-direction: column; min-width: 0; border-left: 1px solid var(--border); }
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing space after colon in 'display:flex'. Should be 'display: flex' for consistency.

Suggested change
.tile-pane { display:flex; flex-direction: column; min-width: 0; border-left: 1px solid var(--border); }
.tile-pane { display: flex; flex-direction: column; min-width: 0; border-left: 1px solid var(--border); }

Copilot uses AI. Check for mistakes.
}
.tile-pane { display:flex; flex-direction: column; min-width: 0; border-left: 1px solid var(--border); }
.tile-pane:first-child { border-left: none; }
.tile-toolbar { display:flex; align-items:center; gap: 8px; padding: 6px 8px; background: var(--bg-secondary); border-bottom:1px solid var(--border); }
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple missing spaces after colons in CSS properties. Should be 'display: flex; align-items: center; border-bottom: 1px solid var(--border);'.

Suggested change
.tile-toolbar { display:flex; align-items:center; gap: 8px; padding: 6px 8px; background: var(--bg-secondary); border-bottom:1px solid var(--border); }
.tile-toolbar { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: var(--bg-secondary); border-bottom: 1px solid var(--border); }

Copilot uses AI. Check for mistakes.
.tile-pane { display:flex; flex-direction: column; min-width: 0; border-left: 1px solid var(--border); }
.tile-pane:first-child { border-left: none; }
.tile-toolbar { display:flex; align-items:center; gap: 8px; padding: 6px 8px; background: var(--bg-secondary); border-bottom:1px solid var(--border); }
.tile-toolbar .spacer { flex:1; }
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing space after colon. Should be 'flex: 1;'.

Suggested change
.tile-toolbar .spacer { flex:1; }
.tile-toolbar .spacer { flex: 1; }

Copilot uses AI. Check for mistakes.
.tile-pane:first-child { border-left: none; }
.tile-toolbar { display:flex; align-items:center; gap: 8px; padding: 6px 8px; background: var(--bg-secondary); border-bottom:1px solid var(--border); }
.tile-toolbar .spacer { flex:1; }
.tile-session-select { background: var(--bg-tertiary); color: var(--text-primary); border:1px solid var(--border); border-radius:6px; padding:6px 8px; font-family: var(--font-mono); font-size:12px; }
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple missing spaces after colons. Should be 'border: 1px solid var(--border); border-radius: 6px; padding: 6px 8px; font-size: 12px;'.

Suggested change
.tile-session-select { background: var(--bg-tertiary); color: var(--text-primary); border:1px solid var(--border); border-radius:6px; padding:6px 8px; font-family: var(--font-mono); font-size:12px; }
.tile-session-select { background: var(--bg-tertiary); color: var(--text-primary); border: 1px solid var(--border); border-radius: 6px; padding: 6px 8px; font-family: var(--font-mono); font-size: 12px; }

Copilot uses AI. Check for mistakes.
.tile-toolbar { display:flex; align-items:center; gap: 8px; padding: 6px 8px; background: var(--bg-secondary); border-bottom:1px solid var(--border); }
.tile-toolbar .spacer { flex:1; }
.tile-session-select { background: var(--bg-tertiary); color: var(--text-primary); border:1px solid var(--border); border-radius:6px; padding:6px 8px; font-family: var(--font-mono); font-size:12px; }
.tile-close { background: transparent; border:1px solid var(--border); border-radius:4px; color: var(--text-secondary); width:26px; height:26px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple missing spaces after colons. Should be 'border: 1px solid var(--border); border-radius: 4px; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; cursor: pointer;'.

Suggested change
.tile-close { background: transparent; border:1px solid var(--border); border-radius:4px; color: var(--text-secondary); width:26px; height:26px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.tile-close { background: transparent; border: 1px solid var(--border); border-radius: 4px; color: var(--text-secondary); width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; cursor: pointer; }

Copilot uses AI. Check for mistakes.
// Plan modal title
const planTitle = document.querySelector('#planModal .modal-header h2');
if (planTitle) planTitle.innerHTML = `<span class="icon" aria-hidden="true">${window.icons?.clipboard?.(18) || ''}</span> ${this.getAlias('claude')}'s Plan`;
if (planTitle) planTitle.innerHTML = `<span class=\"icon\" aria-hidden=\"true\">${window.icons?.clipboard?.(18) || ''}</span> ${this.getAlias('claude')}'s Plan`;
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Escaped quotes in template literal are incorrect. Should use single quotes around class names: <span class="icon" aria-hidden="true">.

Suggested change
if (planTitle) planTitle.innerHTML = `<span class=\"icon\" aria-hidden=\"true\">${window.icons?.clipboard?.(18) || ''}</span> ${this.getAlias('claude')}'s Plan`;
if (planTitle) planTitle.innerHTML = `<span class='icon' aria-hidden="true">${window.icons?.clipboard?.(18) || ''}</span> ${this.getAlias('claude')}'s Plan`;

Copilot uses AI. Check for mistakes.
}

this.terminal.options.fontSize = settings.fontSize;
if (this.paneManager?.panes) this.paneManager.panes.forEach(p => { if (p.terminal) p.terminal.options.fontSize = settings.fontSize; p.fit();});
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing space before closing brace. Should be 'p.fit(); });' for better readability.

Suggested change
if (this.paneManager?.panes) this.paneManager.panes.forEach(p => { if (p.terminal) p.terminal.options.fontSize = settings.fontSize; p.fit();});
if (this.paneManager?.panes) this.paneManager.panes.forEach(p => { if (p.terminal) p.terminal.options.fontSize = settings.fontSize; p.fit(); });

Copilot uses AI. Check for mistakes.
Comment on lines +11 to +13
- Tiled View (MVP): view two sessions side‑by‑side with independent terminals and sockets.
- Resizable splitter between panes with persistent split position.
- Per‑pane session picker and close controls; layout and assignments persist in localStorage.
Copy link

Copilot AI Sep 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using en-dash (‑) instead of hyphen (-) in 'side‑by‑side' and 'Per‑pane'. Should use regular hyphens: 'side-by-side' and 'Per-pane'.

Copilot uses AI. Check for mistakes.
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