Compare commits
5 Commits
10e4f218a6
...
22df3f8f5f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22df3f8f5f | ||
|
|
87853fc29c | ||
|
|
b7c2fd081f | ||
|
|
809b76526e | ||
|
|
760796f650 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -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/
|
||||
|
||||
11
CHANGELOG.md
11
CHANGELOG.md
@ -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
2
core/Cargo.lock
generated
@ -80,7 +80,7 @@ checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
|
||||
|
||||
[[package]]
|
||||
name = "archipelago"
|
||||
version = "1.7.82-alpha"
|
||||
version = "1.7.83-alpha"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"archipelago-container",
|
||||
|
||||
@ -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"]
|
||||
|
||||
4
neode-ui/package-lock.json
generated
4
neode-ui/package-lock.json
generated
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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"
|
||||
>
|
||||
|
||||
@ -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); }
|
||||
|
||||
@ -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">
|
||||
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -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' \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user