@xortex/xcode 3.1.3 → 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.3 — 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,14 +99,18 @@ if (!bun) {
100
99
  process.exit(1);
101
100
  }
102
101
 
103
- const child = spawn(bun, ['run', mainScript, ...args], {
104
- cwd: projectRoot,
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], {
105
106
  stdio: 'inherit',
106
107
  env: process.env,
107
108
  });
108
109
 
109
- child.on('exit', code => process.exit(code ?? 0));
110
- child.on('error', err => {
111
- 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);
112
113
  process.exit(1);
113
- });
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.3 — 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.3',
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.3",
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": {