@holochain/hc-spin 0.600.1-rc.0 → 0.600.3-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.envrc ADDED
@@ -0,0 +1 @@
1
+ use flake
package/CHANGELOG.md CHANGED
@@ -4,10 +4,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
5
  ## \[Unreleased\]
6
6
 
7
- ### Added
8
- ### Fixed
7
+ ## 2026-02-13: v0.600.3-rc.0
8
+
9
9
  ### Changed
10
+ - Holochain is now run with the iroh transport. The argument `--signaling-url` has been replaced with `--relay-url`.
10
11
  ### Removed
12
+ - Removed CLI option `--transport` as holochain is run with `quic` iroh transport.
13
+
14
+ ## 2026-01-22: v0.600.2-rc.0
15
+
16
+ ### Changed
17
+ - Added a CLI option `--transport` to choose between `quic` and `webrtc`. `quic` is used in combination with the iroh transport in Holochain, `webrtc` with tx5. The default transport in Holochain is iroh, so the default for hc-spin is `quic`. If no transport option is passed in on the command line, `quic` is used.
11
18
 
12
19
  ## 2026-01-22: v0.600.1-rc.0
13
20
 
package/README.md CHANGED
@@ -50,7 +50,7 @@ Options:
50
50
  --network-seed <string> Install the app with a specific network seed.
51
51
  --ui-path <path> Path to the folder containing the index.html of the webhapp's UI.
52
52
  --ui-port <number> Port pointing to a localhost dev server that serves your UI assets.
53
- --signaling-url <url> Url of the signaling server to use. By default, hc spin spins up a local development signaling server for you
53
+ --relay-url <url> Url of the relay server to use. By default, hc spin spins up a local development relay server for you
54
54
  but this argument allows you to specify a custom one.
55
55
  --open-devtools Automatically open the devtools on startup.
56
56
  -h, --help display help for command
