Compare commits

...

5 Commits

Author SHA1 Message Date
archipelago
22df3f8f5f chore: release v1.7.83-alpha 2026-06-11 03:03:32 -04:00
archipelago
87853fc29c frontend: keep mobile app tabs singular 2026-06-11 02:54:34 -04:00
archipelago
b7c2fd081f settings: update whats new for v1.7.83 2026-06-11 02:49:07 -04:00
archipelago
809b76526e docs: prepare v1.7.83 alpha release notes 2026-06-11 02:40:04 -04:00
archipelago
760796f650 frontend: polish mesh release layout 2026-06-11 02:39:24 -04:00
13 changed files with 160 additions and 43 deletions

1
.gitignore vendored
View File

@ -95,3 +95,4 @@ scripts/resilience/reports/
# Local evidence screenshots; intentional UI screenshots should live under an
# app/docs asset path with a descriptive filename.
Screenshot *.png
uploads/

View File

@ -1,9 +1,14 @@
# Changelog
## v1.7.83-alpha (2026-05-26)
## v1.7.83-alpha (2026-06-11)
- Portainer installs and repairs now provision `catatonit`, pre-create persistent compose storage, and expose host `/data` to Portainer's data directory so Portainer-launched stacks no longer fail with missing init binary or `/data/compose/...` bind-mount permission errors.
- Existing Portainer containers are recreated when missing the corrected compose bind mount, and first-boot/deploy paths now use the rootless Podman socket consistently.
- App launch metadata now derives more consistently from app manifests, with typed launch interfaces and catalog generation updates that keep packaged apps aligned with their runtime ports and launch surfaces.
- Revoked or unsupported app surfaces were removed from the catalog and release path, including OnlyOffice and the unvalidated Saleor surface, so the Marketplace no longer exposes apps that cannot be safely supported in this release.
- The frontend production build now passes strict TypeScript checks after tightening app details, Web5, cloud refresh, and credential test typing.
- Mobile and desktop app surfaces received release polish: improved mobile app layout, safer mesh desktop/tablet scrolling, and the Home system card now routes directly to monitoring.
- Bitcoin UI status rendering now avoids false stale/reconnecting states when fresh block snapshots advance, and guards optional DOM updates so the standalone Bitcoin UI is more resilient.
- Deploy tooling now excludes local Codex scratch output, archived image-build artifacts, and upload screenshots from target syncs, and bounded optional IndeedHub fixups so a stuck Podman helper cannot hold the deploy.
- Validation passed with `npm run type-check`, production `npm run build`, backend `cargo build --release`, catalog/release manifest checks, focused frontend tests, and live `.198` deploy verification through the frontend/service restart phase.
## v1.7.82-alpha (2026-05-22)

2
core/Cargo.lock generated
View File

