chore: add pi cache dirs to .gitignore and mobile terminal styles

This commit is contained in:
2026-05-28 13:49:46 +02:00
parent 62d1bdc462
commit 143a254b0c
3 changed files with 2520 additions and 2485 deletions
+7
View File
@@ -49,3 +49,10 @@ apps/web/dist/
.DS_Store .DS_Store
Thumbs.db Thumbs.db
/.stoneforge/.worktrees/ /.stoneforge/.worktrees/
# Pi / agent cache
.pi/
.atl/
.sisyphus/
.pi-lens/
+11 -10
View File
@@ -190,10 +190,16 @@ export const TerminalPage: React.FC = () => {
if (isMobile) { if (isMobile) {
return ( return (
<section className={`terminal-page mobile ${isFullscreen ? "fullscreen" : ""}`}> <section
className={`terminal-page mobile ${isFullscreen ? "fullscreen" : ""}`}
>
{!isFullscreen && ( {!isFullscreen && (
<div className="terminal-page-header mobile-header"> <div className="terminal-page-header mobile-header">
<button className="secondary-button" onClick={() => navigate(-1)} type="button"> <button
className="secondary-button"
onClick={() => navigate(-1)}
type="button"
>
Back Back
</button> </button>
<h1>Terminal</h1> <h1>Terminal</h1>
@@ -245,9 +251,7 @@ export const TerminalPage: React.FC = () => {
} }
return ( return (
<section <section className={`terminal-page ${isFullscreen ? "fullscreen" : ""}`}>
className={`terminal-page ${isFullscreen ? "fullscreen" : ""}`}
>
{!isFullscreen && ( {!isFullscreen && (
<div className="terminal-page-header"> <div className="terminal-page-header">
<button <button
@@ -278,16 +282,13 @@ export const TerminalPage: React.FC = () => {
isMobile={false} isMobile={false}
/> />
<div className="terminal-page-content"> <div className="terminal-page-content">
{error && ( {error && <div className="terminal-error-banner">{error}</div>}
<div className="terminal-error-banner">{error}</div>
)}
{sessions.map((session) => ( {sessions.map((session) => (
<div <div
key={session.id} key={session.id}
className={`terminal-instance ${session.id === activeSessionId ? "active" : ""}`} className={`terminal-instance ${session.id === activeSessionId ? "active" : ""}`}
style={{ style={{
display: display: session.id === activeSessionId ? "flex" : "none",
session.id === activeSessionId ? "flex" : "none",
}} }}
> >
<TerminalComponent <TerminalComponent
+77 -50
View File
@@ -1239,10 +1239,18 @@ a {
text-align: center; text-align: center;
} }
.file-item.modified .file-status { color: #f59e0b; } .file-item.modified .file-status {
.file-item.added .file-status { color: #10b981; } color: #f59e0b;
.file-item.deleted .file-status { color: #ef4444; } }
.file-item.untracked .file-status { color: #6b7280; } .file-item.added .file-status {
color: #10b981;
}
.file-item.deleted .file-status {
color: #ef4444;
}
.file-item.untracked .file-status {
color: #6b7280;
}
.commit-form { .commit-form {
display: flex; display: flex;
@@ -1733,7 +1741,7 @@ a {
display: flex; display: flex;
flex: 1; flex: 1;
overflow: auto; overflow: auto;
font-family: 'Fira Code', 'Monaco', 'Courier New', monospace; font-family: "Fira Code", "Monaco", "Courier New", monospace;
font-size: 14px; font-size: 14px;
line-height: 1.5; line-height: 1.5;
} }
@@ -1774,7 +1782,7 @@ a {
} }
.editor-textarea { .editor-textarea {
font-family: 'Fira Code', 'Monaco', 'Courier New', monospace; font-family: "Fira Code", "Monaco", "Courier New", monospace;
font-size: 14px; font-size: 14px;
line-height: 1.5; line-height: 1.5;
min-height: 100%; min-height: 100%;
@@ -1890,7 +1898,7 @@ a {
border-radius: 8px; border-radius: 8px;
overflow: auto; overflow: auto;
max-height: 300px; max-height: 300px;
font-family: 'Fira Code', 'Monaco', 'Courier New', monospace; font-family: "Fira Code", "Monaco", "Courier New", monospace;
font-size: 13px; font-size: 13px;
} }
@@ -1954,7 +1962,7 @@ code[class*="language-"],
pre[class*="language-"] { pre[class*="language-"] {
color: var(--ink); color: var(--ink);
text-shadow: none; text-shadow: none;
font-family: 'Fira Code', 'Monaco', 'Courier New', monospace; font-family: "Fira Code", "Monaco", "Courier New", monospace;
font-size: 14px; font-size: 14px;
text-align: left; text-align: left;
white-space: pre; white-space: pre;
@@ -2711,7 +2719,10 @@ a.nav-item,
cursor: pointer; cursor: pointer;
font-size: 0.8125rem; font-size: 0.8125rem;
white-space: nowrap; white-space: nowrap;
transition: background 0.15s, color 0.15s, border-color 0.15s; transition:
background 0.15s,
color 0.15s,
border-color 0.15s;
user-select: none; user-select: none;
min-width: 0; min-width: 0;
} }
@@ -2781,7 +2792,9 @@ a.nav-item,
line-height: 1; line-height: 1;
border-radius: 3px; border-radius: 3px;
opacity: 0; opacity: 0;
transition: opacity 0.15s, background 0.15s; transition:
opacity 0.15s,
background 0.15s;
} }
.terminal-session-tab:hover .terminal-session-tab-close { .terminal-session-tab:hover .terminal-session-tab-close {
@@ -3379,7 +3392,12 @@ a.nav-item,
padding: var(--space-2) var(--space-3); padding: var(--space-2) var(--space-3);
background: #2d2d2d; background: #2d2d2d;
border-bottom: 1px solid #3e3e3e; border-bottom: 1px solid #3e3e3e;
transition: transform 0.3s ease, opacity 0.3s ease, height 0.3s ease, padding 0.3s ease, margin 0.3s ease; transition:
transform 0.3s ease,
opacity 0.3s ease,
height 0.3s ease,
padding 0.3s ease,
margin 0.3s ease;
z-index: 100; z-index: 100;
overflow: hidden; overflow: hidden;
} }
@@ -3519,7 +3537,9 @@ a.nav-item,
overflow-x: auto; overflow-x: auto;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
scrollbar-width: none; scrollbar-width: none;
transition: transform 0.3s ease, opacity 0.3s ease; transition:
transform 0.3s ease,
opacity 0.3s ease;
z-index: 100; z-index: 100;
} }
@@ -3554,7 +3574,9 @@ a.nav-item,
cursor: pointer; cursor: pointer;
white-space: nowrap; white-space: nowrap;
flex-shrink: 0; flex-shrink: 0;
transition: background 0.15s ease, transform 0.1s ease; transition:
background 0.15s ease,
transform 0.1s ease;
user-select: none; user-select: none;
-webkit-user-select: none; -webkit-user-select: none;
touch-action: manipulation; touch-action: manipulation;
@@ -3762,7 +3784,8 @@ a.nav-item,
} }
@keyframes pulse { @keyframes pulse {
0%, 100% { 0%,
100% {
opacity: 1; opacity: 1;
} }
50% { 50% {
@@ -4007,32 +4030,31 @@ a.nav-item,
padding-bottom: calc(1.25rem + 64px); padding-bottom: calc(1.25rem + 64px);
} }
/* Ensure minimum touch targets on mobile */
/* Ensure minimum touch targets on mobile */ button,
button, a,
a, input,
input, select,
select, textarea,
textarea, [role="button"] {
[role="button"] {
min-height: 44px; min-height: 44px;
min-width: 44px; min-width: 44px;
} }
/* Active states for touch feedback */ /* Active states for touch feedback */
button:active, button:active,
a:active, a:active,
[role="button"]:active { [role="button"]:active {
opacity: 0.8; opacity: 0.8;
transform: scale(0.98); transform: scale(0.98);
} }
/* Remove transform on buttons that shouldn't scale */ /* Remove transform on buttons that shouldn't scale */
.mobile-nav-item:active, .mobile-nav-item:active,
.mobile-action-sheet-button:active, .mobile-action-sheet-button:active,
.mobile-action-sheet-cancel:active { .mobile-action-sheet-cancel:active {
transform: none; transform: none;
} }
@media (max-width: 767px) { @media (max-width: 767px) {
.dialog-actions { .dialog-actions {
flex-direction: column-reverse; flex-direction: column-reverse;
@@ -4045,17 +4067,16 @@ a.nav-item,
} }
} }
.workspace-main {
.workspace-main {
padding: var(--space-2); padding: var(--space-2);
} }
.tree-entry { .tree-entry {
padding: 0.5rem; padding: 0.5rem;
min-height: 44px; min-height: 44px;
display: flex; display: flex;
align-items: center; align-items: center;
} }
@media (max-width: 767px) { @media (max-width: 767px) {
.modal-content { .modal-content {
min-width: auto; min-width: auto;
@@ -4110,29 +4131,28 @@ a.nav-item,
} }
} }
.session-card-actions.mobile {
.session-card-actions.mobile {
display: flex; display: flex;
gap: var(--space-2); gap: var(--space-2);
padding-top: var(--space-3); padding-top: var(--space-3);
border-top: 1px solid var(--color-border); border-top: 1px solid var(--color-border);
} }
.session-card-actions.mobile .mobile-primary { .session-card-actions.mobile .mobile-primary {
flex: 1; flex: 1;
justify-content: center; justify-content: center;
min-height: 44px; min-height: 44px;
padding: var(--space-2) var(--space-3); padding: var(--space-2) var(--space-3);
} }
.session-card-actions.mobile .mobile-more { .session-card-actions.mobile .mobile-more {
min-width: 44px; min-width: 44px;
min-height: 44px; min-height: 44px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: var(--space-2); padding: var(--space-2);
} }
@media (max-width: 767px) { @media (max-width: 767px) {
.create-session-form .form-row { .create-session-form .form-row {
grid-template-columns: 1fr; grid-template-columns: 1fr;
@@ -4245,13 +4265,21 @@ a.nav-item,
} }
@keyframes fadeIn { @keyframes fadeIn {
from { opacity: 0; } from {
to { opacity: 1; } opacity: 0;
}
to {
opacity: 1;
}
} }
@keyframes slideUp { @keyframes slideUp {
from { transform: translateY(100%); } from {
to { transform: translateY(0); } transform: translateY(100%);
}
to {
transform: translateY(0);
}
} }
/* Git Mount Editor Styles */ /* Git Mount Editor Styles */
@@ -4403,4 +4431,3 @@ a.nav-item,
gap: 0.5rem; gap: 0.5rem;
margin-top: 0.25rem; margin-top: 0.25rem;
} }