lsh-framework 3.1.21 → 3.1.22

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.
@@ -5,7 +5,7 @@
5
5
  import * as fs from 'fs';
6
6
  import * as path from 'path';
7
7
  import * as os from 'os';
8
- import { exec } from 'child_process';
8
+ import { exec, spawn } from 'child_process';
9
9
  import { promisify } from 'util';
10
10
  import { createLogger } from './logger.js';
11
11
  import { getPlatformInfo } from './platform-utils.js';
@@ -183,10 +183,15 @@ export class IPFSClientManager {
183
183
  const ipfsRepoPath = path.join(this.ipfsDir, 'repo');
184
184
  const ipfsCmd = clientInfo.path || 'ipfs';
185
185
  try {
186
- // Start daemon in background
187
- const daemon = exec(`${ipfsCmd} daemon`, {
186
+ // Start daemon as fully detached background process
187
+ // Using spawn with detached:true and stdio:'ignore' allows parent to exit
188
+ const daemon = spawn(ipfsCmd, ['daemon'], {
188
189
  env: { ...process.env, IPFS_PATH: ipfsRepoPath },
190
+ detached: true,
191
+ stdio: 'ignore',
189
192
  });
193
+ // Unref the child so parent process can exit independently
194
+ daemon.unref();
190
195
  // Log PID for management
191
196
  const pidPath = path.join(this.ipfsDir, 'daemon.pid');
192
197
  if (daemon.pid) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lsh-framework",
3
- "version": "3.1.21",
3
+ "version": "3.1.22",
4
4
  "description": "Simple, cross-platform encrypted secrets manager with automatic sync, IPFS audit logs, and multi-environment support. Just run lsh sync and start managing your secrets.",
5
5
  "main": "dist/app.js",
6
6
  "bin": {