archipelago
7fe6335583
Respect configured healthcheck timing during native update readiness
2026-10-08 14:35:20 -04:00
archipelago
f78ee25258
Bind relay restart override to its own active maintenance role
2026-10-08 00:27:04 -04:00
archipelago
884ea49238
Recognize only active owned Indee API restart override
2026-10-08 00:10:03 -04:00
archipelago
32317236d9
Version supervised launch identity without promoting legacy journals
2026-10-07 23:00:37 -04:00
archipelago
07c7eb0f14
Preserve intact originals when pre-target Indee drain refuses
2026-10-07 22:35:54 -04:00
archipelago
01a55d2de7
fix(indeehub): run maintenance controller in retained user scope
2026-10-07 19:53:07 -04:00
archipelago
b0b95810e0
fix(indeehub): preserve reviewed runtimes across reconciliation and lifecycle
2026-10-07 18:51:32 -04:00
archipelago
2bfa84efa9
Resolve complete reviewed IndeeHub stack before image preparation
2026-10-07 17:04:00 -04:00
archipelago
b9c75b2141
Prepare legacy IndeeHub identity and original recipes before catalog selection
2026-10-07 16:02:28 -04:00
archipelago
2512a9f62b
Retain verified restored units and validate original installer identity bindings
2026-10-07 02:57:31 -04:00
archipelago
39852ab381
Preserve reviewed managed unit recipes after update completion
2026-10-07 02:49:31 -04:00
archipelago
f79ecd11ae
Integrate legacy managed update maintenance and fenced recovery before reconciliation
2026-10-07 02:34:51 -04:00
archipelago
6e7ea8b9d6
Add managed runtime adapter and require operation-owned write drain through update
2026-10-07 02:05:52 -04:00
archipelago
6c030a8109
Plan reviewed Quadlet migrations and preserve private writable-layer snapshots
2026-10-07 01:52:36 -04:00
archipelago
68eeb6396d
Retain update recovery holds and journal supervised runtime restoration
2026-10-07 01:49:01 -04:00
archipelago
45579e53c7
Draft retained-container update journal and original-runtime recovery
2026-10-07 01:24:50 -04:00
archipelago
1bbf85e0d4
Recover stopped update staging draft on current private-image preflight
2026-10-07 01:14:49 -04:00
archipelago
49703d7e88
Integrate recoverable native purchases, registered rentals and explicit payment consent
2026-10-06 22:44:06 -04:00
archipelago
b52214f7a0
Qualify durable purchase and media primitives and preserve app launch paths
2026-10-06 20:50:44 -04:00
archipelago
9ce04627dd
Stream purchased files into durable cache and avoid duplicate concurrent payments
2026-10-06 05:48:05 -04:00
yaya
3fc37642cd
fix(apps): preserve manifest presentation during installation
2026-10-06 08:13:20 +01:00
archipelago
e54f83df8f
Add signed node-scoped demo catalogs and retained app media sessions
2026-10-06 00:53:34 -04:00
archipelago
131c39cf74
Restrict orphan container cleanup to its owning user and Podman storage
2026-10-06 00:52:40 -04:00
archipelago
daac47cac4
fix: harden node upgrades and prepare 1.9.0-alpha
2026-10-05 12:43:49 -04:00
TheCryptoDonkey
494d248356
feat: add NODE_IDENTITY_PUBKEYS derived-env placeholder
...
Lets an app grant the node's users owner rights, e.g. a Blossom server's
allowed uploaders. The value is the Nostr keys of the identities the app
identity picker offers for NIP-07 signing, chosen by the same rule as
NostrIdentityPicker.vue, so the node's own appliance identity is never
included. It is resolved only for manifests that template it, and an
empty set is an error rather than an empty owner list.
identity.list now shares its is_node test with the new helper.
2026-10-03 11:10:29 +02:00
archipelago
f4d3455496
Fix paid-file recovery, app lifecycle regressions and wallet controls
Demo images / Build & push demo images (push) Failing after 1m10s
2026-10-01 10:31:55 -04:00
archipelago
6d5f3ffb85
fix: select NPM admin port regardless of binding order
Demo images / Build & push demo images (push) Failing after 34s
2026-09-30 18:24:35 -04:00
archipelago
96fb5a4f19
fix: prevent stale snapshots resurrecting orphaned dashboards
Demo images / Build & push demo images (push) Failing after 36s
2026-09-30 17:45:18 -04:00
archipelago
c1e20a71ae
Check companion dashboards and omit headless UI waiting messages
Demo images / Build & push demo images (push) Failing after 37s
2026-09-30 13:28:37 -04:00
archipelago
d50be13232
Normalize Mempool frontend aliases in restored app inventory
2026-09-30 12:41:15 -04:00
archipelago
5ab65f7581
Preserve apostrophes in Quadlet commands and record funded acceptance
2026-09-30 12:08:35 -04:00
archipelago
169bf77de6
Add headless Angor services and shared-index install guard
Demo images / Build & push demo images (push) Failing after 43s
2026-09-30 11:52:19 -04:00
archipelago
acf544500f
fix(apps): preserve state across runtime repairs and restore Gitea SSH
2026-09-30 10:46:38 -04:00
archipelago
7d767c8cb0
fix(catalog): gate network migration manifests on backup support
2026-09-30 10:08:56 -04:00
archipelago
eb3ccfa00b
Merge branch 'fix/gitea-portainer-20260930'
2026-09-30 09:57:49 -04:00
archipelago
eda28c4cd6
fix(portainer): repair same-node Git routing with recoverable network migration
2026-09-30 09:57:25 -04:00
archipelago
d69e845216
Merge remote-tracking branch 'origin/main'
Demo images / Build & push demo images (push) Failing after 1m10s
2026-09-30 09:32:20 -04:00
archipelago
6ac26f637c
fix(apps): preserve lifecycle state and wait for usable launch endpoints
2026-09-30 09:10:30 -04:00
archipelago
0677924a64
Merge current main and make purchase filing atomic under concurrent writes
2026-09-30 07:26:51 -04:00
archipelago
c993d9dd0d
fix(lnd): require observed Bitcoin lifecycle change before dependency restart
2026-09-30 05:16:17 -04:00
archipelago
33d2b3ce60
fix(containers): preserve graceful shutdown through Quadlet and prepare 1.8.21
2026-09-30 04:59:30 -04:00
ssmithx and Claude Opus 5.5
33477f284b
fix(files): file purchased content into FileBrowser folders again
...
Every paid download logged "filing into filebrowser/Music/... failed
(non-fatal): Permission denied". The purchase played in-app but never
appeared in Files. FileBrowser's folders belong to its rootless container
range (host uid 100000, mode 755). This service is host uid 1000, outside
that range, so it can read them but not create files in them.
New container::filebrowser::save_new_file:
- Writes directly when the folder allows it.
- Otherwise writes through `podman unshare`, where that uid range is
ours: to a temp file, then chowned to the folder's owner, set to 0644,
and hard-linked into place. FileBrowser never sees a partial file and an
existing file is never replaced. A missing folder is created and given
its parent's owner. No sudo.
- Keeps the "name (2).ext" de-duplication the RPC did inline.
Checked the unshare script on amishparadise in a scratch folder owned
like FileBrowser's: new folder + file OK, owner/mode right, no clobber,
no temp file left, and the service can read the result.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-29 22:36:31 +00:00
archipelago
1f9abefc35
Isolate backend tests from live node wallets and services
2026-09-29 15:15:51 -04:00
archipelago
b634f41a1c
Complete paid-file caching and deliver LND waiting UI to existing nodes
2026-09-29 14:59:08 -04:00
archipelago
0f85f588fb
Fix Cashu file redemption and Bitcoin-dependent wallet readiness
2026-09-29 14:42:44 -04:00
archipelago
4237fb5e79
fix(wallet): prioritize LND boot and reject unavailable balances
2026-09-15 15:09:08 -04:00
archipelago
9c6580f5c0
fix: prevent stale catalog updates and redundant container recreation
Demo images / Build & push demo images (push) Failing after 40s
2026-09-15 03:40:21 -04:00
archipelago
cb3f7e8720
Merge PR #157 : Cuprate disk gate and companion dashboard
Demo images / Build & push demo images (push) Successful in 3m19s
2026-09-13 01:37:46 -04:00
archipelago
eb98ebb682
Merge PR #158 : preserve Bitcoin Core Tor service naming
2026-09-13 01:37:15 -04:00
ssmithx and archipelago
86052d9552
refactor(cuprate): one CUPRATE_MIN_DISK_GB, manifest matches it (review)
...
450 existed as two independent Rust constants (RPC gates vs boot
reconciler) linked only by a "keep in lockstep" comment — updating one
would reopen the disk-fill hole. Move it to crate::constants as the
single source of truth both paths import.
Also raise apps/cuprate/manifest.yml storage dependency and disk_limit
from 300Gi to 450Gi so manifest-driven surfaces (store size, pre-checks)
show the number the gate actually enforces — a user provisioning to the
displayed 300 was refused at an unexplained 450. Catalog regenerated
(cuprate entry re-embedded; still unsigned pending sign-catalog.sh).
2026-09-12 16:14:55 -04:00