fix(daemon): Ensure TSPM runtime dir exists and improve daemon startup/debug output
This commit is contained in:
		@@ -1,5 +1,13 @@
 | 
			
		||||
# Changelog
 | 
			
		||||
 | 
			
		||||
## 2025-08-28 - 3.0.2 - fix(daemon)
 | 
			
		||||
Ensure TSPM runtime dir exists and improve daemon startup/debug output
 | 
			
		||||
 | 
			
		||||
- Create ~/.tspm directory before starting the daemon to avoid missing-directory errors
 | 
			
		||||
- Start daemon child process with stdio inherited when TSPM_DEBUG=true to surface startup errors during debugging
 | 
			
		||||
- Add warning and troubleshooting guidance when daemon process starts but does not respond (suggest checking socket file and using TSPM_DEBUG)
 | 
			
		||||
- Bump package version to 3.0.1
 | 
			
		||||
 | 
			
		||||
## 2025-08-28 - 3.0.0 - BREAKING CHANGE(daemon)
 | 
			
		||||
Refactor daemon and service management: remove IPC auto-spawn, add TspmServiceManager, tighten IPC/client/CLI behavior and tests
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@git.zone/tspm",
 | 
			
		||||
  "version": "3.0.0",
 | 
			
		||||
  "version": "3.0.1",
 | 
			
		||||
  "private": false,
 | 
			
		||||
  "description": "a no fuzz process manager",
 | 
			
		||||
  "main": "dist_ts/index.js",
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,6 @@
 | 
			
		||||
 */
 | 
			
		||||
export const commitinfo = {
 | 
			
		||||
  name: '@git.zone/tspm',
 | 
			
		||||
  version: '3.0.0',
 | 
			
		||||
  version: '3.0.2',
 | 
			
		||||
  description: 'a no fuzz process manager'
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -34,6 +34,10 @@ export class TspmDaemon {
 | 
			
		||||
  public async start(): Promise<void> {
 | 
			
		||||
    console.log('Starting TSPM daemon...');
 | 
			
		||||
 | 
			
		||||
    // Ensure the TSPM directory exists
 | 
			
		||||
    const fs = await import('fs/promises');
 | 
			
		||||
    await fs.mkdir(paths.tspmDir, { recursive: true });
 | 
			
		||||
 | 
			
		||||
    // Check if another daemon is already running
 | 
			
		||||
    if (await this.isDaemonRunning()) {
 | 
			
		||||
      throw new Error('Another TSPM daemon instance is already running');
 | 
			
		||||
 
 | 
			
		||||
@@ -37,9 +37,10 @@ export function registerDaemonCommand(smartcli: plugins.smartcli.Smartcli) {
 | 
			
		||||
            );
 | 
			
		||||
 | 
			
		||||
            // Start daemon as a detached background process
 | 
			
		||||
            // Use 'inherit' for stdio to see any startup errors when debugging
 | 
			
		||||
            const daemonProcess = spawn(process.execPath, [daemonScript], {
 | 
			
		||||
              detached: true,
 | 
			
		||||
              stdio: 'ignore',
 | 
			
		||||
              stdio: process.env.TSPM_DEBUG === 'true' ? 'inherit' : 'ignore',
 | 
			
		||||
              env: {
 | 
			
		||||
                ...process.env,
 | 
			
		||||
                TSPM_DAEMON_MODE: 'true',
 | 
			
		||||
@@ -62,6 +63,13 @@ export function registerDaemonCommand(smartcli: plugins.smartcli.Smartcli) {
 | 
			
		||||
                '\nNote: This daemon will run until you stop it or logout.',
 | 
			
		||||
              );
 | 
			
		||||
              console.log('For automatic startup, use "tspm enable" instead.');
 | 
			
		||||
            } else {
 | 
			
		||||
              console.warn('\n⚠️  Warning: Daemon process started but is not responding.');
 | 
			
		||||
              console.log('The daemon may have crashed on startup.');
 | 
			
		||||
              console.log('\nTo debug, try:');
 | 
			
		||||
              console.log('  TSPM_DEBUG=true tspm daemon start');
 | 
			
		||||
              console.log('\nOr check if the socket file exists:');
 | 
			
		||||
              console.log(`  ls -la ~/.tspm/tspm.sock`);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Disconnect from the daemon after starting
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user