fix: terminal shift-left bug and session sidebar naming/filtering

- Guard ResizeObserver in terminal against internal xterm DOM changes
  by tracking last width/height and only calling fit() on real resize
- Remove padding from .terminal-container and conflicting .xterm height
  override that caused measurement mismatches with xterm-addon-fit
- Filter live session sidebar to active statuses only (running, building,
  pending) instead of showing all sessions including stopped ones
- Add display name fallback across sidebar, sessions page, and instance
  list to prevent blank names when display_name is empty

Quality gates: tsc (pass), eslint (pass)
This commit is contained in:
Developer
2026-06-02 14:03:47 +00:00
parent 5a8eca814d
commit d894cd9723
6 changed files with 35 additions and 16 deletions
+3 -3
View File
@@ -266,7 +266,7 @@ export const SessionsPage = () => {
<h2>Last Session</h2>
<div className="card last-session-card">
<div className="last-session-info">
<h3>{lastSession.display_name}</h3>
<h3>{lastSession.display_name || lastSession.tool_type_name || "Unnamed Session"}</h3>
<p className="muted">
{lastSession.tool_type_name} · {lastSession.project_name} · {lastSession.repository_name}
</p>
@@ -316,7 +316,7 @@ export const SessionsPage = () => {
{activeSessions.map((session) => (
<div className="card session-card" key={session.id}>
<div className="session-info">
<h4>{session.display_name}</h4>
<h4>{session.display_name || session.tool_type_name || "Unnamed Session"}</h4>
<p className="muted">
{session.tool_type_name} · {session.project_name}
</p>
@@ -445,7 +445,7 @@ export const SessionsPage = () => {
{recentSessions.map((session) => (
<div className="recent-session-item" key={session.id}>
<div className="recent-session-info">
<span className="recent-session-name">{session.display_name}</span>
<span className="recent-session-name">{session.display_name || session.tool_type_name || "Unnamed Session"}</span>
<span className="muted">
{session.tool_type_name} · {session.project_name}
</span>