@xortex/xcode 3.1.4 → 3.1.5

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/bin/xcode CHANGED
@@ -7,8 +7,7 @@
7
7
  * This launcher finds Bun and runs the app with it.
8
8
  */
9
9
 
10
- const { execSync } = require('child_process');
11
- const { spawn } = require('child_process');
10
+ const { execSync, spawnSync } = require('child_process');
12
11
  const path = require('path');
13
12
  const fs = require('fs');
14
13
  const os = require('os');
@@ -46,7 +45,7 @@ process.env.NODE_ENV = process.env.NODE_ENV || 'production';
46
45
  const args = process.argv.slice(2);
47
46
 
48
47
  if (args[0] === '--version' || args[0] === '-v' || args[0] === '-V') {
49
- console.log('xcode v3.1.4 — AI coding assistant with XMem memory');
48
+ console.log('xcode v3.1.5 — AI coding assistant with XMem memory');
50
49
  process.exit(0);
51
50
  }
52
51
 
@@ -100,15 +99,18 @@ if (!bun) {
100
99
  process.exit(1);
101
100
  }
102
101
 
103
- // Do NOT set cwd let the app use the user's current working directory
104
- // as the workspace. Only the script path needs to be absolute.
105
- const child = spawn(bun, ['run', mainScript, ...args], {
102
+ // Use spawnSync so Node.js fully blocks and hands terminal control to Bun.
103
+ // This is critical for Ink's alternate-screen UI to work correctly — async
104
+ // spawn keeps Node alive alongside Bun and interferes with terminal handling.
105
+ const result = spawnSync(bun, ['run', mainScript, ...args], {
106
106
  stdio: 'inherit',
107
107
  env: process.env,
108
108
  });
109
109
 
110
- child.on('exit', code => process.exit(code ?? 0));
111
- child.on('error', err => {
112
- console.error('\n❌ Failed to start XCode:', err.message);
110
+ if (result.error) {
111
+ console.error('\n❌ Failed to start XCode:', result.error.message);
112
+ console.error(' Bun path:', bun);
113
113
  process.exit(1);
114
- });
114
+ }
115
+
116
+ process.exit(result.status ?? 0);
@@ -39,7 +39,7 @@ async function main(): Promise<void> {
39
39
  if (args.length === 1 && (args[0] === '--version' || args[0] === '-v' || args[0] === '-V')) {
40
40
  // MACRO.VERSION is inlined at build time
41
41
  // biome-ignore lint/suspicious/noConsole:: intentional console output
42
- console.log(`xcode v3.1.4 — AI coding assistant with XMem memory`);
42
+ console.log(`xcode v3.1.5 — AI coding assistant with XMem memory`);
43
43
  return;
44
44
  }
45
45
 
package/macro.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  // Build-time macros - stubbed for development
2
2
 
3
3
  export const MACRO = {
4
- VERSION: '3.1.4',
4
+ VERSION: '3.1.5',
5
5
  VERSION_CHANGELOG: '',
6
6
  NATIVE_PACKAGE_URL: '@anthropic-ai/claude-code-native',
7
7
  CLI_BIN_PATH: './cli.tsx',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xortex/xcode",
3
- "version": "3.1.4",
3
+ "version": "3.1.5",
4
4
  "description": "XCode - AI-powered coding assistant with XMem long-term memory. Supports Claude, Gemini, Kimi, DeepSeek via OpenRouter.",
5
5
  "main": "main.tsx",
6
6
  "bin": {