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