0.3.0:1
Build Service / BuildPackage (push) Canceled after 0s

Group Actions and Config by category (Space-CLI, Bitcoin, Spaced,
Subspaces, Certrelay, Nacho) and build x86 + arm only.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-24 03:34:34 -04:00
co-authored by Cursor
parent 2b0224a678
commit 073344d4d1
30 changed files with 74 additions and 34 deletions
+1 -1
View File
@@ -1,3 +1,3 @@
ARCHES := x86
ARCHES := x86 arm
# overrides to s9pk.mk must precede the include statement
include node_modules/@start9labs/start-sdk/s9pk.mk
+14
View File
@@ -0,0 +1,14 @@
import { i18n } from './i18n'
/** Headers for the Actions and Config page (`ActionMetadata.group`). */
export const actionGroups = {
spaceCli: i18n('Space-CLI Web UI'),
bitcoin: i18n('Bitcoin'),
spaced: i18n('Spaced'),
subspaces: i18n('Subspaces'),
subspacesAuth: i18n('Subspaces Auth'),
subspacesProverAuth: i18n('Subspaces Prover Auth'),
subspacesRegistry: i18n('Subspaces Registry'),
certrelay: i18n('Certrelay'),
nacho: i18n('Nacho'),
}
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import {
@@ -61,7 +62,7 @@ export const configureCertrelay = sdk.Action.withInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.certrelay,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import {
@@ -90,7 +91,7 @@ export const configureNacho = sdk.Action.withInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.nacho,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { generateRegistryApiKeys } from '../utils'
@@ -15,7 +16,7 @@ export const createRegistryApiKeys = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesRegistry,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
@@ -16,7 +17,7 @@ export const disableSubsAuth = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesAuth,
visibility: enabled === true ? 'enabled' : 'hidden',
}
},
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
@@ -16,7 +17,7 @@ export const disableSubsProverAuth = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesProverAuth,
visibility: enabled === true ? 'enabled' : 'hidden',
}
},
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
@@ -16,7 +17,7 @@ export const disableSubspaces = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspaces,
visibility: current === true ? 'enabled' : 'hidden',
}
},
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { randomPassword } from '../utils'
@@ -19,7 +20,7 @@ export const enableSubsAuth = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesAuth,
visibility: enabled === true ? 'hidden' : 'enabled',
}
},
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { randomPassword } from '../utils'
@@ -19,7 +20,7 @@ export const enableSubsProverAuth = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesProverAuth,
visibility: enabled === true ? 'hidden' : 'enabled',
}
},
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
@@ -16,7 +17,7 @@ export const enableSubspaces = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspaces,
visibility: current === true ? 'hidden' : 'enabled',
}
},
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { dataDir, SPACED_CHAIN } from '../utils'
@@ -18,7 +19,7 @@ export const exportWallet = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'only-running',
group: null,
group: actionGroups.spaced,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { dataDir, SPACED_CHAIN } from '../utils'
@@ -37,7 +38,7 @@ export const importWallet = sdk.Action.withInput(
'Existing /data/mainnet/wallets_backup/default.json and /data/mainnet/wallets/default will be renamed with .bakNNN suffixes before the import. The active spaced daemon will load the imported wallet on success.',
),
allowedStatuses: 'only-running',
group: null,
group: actionGroups.spaced,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { APP_USER, randomPassword } from '../utils'
@@ -15,7 +16,7 @@ export const resetPassword = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.spaceCli,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,3 +1,4 @@
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { dataDir, SPACED_CHAIN } from '../utils'
@@ -16,7 +17,7 @@ export const resetSpacedState = sdk.Action.withoutInput(
"This deletes spaced's on-disk index. The next start will resync from spaces' anchor and can take a while. store.json (passwords + RPC credentials) is preserved.",
),
allowedStatuses: 'any',
group: null,
group: actionGroups.spaced,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,3 +1,4 @@
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { dataDir, SUBSPACES_DIR } from '../utils'
@@ -16,7 +17,7 @@ export const resetSubspacesState = sdk.Action.withoutInput(
'This deletes all local Subspaces state — any handles/proofs stored on disk will be lost. The binaries ship in the image, so nothing needs to be re-downloaded. The spaces wallet on spaced is preserved.',
),
allowedStatuses: 'any',
group: null,
group: actionGroups.subspaces,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import {
@@ -17,7 +18,7 @@ export const setBitcoinRpc = sdk.Action.withoutInput(
description: i18n('Re-run the bitcoind RPC credential setup for Spaces'),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.bitcoin,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { randomPassword } from '../utils'
@@ -50,7 +51,7 @@ export const setSubsCredentials = sdk.Action.withInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesAuth,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
@@ -28,7 +29,7 @@ export const setSubsProver = sdk.Action.withInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspaces,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { randomPassword } from '../utils'
@@ -50,7 +51,7 @@ export const setSubsProverCredentials = sdk.Action.withInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesProverAuth,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { APP_USER } from '../utils'
@@ -15,7 +16,7 @@ export const showCredentials = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.spaceCli,
visibility: 'hidden',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { APP_USER } from '../utils'
@@ -15,7 +16,7 @@ export const showPassword = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.spaceCli,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
@@ -14,7 +15,7 @@ export const showRegistryApiKeys = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesRegistry,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { spacedRpcPort } from '../utils'
@@ -15,7 +16,7 @@ export const showSpacedCredentials = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.spaced,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { SUBSPACES_UI_PORT } from '../utils'
@@ -15,7 +16,7 @@ export const showSubsCredentials = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesAuth,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { SUBSPACES_PROVER_PORT } from '../utils'
@@ -15,7 +16,7 @@ export const showSubsProverCredentials = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.subspacesProverAuth,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { storeJson } from '../fileModels/storeJson'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { dataDir, SPACED_CHAIN } from '../utils'
@@ -15,7 +16,7 @@ export const syncStatus = sdk.Action.withoutInput(
),
warning: null,
allowedStatuses: 'only-running',
group: null,
group: actionGroups.spaced,
visibility: 'enabled',
}),
+2 -1
View File
@@ -1,4 +1,5 @@
import { readFile } from 'fs/promises'
import { actionGroups } from '../actionGroups'
import { i18n } from '../i18n'
import { sdk } from '../sdk'
import { dataDir } from '../utils'
@@ -36,7 +37,7 @@ export const uploadSupportPdf = sdk.Action.withInput(
),
warning: null,
allowedStatuses: 'any',
group: null,
group: actionGroups.nacho,
visibility: 'enabled',
}),
+5
View File
@@ -308,6 +308,11 @@ const dict = {
223,
'Subspaces registry-server requires REGISTRY_API_KEY and SUBSD_API_KEY before it can start':
224,
Bitcoin: 225,
Spaced: 226,
Subspaces: 227,
'Subspaces Auth': 228,
'Subspaces Prover Auth': 229,
} as const
/**
+2 -7
View File
@@ -1,14 +1,9 @@
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
export const current = VersionInfo.of({
version: '0.3.0:0',
version: '0.3.0:1',
releaseNotes: {
en_US: `Update to upstream Spaces **0.3.0** (\`horologger/spaces:v0.3.0\`). Also bundles \`subs:v0.1.2c\`, \`certrelay:v0.2.8\`, and \`nacho:v1.0.0b\`.
**Wrapper**
- Add **Create Registry API Keys** / **Show Registry API Keys** for the embedded \`registry-server\` (\`REGISTRY_API_KEY\` + \`SUBSD_API_KEY\`; required and must differ)
- Remove **Configure Subspaces** and \`SUBS_PUBLISH_REQUIRE_FINALIZED\`
en_US: `Group actions on the Actions and Config page (Space-CLI Web UI, Bitcoin, Spaced, Subspaces, Certrelay, Nacho, etc.). Build \`x86\` + \`arm\` only (drop riscv from default \`ARCHES\`).
Requires StartOS 0.4.0-beta.10 (\`start-sdk\` 2.0.9).`,
},