Prepare signed v1.8.20-alpha release and record operator acceptance
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Framework: LND startup, missing Receive address, false zero balance
|
# Framework: LND startup, missing Receive address, false zero balance
|
||||||
|
|
||||||
**Status: OPEN — Framework startup, native balances, Cashu address and source integration verified; final rendered dashboard confirmation remains.**
|
**Status: CLOSED WITH OPERATOR ACCEPTANCE — startup, native balances, Cashu address and source integration verified; user accepted the remaining display check and authorized release on 2026-09-30.**
|
||||||
|
|
||||||
Reported: 2026-09-15. Source inspected: main at `3b9b74da` (v1.8.17-alpha publication).
|
Reported: 2026-09-15. Source inspected: main at `3b9b74da` (v1.8.17-alpha publication).
|
||||||
The Framework's installed version and exact incident time have not been verified.
|
The Framework's installed version and exact incident time have not been verified.
|
||||||
@@ -391,3 +391,15 @@ was installed against existing block data: Core made steady replay progress,
|
|||||||
while LND exited on its short “bitcoind start timeout”. Candidate work defers
|
while LND exited on its short “bitcoind start timeout”. Candidate work defers
|
||||||
unlock until authenticated Bitcoin RPC answers, with dependency waiting states
|
unlock until authenticated Bitcoin RPC answers, with dependency waiting states
|
||||||
in the LND UI. This is not evidence of a new failure on Framework.
|
in the LND UI. This is not evidence of a new failure on Framework.
|
||||||
|
|
||||||
|
### Operator acceptance and release authorization — 2026-09-30
|
||||||
|
|
||||||
|
After being told that final rendered balance/Receive confirmation remained and
|
||||||
|
SSH access was unavailable, the user replied: “that's fine I believe it'd fixed,
|
||||||
|
please release”. This explicitly accepts proceeding past the remaining human
|
||||||
|
display check. Close this incident with operator acceptance based on the earlier
|
||||||
|
controlled reboot, preserved identity/channels/native balances, working Receive
|
||||||
|
address/payment, source integration, and the user's report of no further issues.
|
||||||
|
No new direct Framework inspection or on-screen verification is claimed today.
|
||||||
|
Reopen investigation if the original startup, Receive, or false-zero symptom
|
||||||
|
recurs; preserve the wallet and channels.
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ next OTA and raw ISO. Passing unit tests alone does not establish live correctne
|
|||||||
- [x] Candidate deployed with rollback to dev and Shorty; hashes verified.
|
- [x] Candidate deployed with rollback to dev and Shorty; hashes verified.
|
||||||
- [x] Live paid-file purchase succeeds; failed purchase/refund behavior verified.
|
- [x] Live paid-file purchase succeeds; failed purchase/refund behavior verified.
|
||||||
- [x] Live waiting/UI verified on dev; recovery covered by deterministic tests.
|
- [x] Live waiting/UI verified on dev; recovery covered by deterministic tests.
|
||||||
- [ ] Framework final confirmation recorded.
|
- [x] Framework operator acceptance and authorization to release recorded.
|
||||||
- [x] Release version/changelog, catalog/image implications, signing prepared.
|
- [x] Release version/changelog, catalog/image implications, signing prepared.
|
||||||
- [ ] Signed OTA built, tested, published to git and ngit.
|
- [ ] Signed OTA built, tested, published to git and ngit.
|
||||||
- [ ] Raw ISO built, boot-tested, signed and published; download command supplied.
|
- [ ] Raw ISO built, boot-tested, signed and published; download command supplied.
|
||||||
@@ -250,3 +250,10 @@ and publication. No v1.8.20 public release or tag exists yet. Four pre-existing
|
|||||||
hardware/live tests remain ignored. Bitcoin sync-to-ready recovery is covered
|
hardware/live tests remain ignored. Bitcoin sync-to-ready recovery is covered
|
||||||
by deterministic tests; the live node remains in initial sync. Do not describe
|
by deterministic tests; the live node remains in initial sync. Do not describe
|
||||||
these checks as proof against every possible network/payment failure.
|
these checks as proof against every possible network/payment failure.
|
||||||
|
|
||||||
|
### Signing and release authorization — 2026-09-30
|
||||||
|
|
||||||
|
Both catalog and OTA signatures verify against the pinned release root. Staged
|
||||||
|
artifact hash/size checks and catalog drift/trust checks pass. User accepted the
|
||||||
|
remaining Framework display check and explicitly authorized release. Publication
|
||||||
|
and ISO build may proceed; do not regenerate the signed manifest or artifacts.
|
||||||
|
|||||||
@@ -618,7 +618,7 @@
|
|||||||
},
|
},
|
||||||
"container": {
|
"container": {
|
||||||
"custom_args": [
|
"custom_args": [
|
||||||
"BITCOIND=\"$(command -v bitcoind || true)\"; if [ -z \"$BITCOIND\" ]; then\n BITCOIND=\"$(find /opt -path '*/bin/bitcoind' -type f 2>/dev/null | sort | tail -n 1)\";\nfi; if [ -z \"$BITCOIND\" ]; then\n echo \"bitcoind not found in image\" >&2;\n exit 127;\nfi; RPC_USER=\"$(printenv BITCOIN_RPC_USER)\"; RPC_PASS=\"$(printenv BITCOIN_RPC_PASS)\"; RPC_CONF=\"/tmp/rpc.conf\"; umask 077; { echo \"rpcuser=$RPC_USER\"; echo \"rpcpassword=$RPC_PASS\"; } > \"$RPC_CONF\"; if [ -f /home/bitcoin/.bitcoin/bitcoin.conf ]; then\n echo \"archipelago: ignoring legacy datadir bitcoin.conf; RPC config comes from $RPC_CONF\" >&2;\nfi; RPC_TXRELAY_AUTH=\"$(printenv BITCOIN_RPC_TXRELAY_RPCAUTH || true)\"; DISK_GB_VALUE=\"$(printenv DISK_GB || true)\"; RPC_HEADROOM=\"-rpcthreads=16 -rpcworkqueue=256\"; RPC_TXRELAY_FLAGS=\"-rpcwhitelistdefault=0\"; if [ -n \"$RPC_TXRELAY_AUTH\" ]; then\n RPC_TXRELAY_FLAGS=\"$RPC_TXRELAY_FLAGS -rpcauth=$RPC_TXRELAY_AUTH -rpcwhitelist=txrelay:sendrawtransaction,submitpackage,testmempoolaccept,getmempoolinfo,getrawmempool,getmempoolentry,getnetworkinfo,getblockchaininfo,getblockcount,getblockhash,getblock,getblockheader,getrawtransaction,gettxout,gettxspendingprevout,decoderawtransaction,decodescript,estimatesmartfee,uptime,ping,getconnectioncount,getpeerinfo,getindexinfo,getdeploymentinfo,getchaintips\";\nfi; if [ \"${DISK_GB_VALUE:-0}\" -lt 1000 ]; then\n exec \"$BITCOIND\" -datadir=/home/bitcoin/.bitcoin -conf=\"$RPC_CONF\" -allowignoredconf=1 -printtoconsole=0 -server=1 -prune=50000 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=1024 -par=0 -maxconnections=125 $RPC_HEADROOM $RPC_TXRELAY_FLAGS;\nelse\n exec \"$BITCOIND\" -datadir=/home/bitcoin/.bitcoin -conf=\"$RPC_CONF\" -allowignoredconf=1 -printtoconsole=0 -server=1 -txindex=1 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=4096 -par=0 -maxconnections=125 $RPC_HEADROOM $RPC_TXRELAY_FLAGS;\nfi"
|
"BITCOIND=\"$(command -v bitcoind || true)\"; if [ -z \"$BITCOIND\" ]; then\n BITCOIND=\"$(find /opt -path '*/bin/bitcoind' -type f 2>/dev/null | sort | tail -n 1)\";\nfi; if [ -z \"$BITCOIND\" ]; then\n echo \"bitcoind not found in image\" >&2;\n exit 127;\nfi; RPC_USER=\"$(printenv BITCOIN_RPC_USER)\"; RPC_PASS=\"$(printenv BITCOIN_RPC_PASS)\"; RPC_CONF=\"/tmp/rpc.conf\"; umask 077; { echo \"rpcuser=$RPC_USER\"; echo \"rpcpassword=$RPC_PASS\"; } > \"$RPC_CONF\"; if [ -f /home/bitcoin/.bitcoin/bitcoin.conf ]; then\n echo \"archipelago: ignoring legacy datadir bitcoin.conf; RPC config comes from $RPC_CONF\" >&2;\nfi; RPC_TXRELAY_AUTH=\"$(printenv BITCOIN_RPC_TXRELAY_RPCAUTH || true)\"; DISK_GB_VALUE=\"$(printenv DISK_GB || true)\"; RPC_HEADROOM=\"-rpcthreads=16 -rpcworkqueue=256\"; RPC_TXRELAY_FLAGS=\"-rpcwhitelistdefault=0\"; if [ -n \"$RPC_TXRELAY_AUTH\" ]; then\n RPC_TXRELAY_FLAGS=\"$RPC_TXRELAY_FLAGS -rpcauth=$RPC_TXRELAY_AUTH -rpcwhitelist=txrelay:sendrawtransaction,submitpackage,testmempoolaccept,getmempoolinfo,getrawmempool,getmempoolentry,getnetworkinfo,getblockchaininfo,getblockcount,getblockhash,getblock,getblockheader,getrawtransaction,gettxout,gettxspendingprevout,decoderawtransaction,decodescript,estimatesmartfee,uptime,ping,getconnectioncount,getpeerinfo,getindexinfo,getdeploymentinfo,getchaintips\";\nfi; if [ \"${BITCOIN_PRUNE:-0}\" = \"1\" ] || [ \"${DISK_GB_VALUE:-0}\" -lt 1000 ]; then\n exec \"$BITCOIND\" -datadir=/home/bitcoin/.bitcoin -conf=\"$RPC_CONF\" -allowignoredconf=1 -printtoconsole=0 -server=1 -prune=50000 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=1024 -par=0 -maxconnections=125 $RPC_HEADROOM $RPC_TXRELAY_FLAGS;\nelse\n exec \"$BITCOIND\" -datadir=/home/bitcoin/.bitcoin -conf=\"$RPC_CONF\" -allowignoredconf=1 -printtoconsole=0 -server=1 -txindex=1 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=4096 -par=0 -maxconnections=125 $RPC_HEADROOM $RPC_TXRELAY_FLAGS;\nfi"
|
||||||
],
|
],
|
||||||
"data_uid": "100101:100101",
|
"data_uid": "100101:100101",
|
||||||
"derived_env": [
|
"derived_env": [
|
||||||
@@ -768,7 +768,7 @@
|
|||||||
},
|
},
|
||||||
"container": {
|
"container": {
|
||||||
"custom_args": [
|
"custom_args": [
|
||||||
"BITCOIND=\"$(command -v bitcoind || true)\"; if [ -z \"$BITCOIND\" ]; then\n BITCOIND=\"$(find /opt -path '*/bin/bitcoind' -type f 2>/dev/null | sort | tail -n 1)\";\nfi; if [ -z \"$BITCOIND\" ]; then\n echo \"bitcoind not found in image\" >&2;\n exit 127;\nfi; RPC_USER=\"$(printenv BITCOIN_RPC_USER)\"; RPC_PASS=\"$(printenv BITCOIN_RPC_PASS)\"; RPC_CONF=\"/tmp/rpc.conf\"; umask 077; { echo \"rpcuser=$RPC_USER\"; echo \"rpcpassword=$RPC_PASS\"; } > \"$RPC_CONF\"; if [ -f /home/bitcoin/.bitcoin/bitcoin.conf ]; then\n echo \"archipelago: ignoring legacy datadir bitcoin.conf; RPC config comes from $RPC_CONF\" >&2;\nfi; RPC_TXRELAY_AUTH=\"$(printenv BITCOIN_RPC_TXRELAY_RPCAUTH || true)\"; DISK_GB_VALUE=\"$(printenv DISK_GB || true)\"; RPC_HEADROOM=\"-rpcthreads=16 -rpcworkqueue=256\"; RPC_TXRELAY_FLAGS=\"-rpcwhitelistdefault=0\"; if [ -n \"$RPC_TXRELAY_AUTH\" ]; then\n RPC_TXRELAY_FLAGS=\"$RPC_TXRELAY_FLAGS -rpcauth=$RPC_TXRELAY_AUTH -rpcwhitelist=txrelay:sendrawtransaction,submitpackage,testmempoolaccept,getmempoolinfo,getrawmempool,getmempoolentry,getnetworkinfo,getblockchaininfo,getblockcount,getblockhash,getblock,getblockheader,getrawtransaction,gettxout,gettxspendingprevout,decoderawtransaction,decodescript,estimatesmartfee,uptime,ping,getconnectioncount,getpeerinfo,getindexinfo,getdeploymentinfo,getchaintips\";\nfi; if [ \"${DISK_GB_VALUE:-0}\" -lt 1000 ]; then\n exec \"$BITCOIND\" -datadir=/home/bitcoin/.bitcoin -conf=\"$RPC_CONF\" -allowignoredconf=1 -printtoconsole=0 -server=1 -prune=50000 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=2048 -par=0 -maxconnections=125 $RPC_HEADROOM $RPC_TXRELAY_FLAGS;\nelse\n exec \"$BITCOIND\" -datadir=/home/bitcoin/.bitcoin -conf=\"$RPC_CONF\" -allowignoredconf=1 -printtoconsole=0 -server=1 -txindex=1 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=4096 -par=0 -maxconnections=125 $RPC_HEADROOM $RPC_TXRELAY_FLAGS;\nfi"
|
"BITCOIND=\"$(command -v bitcoind || true)\"; if [ -z \"$BITCOIND\" ]; then\n BITCOIND=\"$(find /opt -path '*/bin/bitcoind' -type f 2>/dev/null | sort | tail -n 1)\";\nfi; if [ -z \"$BITCOIND\" ]; then\n echo \"bitcoind not found in image\" >&2;\n exit 127;\nfi; RPC_USER=\"$(printenv BITCOIN_RPC_USER)\"; RPC_PASS=\"$(printenv BITCOIN_RPC_PASS)\"; RPC_CONF=\"/tmp/rpc.conf\"; umask 077; { echo \"rpcuser=$RPC_USER\"; echo \"rpcpassword=$RPC_PASS\"; } > \"$RPC_CONF\"; if [ -f /home/bitcoin/.bitcoin/bitcoin.conf ]; then\n echo \"archipelago: ignoring legacy datadir bitcoin.conf; RPC config comes from $RPC_CONF\" >&2;\nfi; RPC_TXRELAY_AUTH=\"$(printenv BITCOIN_RPC_TXRELAY_RPCAUTH || true)\"; DISK_GB_VALUE=\"$(printenv DISK_GB || true)\"; RPC_HEADROOM=\"-rpcthreads=16 -rpcworkqueue=256\"; RPC_TXRELAY_FLAGS=\"-rpcwhitelistdefault=0\"; if [ -n \"$RPC_TXRELAY_AUTH\" ]; then\n RPC_TXRELAY_FLAGS=\"$RPC_TXRELAY_FLAGS -rpcauth=$RPC_TXRELAY_AUTH -rpcwhitelist=txrelay:sendrawtransaction,submitpackage,testmempoolaccept,getmempoolinfo,getrawmempool,getmempoolentry,getnetworkinfo,getblockchaininfo,getblockcount,getblockhash,getblock,getblockheader,getrawtransaction,gettxout,gettxspendingprevout,decoderawtransaction,decodescript,estimatesmartfee,uptime,ping,getconnectioncount,getpeerinfo,getindexinfo,getdeploymentinfo,getchaintips\";\nfi; if [ \"${BITCOIN_PRUNE:-0}\" = \"1\" ] || [ \"${DISK_GB_VALUE:-0}\" -lt 1000 ]; then\n exec \"$BITCOIND\" -datadir=/home/bitcoin/.bitcoin -conf=\"$RPC_CONF\" -allowignoredconf=1 -printtoconsole=0 -server=1 -prune=50000 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=2048 -par=0 -maxconnections=125 $RPC_HEADROOM $RPC_TXRELAY_FLAGS;\nelse\n exec \"$BITCOIND\" -datadir=/home/bitcoin/.bitcoin -conf=\"$RPC_CONF\" -allowignoredconf=1 -printtoconsole=0 -server=1 -txindex=1 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0:8332 -listen=1 -bind=0.0.0.0:8333 -dbcache=4096 -par=0 -maxconnections=125 $RPC_HEADROOM $RPC_TXRELAY_FLAGS;\nfi"
|
||||||
],
|
],
|
||||||
"data_uid": "100101:100101",
|
"data_uid": "100101:100101",
|
||||||
"derived_env": [
|
"derived_env": [
|
||||||
@@ -1378,6 +1378,67 @@
|
|||||||
},
|
},
|
||||||
"version": "0.1.0-preview"
|
"version": "0.1.0-preview"
|
||||||
},
|
},
|
||||||
|
"cuprate-ui": {
|
||||||
|
"image": "source.archipelago-foundation.org/lfg2025/cuprate-ui:1.7.123-alpha",
|
||||||
|
"manifest": {
|
||||||
|
"app": {
|
||||||
|
"container": {
|
||||||
|
"build": {
|
||||||
|
"context": "/opt/archipelago/docker/cuprate-ui",
|
||||||
|
"dockerfile": "Dockerfile",
|
||||||
|
"tag": "localhost/cuprate-ui:local"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dependencies": [
|
||||||
|
{
|
||||||
|
"app_id": "cuprate"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Archipelago-native HTTP frontend for the Cuprate Monero node. Runs nginx\ninside a container, serves a static status dashboard, and proxies\n/cuprate-rpc/ to the cuprate restricted RPC on 127.0.0.1:18090 (the\npublished host port for the container's 18089). No credentials are\ninjected — the restricted RPC is Monero's own safe-for-public subset — so\nthe nginx.conf is baked into the image and there is no rendered-config\nbind-mount like bitcoin-ui's.\n",
|
||||||
|
"environment": [],
|
||||||
|
"health_check": {
|
||||||
|
"endpoint": "http://127.0.0.1:18091",
|
||||||
|
"interval": "30s",
|
||||||
|
"path": "/",
|
||||||
|
"retries": 3,
|
||||||
|
"timeout": "5s",
|
||||||
|
"type": "http"
|
||||||
|
},
|
||||||
|
"id": "cuprate-ui",
|
||||||
|
"metadata": {
|
||||||
|
"author": "Archipelago",
|
||||||
|
"category": "money",
|
||||||
|
"icon": "/assets/img/app-icons/cuprate.svg",
|
||||||
|
"repo": "https://github.com/Cuprate/cuprate",
|
||||||
|
"tier": "optional"
|
||||||
|
},
|
||||||
|
"name": "Cuprate UI",
|
||||||
|
"ports": [
|
||||||
|
{
|
||||||
|
"auth": "gated",
|
||||||
|
"bind": "127.0.0.1",
|
||||||
|
"container": 18091,
|
||||||
|
"host": 18091,
|
||||||
|
"protocol": "tcp",
|
||||||
|
"session_passthrough": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"resources": {
|
||||||
|
"memory_limit": "64Mi"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"network_policy": "host",
|
||||||
|
"readonly_root": false
|
||||||
|
},
|
||||||
|
"upstream": {
|
||||||
|
"kind": "internal"
|
||||||
|
},
|
||||||
|
"version": "1.0.0",
|
||||||
|
"volumes": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"version": "1.7.123-alpha"
|
||||||
|
},
|
||||||
"electrs-ui": {
|
"electrs-ui": {
|
||||||
"image": "source.archipelago-foundation.org/lfg2025/electrs-ui:1.7.123-alpha",
|
"image": "source.archipelago-foundation.org/lfg2025/electrs-ui:1.7.123-alpha",
|
||||||
"manifest": {
|
"manifest": {
|
||||||
@@ -5464,7 +5525,7 @@
|
|||||||
"tag": "NOSTR IDENTITY // YOUR NODE"
|
"tag": "NOSTR IDENTITY // YOUR NODE"
|
||||||
},
|
},
|
||||||
"schema": 1,
|
"schema": 1,
|
||||||
"signature": "e716a9069021af87a2252d7561c01153f17c5630d7c36d8fdc1be1c7aa40560d09557513c0e09835a6b76b52b4f7edf0619cbaff02ac1d9d818066f67046e401",
|
"signature": "bbcc938b855c1cb5d803e4510e1aac3259fbf3eabf6f36294c7773634047a3d5edb5b37a17d01d62d1407e5701c62853e15e20e15cc7f486b8975b22eeb94c07",
|
||||||
"signed_by": "did:key:z6Mkfu5LT8d4DjETtrkATvHh9Dvcbnr7zBCUwfau8Sw7DLWT",
|
"signed_by": "did:key:z6Mkfu5LT8d4DjETtrkATvHh9Dvcbnr7zBCUwfau8Sw7DLWT",
|
||||||
"storefront": {
|
"storefront": {
|
||||||
"popular": [
|
"popular": [
|
||||||
@@ -5485,10 +5546,10 @@
|
|||||||
"id": "archipelago-source",
|
"id": "archipelago-source",
|
||||||
"installLabel": "Install GitWorkshop",
|
"installLabel": "Install GitWorkshop",
|
||||||
"launchLabel": "Open GitWorkshop",
|
"launchLabel": "Open GitWorkshop",
|
||||||
"path": "/npub1w3sqdkrhn0gyuvsex32effzgnfpyde6qrrc4u467flg5e9txh4wsfn5vjg/archy",
|
"path": "/npub1w3sqdkrhn0gyuvsex32effzgnfpyde6qrrc4u467flg5e9txh4wsfn5vjg/relay.ngit.dev/archy",
|
||||||
"tag": "NGIT // NOSTR // NO SILO"
|
"tag": "NGIT // NOSTR // NO SILO"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"updated": "2026-09-15"
|
"updated": "2026-09-29"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"changelog": [
|
||||||
|
"Fixed Cashu file payments rejected despite a shared mint, and preserved the payment amount when mint fees reduce change.",
|
||||||
|
"Payment failures now report whether a refund actually succeeded; missing files and unsupported payment methods are rejected before charging.",
|
||||||
|
"Improved saving paid files into Files and reopening purchases without paying again.",
|
||||||
|
"Bitcoin Core and Knots installation offers optional pruning on larger disks, using the same settings as automatic pruning.",
|
||||||
|
"Fixed false missing-port checks that unnecessarily restarted Bitcoin and LND; recovery now respects managed shutdown timeouts.",
|
||||||
|
"LND explains when it is waiting for Bitcoin installation, startup, or sync, without treating normal synchronization as a restart-worthy failure.",
|
||||||
|
"Bitcoin startup messages explain block-index loading without exposing raw RPC errors, and Lightning keeps known balances clearly marked during outages.",
|
||||||
|
"Changed the public transaction-explorer default to mempool.space while preserving local explorers and custom choices."
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"current_version": "1.8.20-alpha",
|
||||||
|
"download_url": "https://source.archipelago-foundation.org/lfg2025/archy/releases/download/v1.8.20-alpha/archipelago",
|
||||||
|
"name": "archipelago",
|
||||||
|
"new_version": "1.8.20-alpha",
|
||||||
|
"sha256": "16a173129672cbb40c250446ec52ba4a9bd1974cbb3a4988f90c6f3187b7a1f7",
|
||||||
|
"size_bytes": 64716656
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"current_version": "1.8.20-alpha",
|
||||||
|
"download_url": "https://source.archipelago-foundation.org/lfg2025/archy/releases/download/v1.8.20-alpha/archipelago-frontend-1.8.20-alpha.tar.gz",
|
||||||
|
"name": "archipelago-frontend-1.8.20-alpha.tar.gz",
|
||||||
|
"new_version": "1.8.20-alpha",
|
||||||
|
"sha256": "658b78fce0dfa20a627c987dd153b24cbac15adbde905cc6518744c637e12802",
|
||||||
|
"size_bytes": 97152297
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"release_date": "2026-09-29",
|
||||||
|
"signature": "326cab454902abcb4f8037751af67aaae2860ecf00300177ec377a1f223a6a85b6e92d49297e7bc29a73220d501e6f4c83ee23477e2b688e33e19d093c6d210b",
|
||||||
|
"signed_by": "did:key:z6Mkfu5LT8d4DjETtrkATvHh9Dvcbnr7zBCUwfau8Sw7DLWT",
|
||||||
|
"version": "1.8.20-alpha"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user