deploy: exclude codex scratch artifacts
This commit is contained in:
parent
c79afa9541
commit
8f2e03df2a
@ -155,6 +155,39 @@ select:focus-visible {
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 920px) {
|
||||
.dashboard-view [data-controller-zone="sidebar"] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.dashboard-view .mobile-top-tabs,
|
||||
.dashboard-view [data-mobile-tab-bar] {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.dashboard-view .dashboard-scroll-panel {
|
||||
padding-left: 1rem !important;
|
||||
padding-right: 1rem !important;
|
||||
}
|
||||
|
||||
.mobile-scroll-pad {
|
||||
padding-bottom: calc(var(--mobile-tab-bar-height, 88px) + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)) + 16px);
|
||||
}
|
||||
|
||||
.mobile-scroll-pad-back {
|
||||
padding-bottom: calc(var(--mobile-tab-bar-height, 88px) + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)) + 64px);
|
||||
}
|
||||
|
||||
.mobile-safe-top {
|
||||
padding-top: calc(var(--safe-area-top, env(safe-area-inset-top, 0px)) + 16px);
|
||||
}
|
||||
|
||||
.marketplace-container .grid,
|
||||
.discover-container .grid {
|
||||
grid-template-columns: minmax(0, 1fr) !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Haptic-like press feedback for all interactive elements */
|
||||
button:active:not(:disabled),
|
||||
[role="button"]:active,
|
||||
@ -281,12 +314,6 @@ input[type="radio"]:active + * {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) and (max-width: 920px) {
|
||||
.app-header-inline-tabs {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 921px) {
|
||||
.app-header-desktop {
|
||||
display: flex;
|
||||
@ -297,6 +324,24 @@ input[type="radio"]:active + * {
|
||||
}
|
||||
}
|
||||
|
||||
.apps-icon-grid-mobile {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.apps-card-grid-desktop {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 921px) {
|
||||
.apps-icon-grid-mobile {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.apps-card-grid-desktop {
|
||||
display: grid;
|
||||
}
|
||||
}
|
||||
|
||||
.category-tabs-wide {
|
||||
flex: 0 1 auto;
|
||||
min-width: 0;
|
||||
|
||||
@ -203,7 +203,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Mobile: iPhone-style icon grid -->
|
||||
<div class="md:hidden">
|
||||
<div class="apps-icon-grid-mobile">
|
||||
<AppIconGrid
|
||||
:apps="filteredPackageEntries as [string, PackageDataEntry][]"
|
||||
@go-to-app="goToApp"
|
||||
@ -211,7 +211,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Desktop: Card grid -->
|
||||
<div class="hidden md:grid grid-cols-2 lg:grid-cols-3 gap-4 pb-6">
|
||||
<div class="apps-card-grid-desktop grid-cols-2 lg:grid-cols-3 gap-4 pb-6">
|
||||
<AppCard
|
||||
v-for="([id, pkg], index) in filteredPackageEntries"
|
||||
:key="id"
|
||||
|
||||
@ -140,6 +140,8 @@ const appLauncher = useAppLauncherStore()
|
||||
const uiMode = useUIModeStore()
|
||||
|
||||
const mobileTabBar = ref<HTMLElement | null>(null)
|
||||
const MOBILE_LAYOUT_MAX_WIDTH = 920
|
||||
const viewportWidth = ref(typeof window === 'undefined' ? 1024 : window.innerWidth)
|
||||
|
||||
// App sessions own their mobile controls. Normal mobile launches use the route
|
||||
// session; keeping this guard also protects any desktop-panel state on resize.
|
||||
@ -148,14 +150,14 @@ const isAppSessionActive = computed(() => route.name === 'app-session')
|
||||
// Show persistent tabs for Apps/Marketplace on mobile
|
||||
const showAppsTabs = computed(() => {
|
||||
if (typeof window === 'undefined') return false
|
||||
if (window.innerWidth >= 768) return false
|
||||
if (viewportWidth.value > MOBILE_LAYOUT_MAX_WIDTH) return false
|
||||
return route.path.includes('/apps') || route.path.includes('/marketplace') || route.path.includes('/discover')
|
||||
})
|
||||
|
||||
// Show persistent tabs for Network/Cloud on mobile
|
||||
const showNetworkTabs = computed(() => {
|
||||
if (typeof window === 'undefined') return false
|
||||
if (window.innerWidth >= 768) return false
|
||||
if (viewportWidth.value > MOBILE_LAYOUT_MAX_WIDTH) return false
|
||||
if (route.name === 'cloud-folder') return false
|
||||
return route.path.includes('/server') || route.path.includes('/cloud') || route.path.includes('/web5') || route.path.includes('/mesh')
|
||||
})
|
||||
@ -171,7 +173,7 @@ function readSafeAreaTop() {
|
||||
}
|
||||
|
||||
const mobileTabPaddingTop = computed(() => {
|
||||
if (typeof window === 'undefined' || window.innerWidth >= 768) return 0
|
||||
if (typeof window === 'undefined' || viewportWidth.value > MOBILE_LAYOUT_MAX_WIDTH) return 0
|
||||
const sat = safeAreaTop.value
|
||||
if (showAppsTabs.value && showNetworkTabs.value) return 160 + sat
|
||||
if (showAppsTabs.value || showNetworkTabs.value) return 80 + sat
|
||||
@ -193,6 +195,7 @@ function updateTabBarHeight() {
|
||||
}
|
||||
|
||||
function onResize() {
|
||||
viewportWidth.value = window.innerWidth
|
||||
updateTabBarHeight()
|
||||
}
|
||||
|
||||
|
||||
@ -147,6 +147,7 @@ deploy_node() {
|
||||
step "Syncing code"
|
||||
rsync -az --delete \
|
||||
--exclude='.git' --exclude='node_modules' --exclude='target/debug' \
|
||||
--exclude='.codex-target-*' --exclude='.codex-tmp' \
|
||||
--exclude='target/release/deps' --exclude='target/release/build' \
|
||||
--exclude='target/release/.fingerprint' --exclude='target/release/incremental' \
|
||||
--exclude='web/dist' --exclude='.DS_Store' --exclude='image-recipe/build' \
|
||||
|
||||
@ -164,6 +164,7 @@ if [[ "$DRY_RUN" == "true" ]]; then
|
||||
echo "Files that would be synced:"
|
||||
rsync -avn --exclude '.git' --exclude 'target' --exclude 'node_modules' \
|
||||
--exclude 'dist' --exclude 'web/dist' --exclude '*.iso' \
|
||||
--exclude '.codex-target-*' --exclude '.codex-tmp' \
|
||||
"$PROJECT_DIR/" "$TARGET_HOST:$TARGET_DIR/" 2>/dev/null | \
|
||||
grep -E '^[<>]|^deleting' | head -50 || echo " (rsync check failed — SSH may be unavailable)"
|
||||
echo ""
|
||||
@ -546,6 +547,8 @@ rsync -avz --delete \
|
||||
--exclude 'target' \
|
||||
--exclude 'dist' \
|
||||
--exclude '.git' \
|
||||
--exclude '.codex-target-*' \
|
||||
--exclude '.codex-tmp' \
|
||||
--exclude 'image-recipe/build' \
|
||||
--exclude 'image-recipe/results' \
|
||||
"$PROJECT_DIR/" "$TARGET_HOST:$TARGET_DIR/"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user