@ -80,7 +80,7 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
[[package]]
name = "archipelago"
version = "1.7.82-alpha"
version = "1.7.83-alpha"
dependencies = [
"anyhow",
"archipelago-container",

View File

@ -1,6 +1,6 @@
[package]
name = "archipelago"
version = "1.7.82-alpha"
version = "1.7.83-alpha"
edition = "2021"
description = "Archipelago Bitcoin Node OS - Native backend"
authors = ["Archipelago Team"]

View File

@ -1,12 +1,12 @@
{
"name": "neode-ui",
"version": "1.7.82-alpha",
"version": "1.7.83-alpha",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "neode-ui",
"version": "1.7.82-alpha",
"version": "1.7.83-alpha",
"dependencies": {
"@types/dompurify": "^3.0.5",
"@vue-leaflet/vue-leaflet": "^0.10.1",

View File

@ -1,7 +1,7 @@
{
"name": "neode-ui",
"private": true,
"version": "1.7.82-alpha",
"version": "1.7.83-alpha",
"type": "module",
"scripts": {
"start": "./start-dev.sh",

View File

@ -156,6 +156,10 @@ select:focus-visible {
}
@media (max-width: 920px) {
.dashboard-view .app-header-inline-tabs {
display: none !important;
}
.dashboard-view [data-controller-zone="sidebar"] {
display: none !important;
}
@ -311,7 +315,7 @@ input[type="radio"]:active + * {
}
.app-header-inline-tabs {
display: none;
display: none !important;
}
@media (min-width: 921px) {

View File

@ -85,7 +85,11 @@
<div :key="route.path" class="view-wrapper">
<div
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 }"
class="mobile-safe-top"
>

View File

@ -12,6 +12,18 @@
height: 100%;
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-left { flex: 1; }
.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); }
}
@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-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); }

View File

@ -188,6 +188,63 @@ init()
</button>
</div>
<div class="overflow-y-auto flex-1 min-h-0 space-y-6 pr-1">
<!-- v1.7.83-alpha -->
<div>
<div class="flex items-center gap-2 mb-3">
<span class="text-xs font-mono px-2 py-0.5 rounded bg-orange-500/20 text-orange-300">v1.7.83-alpha</span>
<span class="text-xs text-white/40">June 11, 2026</span>
</div>
<div class="space-y-3 text-sm text-white/80 pl-3 border-l border-white/10">
<p>App launch metadata now follows typed manifest launch interfaces more consistently, keeping catalog entries aligned with their runtime ports and launch surfaces.</p>
<p>Unsupported app surfaces were removed from the release path, including revoked OnlyOffice metadata and the unvalidated Saleor surface.</p>
<p>Mobile and desktop app surfaces received release polish: stricter production build typing, safer mesh desktop/tablet scrolling, improved mobile app layout, and a Home system card link that goes directly to Monitoring.</p>
<p>The Bitcoin UI avoids false stale/reconnecting messages when fresh block snapshots advance, and deploy tooling now skips local scratch/upload artifacts while bounding optional IndeedHub fixups.</p>
</div>
</div>
<!-- v1.7.82-alpha -->
<div>
<div class="flex items-center gap-2 mb-3">
<span class="text-xs font-mono px-2 py-0.5 rounded bg-orange-500/20 text-orange-300">v1.7.82-alpha</span>
<span class="text-xs text-white/40">May 22, 2026</span>
</div>
<div class="space-y-3 text-sm text-white/80 pl-3 border-l border-white/10">
<p>Saleor storefront proxying forwarded the correct external host and media paths, fixing Server Actions origin checks and product image optimizer failures.</p>
<p>The storefront received an internal media origin so rewritten media URLs resolve inside the Podman network without exposing private API ports to browsers.</p>
</div>
</div>
<!-- v1.7.81-alpha -->
<div>
<div class="flex items-center gap-2 mb-3">
<span class="text-xs font-mono px-2 py-0.5 rounded bg-orange-500/20 text-orange-300">v1.7.81-alpha</span>
<span class="text-xs text-white/40">May 21, 2026</span>
</div>
<div class="space-y-3 text-sm text-white/80 pl-3 border-l border-white/10">
<p>Saleor storefront installs switched to the prebuilt registry image instead of building Next.js on-device, avoiding build failures during stack installation.</p>
<p>Existing Saleor stacks were repaired on adoption by recreating missing storefront containers, forcing the app to bind on all interfaces, and resolving nginx upstreams after restarts.</p>
</div>
</div>
<!-- v1.7.80-alpha -->
<div>
<div class="flex items-center gap-2 mb-3">
<span class="text-xs font-mono px-2 py-0.5 rounded bg-orange-500/20 text-orange-300">v1.7.80-alpha</span>
<span class="text-xs text-white/40">May 21, 2026</span>
</div>
<div class="space-y-3 text-sm text-white/80 pl-3 border-l border-white/10">
<p>Saleor storefront proxying falls back to the direct request scheme when forwarded protocol headers are absent, fixing direct local launches on port 9011.</p>
<p>Public proxy support remains intact by still honoring forwarded HTTPS headers for Nginx Proxy Manager domains.</p>
</div>
</div>
<!-- v1.7.79-alpha -->
<div>
<div class="flex items-center gap-2 mb-3">
<span class="text-xs font-mono px-2 py-0.5 rounded bg-orange-500/20 text-orange-300">v1.7.79-alpha</span>
<span class="text-xs text-white/40">May 20, 2026</span>
</div>
<div class="space-y-3 text-sm text-white/80 pl-3 border-l border-white/10">
<p>Saleor was published as a recommended commerce stack with storefront, dashboard, API, worker, database, cache, Mailpit, and Jaeger services.</p>
<p>Saleor launches opened the storefront while dashboard credentials stayed visible in Archipelago, and public storefront domains received same-origin GraphQL proxying.</p>
</div>
</div>
<!-- v1.7.78-alpha -->
<div>
<div class="flex items-center gap-2 mb-3">
@ -201,6 +258,18 @@ init()
<p>Android app-session popups hand external login/signup windows to the system browser instead of dropping them inside the WebView.</p>
</div>
</div>
<!-- v1.7.77-alpha -->
<div>
<div class="flex items-center gap-2 mb-3">
<span class="text-xs font-mono px-2 py-0.5 rounded bg-orange-500/20 text-orange-300">v1.7.77-alpha</span>
<span class="text-xs text-white/40">May 20, 2026</span>
</div>
<div class="space-y-3 text-sm text-white/80 pl-3 border-l border-white/10">
<p>Saleor first-use credentials are shown in Archipelago before launch and in App Details, instead of leaving users at an unexplained dashboard login.</p>
<p>NetBird embedded login now uses upstream-compatible signing-key behavior and sends ID tokens to the management API, fixing post-signup Unauthenticated states.</p>
<p>Transient unnamed Podman helper containers are hidden from My Apps so generated names no longer appear as user applications.</p>
</div>
</div>
<!-- v1.7.76-alpha -->
<div>
<div class="flex items-center gap-2 mb-3">

View File

@ -1,27 +1,31 @@
{
"version": "1.7.82-alpha",
"release_date": "2026-05-22",
"version": "1.7.83-alpha",
"release_date": "2026-06-11",
"changelog": [
"Unsupported Saleor catalog and runtime surfaces are removed until a manifest-owned package exists.",
"Revoked OnlyOffice app surfaces are removed from manifests, launch metadata, proxies, mock data, and legacy install paths.",
"App catalog drift remains strict and manifest-owned metadata remains the release source of truth."
"App launch metadata now derives more consistently from app manifests, with typed launch interfaces and catalog generation updates that keep packaged apps aligned with their runtime ports and launch surfaces.",
"Revoked or unsupported app surfaces were removed from the catalog and release path, including OnlyOffice and the unvalidated Saleor surface, so the Marketplace no longer exposes apps that cannot be safely supported in this release.",
"The frontend production build now passes strict TypeScript checks after tightening app details, Web5, cloud refresh, and credential test typing.",
"Mobile and desktop app surfaces received release polish: improved mobile app layout, safer mesh desktop/tablet scrolling, and the Home system card now routes directly to monitoring.",
"Bitcoin UI status rendering now avoids false stale/reconnecting states when fresh block snapshots advance, and guards optional DOM updates so the standalone Bitcoin UI is more resilient.",
"Deploy tooling now excludes local Codex scratch output, archived image-build artifacts, and upload screenshots from target syncs, and bounded optional IndeedHub fixups so a stuck Podman helper cannot hold the deploy.",
"Validation passed with `npm run type-check`, production `npm run build`, backend `cargo build --release`, catalog/release manifest checks, focused frontend tests, and live `.198` deploy verification through the frontend/service restart phase."
],
"components": [
{
"name": "archipelago",
"current_version": "1.7.82-alpha",
"new_version": "1.7.82-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.82-alpha/archipelago",
"sha256": "d03ef4ab8a2c01fa5c6e98e4f1acf0e39fecfa260bb0c47cbe01405c5ed5a70d",
"size_bytes": 43118248
"current_version": "1.7.83-alpha",
"new_version": "1.7.83-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.83-alpha/archipelago",
"sha256": "cf1cfeadadb34ff7b7d786fbed1aa3ca035bac0b480d85fc740c5683ad613cf6",
"size_bytes": 43845952
},
{
"name": "archipelago-frontend-1.7.82-alpha.tar.gz",
"current_version": "1.7.82-alpha",
"new_version": "1.7.82-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.82-alpha/archipelago-frontend-1.7.82-alpha.tar.gz",
"sha256": "be53e82383c3a8480ae9d45870ebe8ab47f6b07e90b16202cba1ee97530364b0",
"size_bytes": 166485959
"name": "archipelago-frontend-1.7.83-alpha.tar.gz",
"current_version": "1.7.83-alpha",
"new_version": "1.7.83-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.83-alpha/archipelago-frontend-1.7.83-alpha.tar.gz",
"sha256": "c8d21d9ee01497610dc460cbdc68ab30c6cd1544efc71308e29f7708f41f2f97",
"size_bytes": 184082906
}
]
}

View File

@ -1,27 +1,31 @@
{
"version": "1.7.82-alpha",
"release_date": "2026-05-22",
"version": "1.7.83-alpha",
"release_date": "2026-06-11",
"changelog": [
"Unsupported Saleor catalog and runtime surfaces are removed until a manifest-owned package exists.",
"Revoked OnlyOffice app surfaces are removed from manifests, launch metadata, proxies, mock data, and legacy install paths.",
"App catalog drift remains strict and manifest-owned metadata remains the release source of truth."
"App launch metadata now derives more consistently from app manifests, with typed launch interfaces and catalog generation updates that keep packaged apps aligned with their runtime ports and launch surfaces.",
"Revoked or unsupported app surfaces were removed from the catalog and release path, including OnlyOffice and the unvalidated Saleor surface, so the Marketplace no longer exposes apps that cannot be safely supported in this release.",
"The frontend production build now passes strict TypeScript checks after tightening app details, Web5, cloud refresh, and credential test typing.",
"Mobile and desktop app surfaces received release polish: improved mobile app layout, safer mesh desktop/tablet scrolling, and the Home system card now routes directly to monitoring.",
"Bitcoin UI status rendering now avoids false stale/reconnecting states when fresh block snapshots advance, and guards optional DOM updates so the standalone Bitcoin UI is more resilient.",
"Deploy tooling now excludes local Codex scratch output, archived image-build artifacts, and upload screenshots from target syncs, and bounded optional IndeedHub fixups so a stuck Podman helper cannot hold the deploy.",
"Validation passed with `npm run type-check`, production `npm run build`, backend `cargo build --release`, catalog/release manifest checks, focused frontend tests, and live `.198` deploy verification through the frontend/service restart phase."
],
"components": [
{
"name": "archipelago",
"current_version": "1.7.82-alpha",
"new_version": "1.7.82-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.82-alpha/archipelago",
"sha256": "d03ef4ab8a2c01fa5c6e98e4f1acf0e39fecfa260bb0c47cbe01405c5ed5a70d",
"size_bytes": 43118248
"current_version": "1.7.83-alpha",
"new_version": "1.7.83-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.83-alpha/archipelago",
"sha256": "cf1cfeadadb34ff7b7d786fbed1aa3ca035bac0b480d85fc740c5683ad613cf6",
"size_bytes": 43845952
},
{
"name": "archipelago-frontend-1.7.82-alpha.tar.gz",
"current_version": "1.7.82-alpha",
"new_version": "1.7.82-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.82-alpha/archipelago-frontend-1.7.82-alpha.tar.gz",
"sha256": "be53e82383c3a8480ae9d45870ebe8ab47f6b07e90b16202cba1ee97530364b0",
"size_bytes": 166485959
"name": "archipelago-frontend-1.7.83-alpha.tar.gz",
"current_version": "1.7.83-alpha",
"new_version": "1.7.83-alpha",
"download_url": "http://146.59.87.168:3000/lfg2025/archy/releases/download/v1.7.83-alpha/archipelago-frontend-1.7.83-alpha.tar.gz",
"sha256": "c8d21d9ee01497610dc460cbdc68ab30c6cd1544efc71308e29f7708f41f2f97",
"size_bytes": 184082906
}
]
}

View File

@ -165,7 +165,7 @@ if [[ "$DRY_RUN" == "true" ]]; then
rsync -avn --exclude '.git' --exclude 'target' --exclude 'node_modules' \
--exclude 'dist' --exclude 'web/dist' --exclude '*.iso' \
--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 | \
grep -E '^[<>]|^deleting' | head -50 || echo " (rsync check failed — SSH may be unavailable)"
echo ""
@ -550,6 +550,7 @@ rsync -avz --delete \
--exclude '.git' \
--exclude '.codex-target-*' \
--exclude '.codex-tmp' \
--exclude 'uploads' \
--exclude 'image-recipe/build' \
--exclude 'image-recipe/results' \
--exclude 'image-recipe/_archived/build' \