frontend: polish mesh release layout
This commit is contained in:
parent
10e4f218a6
commit
760796f650
1
.gitignore
vendored
1
.gitignore
vendored
@ -95,3 +95,4 @@ scripts/resilience/reports/
|
|||||||
# Local evidence screenshots; intentional UI screenshots should live under an
|
# Local evidence screenshots; intentional UI screenshots should live under an
|
||||||
# app/docs asset path with a descriptive filename.
|
# app/docs asset path with a descriptive filename.
|
||||||
Screenshot *.png
|
Screenshot *.png
|
||||||
|
uploads/
|
||||||
|
|||||||
@ -85,7 +85,11 @@
|
|||||||
<div :key="route.path" class="view-wrapper">
|
<div :key="route.path" class="view-wrapper">
|
||||||
<div
|
<div
|
||||||
v-if="route.path === '/dashboard/chat' || route.path === '/dashboard/mesh'"
|
v-if="route.path === '/dashboard/chat' || route.path === '/dashboard/mesh'"
|
||||||
:class="['h-full dashboard-scroll-panel mobile-scroll-pad', mobileTabPaddingTop ? 'overflow-y-auto' : '']"
|
:class="[
|
||||||
|
'h-full dashboard-scroll-panel mobile-scroll-pad',
|
||||||
|
route.path === '/dashboard/mesh' ? 'mesh-dashboard-panel' : '',
|
||||||
|
mobileTabPaddingTop ? 'overflow-y-auto' : ''
|
||||||
|
]"
|
||||||
:style="{ paddingTop: mobileTabPaddingTop ? (mobileTabPaddingTop + 16) + 'px' : undefined }"
|
:style="{ paddingTop: mobileTabPaddingTop ? (mobileTabPaddingTop + 16) + 'px' : undefined }"
|
||||||
class="mobile-safe-top"
|
class="mobile-safe-top"
|
||||||
>
|
>
|
||||||
|
|||||||
@ -12,6 +12,18 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (min-width: 921px) {
|
||||||
|
.mesh-dashboard-panel.mobile-scroll-pad {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 921px) and (max-width: 1279px) {
|
||||||
|
.mesh-dashboard-panel {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
.mesh-header { justify-content: space-between; align-items: center; gap: 16px; flex-shrink: 0; }
|
.mesh-header { justify-content: space-between; align-items: center; gap: 16px; flex-shrink: 0; }
|
||||||
.mesh-header-left { flex: 1; }
|
.mesh-header-left { flex: 1; }
|
||||||
.mesh-title { font-size: 1.5rem; font-weight: 700; color: rgba(255, 255, 255, 0.95); margin: 0; }
|
.mesh-title { font-size: 1.5rem; font-weight: 700; color: rgba(255, 255, 255, 0.95); margin: 0; }
|
||||||
@ -152,6 +164,19 @@
|
|||||||
.mesh-mobile-back-btn:hover { color: rgba(255, 255, 255, 0.9); }
|
.mesh-mobile-back-btn:hover { color: rgba(255, 255, 255, 0.9); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (min-width: 921px) and (max-width: 1279px) {
|
||||||
|
.mesh-view {
|
||||||
|
padding: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 920px) {
|
||||||
|
.mesh-view {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.mesh-session-badge { font-size: 0.75rem; margin-right: 6px; opacity: 0.7; }
|
.mesh-session-badge { font-size: 0.75rem; margin-right: 6px; opacity: 0.7; }
|
||||||
.mesh-session-rotate { background: transparent; border: 1px solid rgba(255,255,255,0.15); color: rgba(255,255,255,0.7); font-size: 0.75rem; line-height: 1; padding: 2px 6px; margin-right: 8px; border-radius: 10px; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; }
|
.mesh-session-rotate { background: transparent; border: 1px solid rgba(255,255,255,0.15); color: rgba(255,255,255,0.7); font-size: 0.75rem; line-height: 1; padding: 2px 6px; margin-right: 8px; border-radius: 10px; cursor: pointer; transition: background 0.15s ease, color 0.15s ease; }
|
||||||
.mesh-session-rotate:hover:not(:disabled) { background: rgba(251,146,60,0.2); color: #fff; border-color: rgba(251,146,60,0.4); }
|
.mesh-session-rotate:hover:not(:disabled) { background: rgba(251,146,60,0.2); color: #fff; border-color: rgba(251,146,60,0.4); }
|
||||||
|
|||||||
@ -165,7 +165,7 @@ if [[ "$DRY_RUN" == "true" ]]; then
|
|||||||
rsync -avn --exclude '.git' --exclude 'target' --exclude 'node_modules' \
|
rsync -avn --exclude '.git' --exclude 'target' --exclude 'node_modules' \
|
||||||
--exclude 'dist' --exclude 'web/dist' --exclude '*.iso' \
|
--exclude 'dist' --exclude 'web/dist' --exclude '*.iso' \
|
||||||
--exclude 'image-recipe/_archived/build' --exclude 'image-recipe/_archived/results' \
|
--exclude 'image-recipe/_archived/build' --exclude 'image-recipe/_archived/results' \
|
||||||
--exclude '.codex-target-*' --exclude '.codex-tmp' \
|
--exclude '.codex-target-*' --exclude '.codex-tmp' --exclude 'uploads' \
|
||||||
"$PROJECT_DIR/" "$TARGET_HOST:$TARGET_DIR/" 2>/dev/null | \
|
"$PROJECT_DIR/" "$TARGET_HOST:$TARGET_DIR/" 2>/dev/null | \
|
||||||
grep -E '^[<>]|^deleting' | head -50 || echo " (rsync check failed — SSH may be unavailable)"
|
grep -E '^[<>]|^deleting' | head -50 || echo " (rsync check failed — SSH may be unavailable)"
|
||||||
echo ""
|
echo ""
|
||||||
@ -550,6 +550,7 @@ rsync -avz --delete \
|
|||||||
--exclude '.git' \
|
--exclude '.git' \
|
||||||
--exclude '.codex-target-*' \
|
--exclude '.codex-target-*' \
|
||||||
--exclude '.codex-tmp' \
|
--exclude '.codex-tmp' \
|
||||||
|
--exclude 'uploads' \
|
||||||
--exclude 'image-recipe/build' \
|
--exclude 'image-recipe/build' \
|
||||||
--exclude 'image-recipe/results' \
|
--exclude 'image-recipe/results' \
|
||||||
--exclude 'image-recipe/_archived/build' \
|
--exclude 'image-recipe/_archived/build' \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user