@@ -12439,7 +12439,7 @@ function validateCliArgs(cliArgs, cliOpts, appDataRootDir) {
12439
12439
  networkSeed: cliOpts.networkSeed,
12440
12440
  targetArcFactor: cliOpts.targetArcFactor,
12441
12441
  uiSource: cliOpts.uiPath ? { type: "path", path: cliOpts.uiPath } : cliOpts.uiPort ? { type: "port", port: cliOpts.uiPort } : { type: "path", path: path.join(appDataRootDir, "apps", appId, "ui") },
12442
- singalingUrl: cliOpts.signalingUrl,
12442
+ relayUrl: cliOpts.relayUrl,
12443
12443
  bootstrapUrl: cliOpts.bootstrapUrl,
12444
12444
  happOrWebhappPath: isHapp ? { type: "happ", path: happOrWebhappPath } : { type: "webhapp", path: happOrWebhappPath },
12445
12445
  openDevtools: cliOpts.openDevtools ? true : false
@@ -12563,7 +12563,7 @@ function setLinkOpenHandlers(browserWindow) {
12563
12563
  }
12564
12564
  const rustUtils = require("@holochain/hc-spin-rust-utils");
12565
12565
  const cli = new commander.Command();
12566
- cli.name("hc-spin").description("CLI to run Holochain apps during development.").version(`${"0.600.0"} (built for holochain ${"0.6.0"})`).argument(
12566
+ cli.name("hc-spin").description("CLI to run Holochain apps during development.").version(`${"0.600.2-rc.0"} (built for holochain ${"0.6.1-rc.0"})`).argument(
12567
12567
  "<path>",
12568
12568
  "Path to .webhapp or .happ file to launch. If a .happ file is passed, either a UI path must be specified via --ui-path or a port pointing to a localhost server via --ui-port"
12569
12569
  ).option(
@@ -12585,8 +12585,8 @@ cli.name("hc-spin").description("CLI to run Holochain apps during development.")
12585
12585
  "--ui-port <number>",
12586
12586
  "Port pointing to a localhost dev server that serves your UI assets."
12587
12587
  ).option(
12588
- "--signaling-url <url>",
12589
- "Url of the signaling server to use. By default, hc spin spins up a local development signaling server for you but this argument allows you to specify a custom one."
12588
+ "--relay-url <url>",
12589
+ "Url of the relay server to use. By default, hc spin spins up a local development relay server for you but this argument allows you to specify a custom one."
12590
12590
  ).option("--open-devtools", "Automatically open the devtools on startup.");
12591
12591
  cli.parse();
12592
12592
  const rl = require("readline").createInterface({
@@ -12664,29 +12664,29 @@ async function startLocalServices() {
12664
12664
  const localServicesHandle = childProcess__namespace.spawn("kitsune2-bootstrap-srv");
12665
12665
  return new Promise((resolve) => {
12666
12666
  let bootStrapUrl;
12667
- let signalUrl;
12667
+ let relayUrl;
12668
12668
  let bootstrapRunning = false;
12669
- let signalRunnig = false;
12669
+ let relayRunning = false;
12670
12670
  localServicesHandle.stdout.pipe(split()).on("data", async (line) => {
12671
12671
  console.log(`[hc-spin] | [kitsune2-bootstrap-srv]: ${line}`);
12672
12672
  if (line.includes("#kitsune2_bootstrap_srv#listening#")) {
12673
12673
  const hostAndPort = line.split("#kitsune2_bootstrap_srv#listening#")[1].split("#")[0];
12674
12674
  bootStrapUrl = `http://${hostAndPort}`;
12675
- signalUrl = `ws://${hostAndPort}`;
12675
+ relayUrl = `http://${hostAndPort}`;
12676
12676
  }
12677
12677
  if (line.includes("#kitsune2_bootstrap_srv#running#")) {
12678
12678
  bootstrapRunning = true;
12679
- signalRunnig = true;
12679
+ relayRunning = true;
12680
12680
  }
12681
- if (bootstrapRunning && signalRunnig && bootStrapUrl && signalUrl)
12682
- resolve([bootStrapUrl, signalUrl]);
12681
+ if (bootstrapRunning && relayRunning && bootStrapUrl && relayUrl)
12682
+ resolve([bootStrapUrl, relayUrl]);
12683
12683
  });
12684
12684
  localServicesHandle.stderr.pipe(split()).on("data", async (line) => {
12685
12685
  console.log(`[hc-spin] | [hc run-local-services] ERROR: ${line}`);
12686
12686
  });
12687
12687
  });
12688
12688
  }
12689
- async function spawnSandboxes(nAgents, happPath, bootStrapUrl, signalUrl, appId, networkSeed, targetArcFactor) {
12689
+ async function spawnSandboxes(nAgents, happPath, bootStrapUrl, relayUrl, appId, networkSeed, targetArcFactor) {
12690
12690
  const generateArgs = [
12691
12691
  "sandbox",
12692
12692
  "--piped",
@@ -12711,7 +12711,7 @@ async function spawnSandboxes(nAgents, happPath, bootStrapUrl, signalUrl, appId,
12711
12711
  if (targetArcFactor !== void 0) {
12712
12712
  generateArgs.push("--target-arc-factor", targetArcFactor.toString());
12713
12713
  }
12714
- generateArgs.push("--bootstrap", bootStrapUrl, "webrtc", signalUrl);
12714
+ generateArgs.push("--bootstrap", bootStrapUrl, "quic", relayUrl);
12715
12715
  let readyConductors = 0;
12716
12716
  const portsInfo = {};
12717
12717
  const sandboxPaths = [];
@@ -12755,12 +12755,12 @@ electron.app.whenReady().then(async () => {
12755
12755
  happTargetDir
12756
12756
  );
12757
12757
  }
12758
- const [bootstrapUrl, signalingUrl] = await startLocalServices();
12758
+ const [bootstrapUrl, relayUrl] = await startLocalServices();
12759
12759
  const [sandboxHandle, sandboxPaths, portsInfo] = await spawnSandboxes(
12760
12760
  CLI_OPTS.numAgents,
12761
12761
  happTargetDir ? happTargetDir : CLI_OPTS.happOrWebhappPath.path,
12762
12762
  CLI_OPTS.bootstrapUrl ? CLI_OPTS.bootstrapUrl : bootstrapUrl,
12763
- CLI_OPTS.singalingUrl ? CLI_OPTS.singalingUrl : signalingUrl,
12763
+ CLI_OPTS.relayUrl ? CLI_OPTS.relayUrl : relayUrl,
12764
12764
  CLI_OPTS.appId,
12765
12765
  CLI_OPTS.networkSeed,
12766
12766
  CLI_OPTS.targetArcFactor
package/flake.lock CHANGED
@@ -36,16 +36,16 @@
36
36
  "hc-scaffold": {
37
37
  "flake": false,
38
38
  "locked": {
39
- "lastModified": 1764163563,
40
- "narHash": "sha256-KigJ3h25yNJfeQunPm5QYFPtLSk6nU3IEEvZY8w01Vo=",
39
+ "lastModified": 1769104114,
40
+ "narHash": "sha256-Ebh8YW7J4VRAwhK9XQDf98nWAIvciddzdx7LbhZiwdI=",
41
41
  "owner": "holochain",
42
42
  "repo": "scaffolding",
43
- "rev": "87e997a7361d4aa7c1bb96261483ebba50223bd0",
43
+ "rev": "6749c80d54306e4c1ad5831ce2dbdbb9a283ee0c",
44
44
  "type": "github"
45
45
  },
46
46
  "original": {
47
47
  "owner": "holochain",
48
- "ref": "v0.600.1",
48
+ "ref": "v0.600.1-rc.0",
49
49
  "repo": "scaffolding",
50
50
  "type": "github"
51
51
  }
@@ -79,11 +79,11 @@
79
79
  "rust-overlay": "rust-overlay"
80
80
  },
81
81
  "locked": {
82
- "lastModified": 1769045727,
83
- "narHash": "sha256-sYGlDJ6pNt3n+Tu5F86Lsr8ki+TfGMRGeSrDz+MSv+w=",
82
+ "lastModified": 1769121828,
83
+ "narHash": "sha256-o1GUUg9FUADcTOU4gzDDtiuJo61PyrQHCn0e64HRJYU=",
84
84
  "owner": "holochain",
85
85
  "repo": "holonix",
86
- "rev": "7b46630e1bd47b25d1f6385d8e921435f453c1a7",
86
+ "rev": "3e2a4b96b177aaaa233fd744ba82bfe308e85635",
87
87
  "type": "github"
88
88
  },
89
89
  "original": {
@@ -96,16 +96,16 @@
96
96
  "kitsune2": {
97
97
  "flake": false,
98
98
  "locked": {
99
- "lastModified": 1767421208,
100
- "narHash": "sha256-hPIesp4R8/8sA+Qqw1ECgsgCOKlyX5coGR+7QDoavWw=",
99
+ "lastModified": 1768402558,
100
+ "narHash": "sha256-v7uEmcVGC6tDjrkEZHMJa9DdXnqXwwVxJx9GkZq9P/U=",
101
101
  "owner": "holochain",
102
102
  "repo": "kitsune2",
103
- "rev": "77471c1fb4b6f926609bf82152dc97e26457b4d9",
103
+ "rev": "2b809bcf0bff3d493cd5ba230677240432fff58a",
104
104
  "type": "github"
105
105
  },
106
106
  "original": {
107
107
  "owner": "holochain",
108
- "ref": "v0.4.0-dev.2",
108
+ "ref": "2b809bcf0bff3d493cd5ba230677240432fff58a",
109
109
  "repo": "kitsune2",
110
110
  "type": "github"
111
111
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@holochain/hc-spin",
3
- "version": "0.600.1-rc.0",
3
+ "version": "0.600.3-rc.0",
4
4
  "holochainVersion": "0.6.1-rc.0",
5
5
  "description": "CLI to run Holochain apps during development.",
6
6
  "author": "matthme",
package/src/main/index.ts CHANGED
@@ -63,8 +63,8 @@ cli
63
63
  'Port pointing to a localhost dev server that serves your UI assets.',
64
64
  )
65
65
  .option(
66
- '--signaling-url <url>',
67
- 'Url of the signaling server to use. By default, hc spin spins up a local development signaling server for you but this argument allows you to specify a custom one.',
66
+ '--relay-url <url>',
67
+ 'Url of the relay server to use. By default, hc spin spins up a local development relay server for you but this argument allows you to specify a custom one.',
68
68
  )
69
69
  .option('--open-devtools', 'Automatically open the devtools on startup.');
70
70
 
@@ -175,22 +175,22 @@ async function startLocalServices(): Promise<[string, string]> {
175
175
  const localServicesHandle = childProcess.spawn('kitsune2-bootstrap-srv');
176
176
  return new Promise((resolve) => {
177
177
  let bootStrapUrl;
178
- let signalUrl;
178
+ let relayUrl;
179
179
  let bootstrapRunning = false;
180
- let signalRunnig = false;
180
+ let relayRunning = false;
181
181
  localServicesHandle.stdout.pipe(split()).on('data', async (line: string) => {
182
182
  console.log(`[hc-spin] | [kitsune2-bootstrap-srv]: ${line}`);
183
183
  if (line.includes('#kitsune2_bootstrap_srv#listening#')) {
184
184
  const hostAndPort = line.split('#kitsune2_bootstrap_srv#listening#')[1].split('#')[0];
185
185
  bootStrapUrl = `http://${hostAndPort}`;
186
- signalUrl = `ws://${hostAndPort}`;
186
+ relayUrl = `http://${hostAndPort}`;
187
187
  }
188
188
  if (line.includes('#kitsune2_bootstrap_srv#running#')) {
189
189
  bootstrapRunning = true;
190
- signalRunnig = true;
190
+ relayRunning = true;
191
191
  }
192
- if (bootstrapRunning && signalRunnig && bootStrapUrl && signalUrl)
193
- resolve([bootStrapUrl, signalUrl]);
192
+ if (bootstrapRunning && relayRunning && bootStrapUrl && relayUrl)
193
+ resolve([bootStrapUrl, relayUrl]);
194
194
  });
195
195
  localServicesHandle.stderr.pipe(split()).on('data', async (line: string) => {
196
196
  console.log(`[hc-spin] | [hc run-local-services] ERROR: ${line}`);
@@ -207,7 +207,7 @@ async function spawnSandboxes(
207
207
  nAgents: number,
208
208
  happPath: string,
209
209
  bootStrapUrl: string,
210
- signalUrl: string,
210
+ relayUrl: string,
211
211
  appId: string,
212
212
  networkSeed?: string,
213
213
  targetArcFactor?: number,
@@ -239,8 +239,7 @@ async function spawnSandboxes(
239
239
  if (targetArcFactor !== undefined) {
240
240
  generateArgs.push('--target-arc-factor', targetArcFactor.toString());
241
241
  }
242
- generateArgs.push('--bootstrap', bootStrapUrl, 'webrtc', signalUrl);
243
- // console.log('GENERATE ARGS: ', generateArgs);
242
+ generateArgs.push('--bootstrap', bootStrapUrl, 'quic', relayUrl);
244
243
 
245
244
  let readyConductors = 0;
246
245
  const portsInfo: Record<number, PortsInfo> = {};
@@ -302,13 +301,13 @@ app.whenReady().then(async () => {
302
301
  );
303
302
  }
304
303
 
305
- const [bootstrapUrl, signalingUrl] = await startLocalServices();
304
+ const [bootstrapUrl, relayUrl] = await startLocalServices();
306
305
 
307
306
  const [sandboxHandle, sandboxPaths, portsInfo] = await spawnSandboxes(
308
307
  CLI_OPTS.numAgents,
309
308
  happTargetDir ? happTargetDir : CLI_OPTS.happOrWebhappPath.path,
310
309
  CLI_OPTS.bootstrapUrl ? CLI_OPTS.bootstrapUrl : bootstrapUrl,
311
- CLI_OPTS.singalingUrl ? CLI_OPTS.singalingUrl : signalingUrl,
310
+ CLI_OPTS.relayUrl ? CLI_OPTS.relayUrl : relayUrl,
312
311
  CLI_OPTS.appId,
313
312
  CLI_OPTS.networkSeed,
314
313
  CLI_OPTS.targetArcFactor,
@@ -11,7 +11,7 @@ export type CliOpts = {
11
11
  targetArcFactor?: number;
12
12
  uiPath?: string;
13
13
  uiPort?: number;
14
- signalingUrl?: string;
14
+ relayUrl?: string;
15
15
  bootstrapUrl?: string;
16
16
  openDevtools?: boolean;
17
17
  };
@@ -23,7 +23,7 @@ export type CliOptsValidated = {
23
23
  networkSeed: string | undefined;
24
24
  targetArcFactor: number | undefined;
25
25
  uiSource: UISource;
26
- singalingUrl: string | undefined;
26
+ relayUrl: string | undefined;
27
27
  bootstrapUrl: string | undefined;
28
28
  happOrWebhappPath: HappOrWebhappPath;
29
29
  openDevtools: boolean;
@@ -98,7 +98,7 @@ export function validateCliArgs(
98
98
  : cliOpts.uiPort
99
99
  ? { type: 'port', port: cliOpts.uiPort }
100
100
  : { type: 'path', path: path.join(appDataRootDir, 'apps', appId, 'ui') },
101
- singalingUrl: cliOpts.signalingUrl,
101
+ relayUrl: cliOpts.relayUrl,
102
102
  bootstrapUrl: cliOpts.bootstrapUrl,
103
103
  happOrWebhappPath: isHapp
104
104
  ? { type: 'happ', path: happOrWebhappPath }