fix: anchor tile preview to bottom so newest terminal content is visible

Previously the <pre> snapshot floated to the top of .tile-body — when
content overflowed, the oldest lines showed and newest were clipped.
Now .tile-body pre is position:absolute;bottom:0 so overflow clips
from the top and the lower-left corner (newest content) is always shown.
This commit is contained in:
Brian Krabach
2026-03-27 15:17:07 -07:00
parent 8234e2ec05
commit 50007a6d2a
2 changed files with 17 additions and 0 deletions
+7
View File
@@ -214,6 +214,13 @@ body {
position: relative; position: relative;
} }
.tile-body pre {
position: absolute;
bottom: 0;
left: 0;
right: 0;
}
.tile-pre { .tile-pre {
position: absolute; position: absolute;
inset: 0; inset: 0;
+10
View File
@@ -416,6 +416,16 @@ test('buildTileHTML adds tier class on mobile', () => {
assert.ok(html.includes('session-tile--tier-'), 'should contain tier class on mobile'); assert.ok(html.includes('session-tile--tier-'), 'should contain tier class on mobile');
}); });
test('buildTileHTML wraps snapshot in .tile-body with <pre> as direct child', () => {
const session = { name: 'my-session', snapshot: 'line1\nline2' };
const html = app.buildTileHTML(session, 0, false);
assert.ok(html.includes('class="tile-body"'), 'should contain .tile-body wrapper');
assert.ok(
/<div class="tile-body"><pre>/.test(html),
'<pre> should be a direct child of .tile-body',
);
});
// --- renderGrid --- // --- renderGrid ---
test('renderGrid clears grid and shows empty-state when sessions array is empty', () => { test('renderGrid clears grid and shows empty-state when sessions array is empty', () => {