@pixelbyte-software/pixcode 1.40.1 → 1.40.3

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.
@@ -20,6 +20,149 @@ function buildUrls(req, session) {
20
20
  preferred: external || local,
21
21
  };
22
22
  }
23
+ function escapeHtml(value) {
24
+ return String(value ?? '')
25
+ .replaceAll('&', '&')
26
+ .replaceAll('<', '&lt;')
27
+ .replaceAll('>', '&gt;')
28
+ .replaceAll('"', '&quot;')
29
+ .replaceAll("'", '&#39;');
30
+ }
31
+ function latestErrorFromLogs(logs) {
32
+ return [...logs].reverse().find((line) => /error|enoent|eaddrinuse|failed|fatal|exception/i.test(line)) || null;
33
+ }
34
+ function buildLiveViewSuggestions(session, reason) {
35
+ const framework = String(session?.framework || session?.label || '').toLowerCase();
36
+ const status = String(session?.status || '').toLowerCase();
37
+ const suggestions = [];
38
+ if (framework.includes('php')) {
39
+ suggestions.push('Run `php --version` in the same machine and make sure the PHP executable is available in PATH.');
40
+ suggestions.push('If PHP is installed outside PATH, use Live View custom command with the full php executable path.');
41
+ suggestions.push('Check that the project has an index.php or a valid PHP router file in the selected project root.');
42
+ }
43
+ else if (framework.includes('javascript')
44
+ || framework.includes('vite')
45
+ || framework.includes('next')
46
+ || framework.includes('nuxt')
47
+ || framework.includes('astro')
48
+ || framework.includes('react')
49
+ || framework.includes('node')) {
50
+ suggestions.push('Run the project command in a terminal first and confirm it opens a local HTTP port.');
51
+ suggestions.push('Install project dependencies if node_modules is missing, then retry Live View.');
52
+ suggestions.push('If the dev server ignores PORT, set a custom command that binds to 127.0.0.1 and the chosen port.');
53
+ }
54
+ else {
55
+ suggestions.push('Run the displayed command in a terminal and fix the first process error shown there.');
56
+ suggestions.push('Use a custom command if Pixcode detected the wrong runner for this project.');
57
+ }
58
+ if (status === 'starting' || reason === 'upstream_not_ready') {
59
+ suggestions.push('Wait for the app to finish booting, then press Refresh or Restart if the port never opens.');
60
+ }
61
+ if (reason === 'proxy_failed') {
62
+ suggestions.push('The Live View session exists, but Pixcode could not reach the local upstream URL.');
63
+ }
64
+ return suggestions;
65
+ }
66
+ export function buildLiveViewUnavailablePayload(session, options = {}) {
67
+ const logs = Array.isArray(session?.log) ? session.log.slice(-40) : [];
68
+ const errorDetail = options.errorMessage || session?.error || latestErrorFromLogs(logs);
69
+ const label = session?.label || session?.framework || 'Live View';
70
+ const status = session?.status || 'missing';
71
+ return {
72
+ error: 'Live View session is not available.',
73
+ message: `${label} is ${status}.`,
74
+ reason: options.reason || status,
75
+ status,
76
+ framework: session?.framework || null,
77
+ label,
78
+ projectName: session?.projectName || null,
79
+ shareId: session?.shareId || options.shareId || null,
80
+ sharePath: session?.sharePath || null,
81
+ upstreamUrl: session?.upstreamUrl || null,
82
+ port: session?.port || null,
83
+ errorDetail,
84
+ diagnostics: {
85
+ command: session?.command?.displayCommand || null,
86
+ upstreamUrl: session?.upstreamUrl || null,
87
+ port: session?.port || null,
88
+ startedAt: session?.startedAt || null,
89
+ stoppedAt: session?.stoppedAt || null,
90
+ exitCode: session?.exitCode ?? null,
91
+ exitSignal: session?.exitSignal ?? null,
92
+ logs,
93
+ },
94
+ suggestions: buildLiveViewSuggestions(session, options.reason),
95
+ };
96
+ }
97
+ export function renderLiveViewDiagnosticHtml(payload) {
98
+ const suggestions = payload.suggestions?.length
99
+ ? payload.suggestions.map((item) => `<li>${escapeHtml(item)}</li>`).join('')
100
+ : '<li>Open the Live View panel, check the latest logs, and restart the session.</li>';
101
+ const logs = payload.diagnostics?.logs?.length
102
+ ? payload.diagnostics.logs.map((line) => escapeHtml(line)).join('\n')
103
+ : 'No process logs were captured yet.';
104
+ return `<!doctype html>
105
+ <html lang="en">
106
+ <head>
107
+ <meta charset="utf-8">
108
+ <meta name="viewport" content="width=device-width, initial-scale=1">
109
+ <title>Pixcode Live View diagnostics</title>
110
+ <style>
111
+ :root { color-scheme: light dark; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
112
+ body { margin: 0; min-height: 100vh; background: #0b0f14; color: #e5edf5; }
113
+ main { box-sizing: border-box; max-width: 980px; margin: 0 auto; padding: 32px 20px; }
114
+ .eyebrow { color: #f97316; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
115
+ h1 { margin: 8px 0 10px; font-size: clamp(26px, 5vw, 44px); line-height: 1.05; }
116
+ p { color: #a8b3c2; line-height: 1.6; }
117
+ section { margin-top: 18px; border: 1px solid rgba(148, 163, 184, .24); border-radius: 12px; background: rgba(15, 23, 42, .72); padding: 16px; }
118
+ dl { display: grid; grid-template-columns: minmax(110px, 180px) minmax(0, 1fr); gap: 10px 14px; margin: 0; }
119
+ dt { color: #94a3b8; font-size: 12px; text-transform: uppercase; }
120
+ dd { margin: 0; overflow-wrap: anywhere; }
121
+ pre { margin: 0; max-height: 280px; overflow: auto; white-space: pre-wrap; color: #dbeafe; background: #020617; border-radius: 10px; padding: 14px; }
122
+ code { color: #bfdbfe; }
123
+ li { margin: 8px 0; color: #d0d8e4; }
124
+ </style>
125
+ </head>
126
+ <body>
127
+ <main>
128
+ <div class="eyebrow">Pixcode Live View</div>
129
+ <h1>${escapeHtml(payload.message)}</h1>
130
+ <p>${escapeHtml(payload.errorDetail || 'The preview link is active, but the local runner is not ready.')}</p>
131
+ <section>
132
+ <dl>
133
+ <dt>Status</dt><dd>${escapeHtml(payload.status)}</dd>
134
+ <dt>Framework</dt><dd>${escapeHtml(payload.framework || 'Unknown')}</dd>
135
+ <dt>Command</dt><dd><code>${escapeHtml(payload.diagnostics?.command || 'No command captured')}</code></dd>
136
+ <dt>Upstream</dt><dd>${escapeHtml(payload.upstreamUrl || 'Not ready')}</dd>
137
+ <dt>Share ID</dt><dd>${escapeHtml(payload.shareId || 'Unknown')}</dd>
138
+ </dl>
139
+ </section>
140
+ <section>
141
+ <h2>What to check</h2>
142
+ <ul>${suggestions}</ul>
143
+ </section>
144
+ <section>
145
+ <h2>Process logs</h2>
146
+ <pre>${logs}</pre>
147
+ </section>
148
+ </main>
149
+ </body>
150
+ </html>`;
151
+ }
152
+ function requestPrefersHtml(req) {
153
+ const accept = req.header('accept') || '';
154
+ return accept.includes('text/html') || (!accept.includes('application/json') && accept.includes('*/*'));
155
+ }
156
+ function sendLiveViewDiagnostic(req, res, session, statusCode, options = {}) {
157
+ const payload = buildLiveViewUnavailablePayload(session, options);
158
+ res.status(statusCode);
159
+ if (requestPrefersHtml(req)) {
160
+ res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
161
+ res.type('html').send(renderLiveViewDiagnosticHtml(payload));
162
+ return;
163
+ }
164
+ res.json(payload);
165
+ }
23
166
  async function resolveProjectPath(projectName) {
24
167
  const projectPath = await extractProjectDirectory(projectName);
25
168
  if (!projectPath || typeof projectPath !== 'string') {
@@ -123,7 +266,10 @@ async function sendStaticLiveView(req, res, session) {
123
266
  }
124
267
  async function proxyLiveView(req, res, session) {
125
268
  if (!session.upstreamUrl) {
126
- res.status(503).json({ error: 'Live View upstream is not ready yet.' });
269
+ sendLiveViewDiagnostic(req, res, session, 503, {
270
+ reason: 'upstream_not_ready',
271
+ errorMessage: 'Live View upstream is not ready yet.',
272
+ });
127
273
  return;
128
274
  }
129
275
  const targetUrl = new URL(req.url || '/', session.upstreamUrl);
@@ -147,15 +293,38 @@ async function proxyLiveView(req, res, session) {
147
293
  res.send(Buffer.from(await upstream.arrayBuffer()));
148
294
  }
149
295
  catch (error) {
150
- res.status(502).json({ error: error.message || 'Live View proxy failed' });
296
+ sendLiveViewDiagnostic(req, res, session, 502, {
297
+ reason: 'proxy_failed',
298
+ errorMessage: error.message || 'Live View proxy failed',
299
+ });
151
300
  }
152
301
  }
153
302
  export function createLiveViewPublicRouter() {
154
303
  const publicRouter = express.Router();
155
304
  publicRouter.use('/:shareId', async (req, res) => {
156
305
  const session = getLiveViewSessionByShareId(req.params.shareId);
157
- if (!session || session.status === 'stopped' || session.status === 'error') {
158
- res.status(404).json({ error: 'Live View session not found.' });
306
+ if (!session) {
307
+ sendLiveViewDiagnostic(req, res, {
308
+ shareId: req.params.shareId,
309
+ status: 'missing',
310
+ label: 'Live View session',
311
+ log: [],
312
+ }, 404, {
313
+ reason: 'missing_session',
314
+ errorMessage: 'This preview link does not match an active Live View session on this Pixcode server.',
315
+ });
316
+ return;
317
+ }
318
+ if (session.status === 'error') {
319
+ sendLiveViewDiagnostic(req, res, session, 502, { reason: 'session_error' });
320
+ return;
321
+ }
322
+ if (session.status === 'stopped') {
323
+ sendLiveViewDiagnostic(req, res, session, 410, { reason: 'session_stopped' });
324
+ return;
325
+ }
326
+ if (session.status === 'starting') {
327
+ sendLiveViewDiagnostic(req, res, session, 202, { reason: 'upstream_not_ready' });
159
328
  return;
160
329
  }
161
330
  if (session.kind === 'static') {
@@ -1 +1 @@
1
- {"version":3,"file":"live-view.js","sourceRoot":"","sources":["../../../server/routes/live-view.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-view.js","sourceRoot":"","sources":["../../../server/routes/live-view.js"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ const sessionsByProject = new Map();
7
7
  const sessionsByShareId = new Map();
8
8
  const READY_TIMEOUT_MS = 12000;
9
9
  const LOG_LIMIT = 200;
10
+ const RUNTIME_CHECK_TIMEOUT_MS = 1800;
10
11
  const localUrlRegex = /https?:\/\/(?:localhost|127\.0\.0\.1|0\.0\.0\.0|\[[^\]]+\])(?::(\d+))?[^\s"'<>]*/i;
11
12
  function normalizeHost(host) {
12
13
  if (!host || host === '0.0.0.0' || host === '::')
@@ -76,6 +77,81 @@ function packageRunArgs(packageManager, scriptName, extraArgs = []) {
76
77
  function buildDisplayCommand(command, args) {
77
78
  return [command, ...args].join(' ');
78
79
  }
80
+ function quoteForPosixShell(value) {
81
+ return `'${String(value).replaceAll("'", "'\\''")}'`;
82
+ }
83
+ function quoteForWindowsShell(value) {
84
+ return `"${String(value).replaceAll('"', '""')}"`;
85
+ }
86
+ function isPathLikeCommand(command) {
87
+ return path.isAbsolute(command) || command.includes('/') || command.includes('\\');
88
+ }
89
+ function runtimeMissingReason(command, framework) {
90
+ const base = `${command} executable was not found in PATH.`;
91
+ if (framework === 'PHP' || command === 'php') {
92
+ return `${base} Install PHP and add php.exe to PATH, or use a custom command with the full PHP executable path.`;
93
+ }
94
+ if (command === 'npm' || command === 'pnpm' || command === 'yarn' || command === 'bun') {
95
+ return `${base} Install Node.js/package manager support or use a custom command with the full executable path.`;
96
+ }
97
+ if (command === 'python' || command === 'python3') {
98
+ return `${base} Install Python and add it to PATH, or use a custom command with the full Python executable path.`;
99
+ }
100
+ return `${base} Install ${framework || command} or use a custom command with the full executable path.`;
101
+ }
102
+ async function checkCommandAvailability(command, env = process.env) {
103
+ if (!command || command.includes('\n') || command.includes('\r'))
104
+ return true;
105
+ if (isPathLikeCommand(command)) {
106
+ try {
107
+ await fs.access(command);
108
+ return true;
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ }
114
+ const checker = process.platform === 'win32'
115
+ ? {
116
+ command: process.env.ComSpec || 'cmd.exe',
117
+ args: ['/d', '/s', '/c', `where ${quoteForWindowsShell(command)}`],
118
+ }
119
+ : {
120
+ command: '/bin/sh',
121
+ args: ['-lc', `command -v ${quoteForPosixShell(command)}`],
122
+ };
123
+ return new Promise((resolve) => {
124
+ let settled = false;
125
+ let child = null;
126
+ const finish = (available) => {
127
+ if (settled)
128
+ return;
129
+ settled = true;
130
+ clearTimeout(timer);
131
+ resolve(available);
132
+ };
133
+ const timer = setTimeout(() => {
134
+ try {
135
+ child?.kill();
136
+ }
137
+ catch {
138
+ // Ignore a raced process exit.
139
+ }
140
+ finish(true);
141
+ }, RUNTIME_CHECK_TIMEOUT_MS);
142
+ child = spawn(checker.command, checker.args, {
143
+ env,
144
+ stdio: 'ignore',
145
+ windowsHide: true,
146
+ });
147
+ child.on('error', (error) => {
148
+ finish(error?.code === 'ENOENT' ? false : true);
149
+ });
150
+ child.on('exit', (code) => {
151
+ finish(code === 0);
152
+ });
153
+ });
154
+ }
79
155
  function buildPackageCommand(packageManager, scriptName, id, label, framework, extraArgs = []) {
80
156
  const args = packageRunArgs(packageManager, scriptName, extraArgs);
81
157
  return {
@@ -259,7 +335,7 @@ async function detectProcessCommand(projectPath) {
259
335
  }
260
336
  return null;
261
337
  }
262
- export async function detectLiveViewTarget(projectPath) {
338
+ export async function detectLiveViewTarget(projectPath, options = {}) {
263
339
  if (!projectPath || !(await dirExists(projectPath))) {
264
340
  return {
265
341
  available: false,
@@ -269,6 +345,18 @@ export async function detectLiveViewTarget(projectPath) {
269
345
  }
270
346
  const processCommand = await detectProcessCommand(projectPath);
271
347
  if (processCommand) {
348
+ const runtimeAvailable = await checkCommandAvailability(processCommand.command, options.env || process.env);
349
+ if (!runtimeAvailable) {
350
+ return {
351
+ available: false,
352
+ kind: 'process',
353
+ label: processCommand.label,
354
+ framework: processCommand.framework,
355
+ command: processCommand,
356
+ missingRuntime: processCommand.command,
357
+ reason: runtimeMissingReason(processCommand.command, processCommand.framework),
358
+ };
359
+ }
272
360
  return {
273
361
  available: true,
274
362
  kind: 'process',
@@ -361,6 +449,9 @@ function publicSession(session) {
361
449
  upstreamUrl: session.upstreamUrl,
362
450
  startedAt: session.startedAt,
363
451
  stoppedAt: session.stoppedAt,
452
+ exitCode: session.exitCode ?? null,
453
+ exitSignal: session.exitSignal ?? null,
454
+ spawnErrorCode: session.spawnErrorCode ?? null,
364
455
  error: session.error,
365
456
  log: session.log.slice(-40),
366
457
  };
@@ -418,6 +509,9 @@ export async function startLiveView(projectName, projectPath, options = {}) {
418
509
  upstreamUrl: null,
419
510
  startedAt: new Date().toISOString(),
420
511
  stoppedAt: null,
512
+ exitCode: null,
513
+ exitSignal: null,
514
+ spawnErrorCode: null,
421
515
  error: null,
422
516
  log: [`Serving static files from ${path.relative(projectPath, target.staticRoot) || '.'}`],
423
517
  };
@@ -441,6 +535,9 @@ export async function startLiveView(projectName, projectPath, options = {}) {
441
535
  upstreamUrl: `http://127.0.0.1:${port}`,
442
536
  startedAt: new Date().toISOString(),
443
537
  stoppedAt: null,
538
+ exitCode: null,
539
+ exitSignal: null,
540
+ spawnErrorCode: null,
444
541
  error: null,
445
542
  log: [`$ ${command.displayCommand}`],
446
543
  child: null,
@@ -472,11 +569,14 @@ export async function startLiveView(projectName, projectPath, options = {}) {
472
569
  child.on('error', (error) => {
473
570
  session.status = 'error';
474
571
  session.error = error.message;
572
+ session.spawnErrorCode = error.code || null;
475
573
  appendLog(session, `process error: ${error.message}`);
476
574
  });
477
575
  child.on('exit', (code, signal) => {
478
576
  session.status = code === 0 ? 'stopped' : 'error';
479
577
  session.stoppedAt = new Date().toISOString();
578
+ session.exitCode = code;
579
+ session.exitSignal = signal;
480
580
  session.error = code === 0 ? null : `Process exited with ${signal || `code ${code}`}`;
481
581
  appendLog(session, session.error || 'Process stopped.');
482
582
  });
@@ -1 +1 @@
1
- {"version":3,"file":"live-view.js","sourceRoot":"","sources":["../../../server/services/live-view.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-view.js","sourceRoot":"","sources":["../../../server/services/live-view.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelbyte-software/pixcode",
3
- "version": "1.40.1",
3
+ "version": "1.40.3",
4
4
  "description": "Self-hosted AI coding agent control room for Claude Code, Cursor CLI, OpenAI Codex, Gemini CLI, Qwen Code, and OpenCode with chat, files, shell, Git, orchestration, API keys, Telegram, MCP, plugins, themes, and desktop/server deployment.",
5
5
  "type": "module",
6
6
  "main": "dist-server/server/index.js",
@@ -0,0 +1,53 @@
1
+ import assert from 'node:assert/strict';
2
+
3
+ const {
4
+ buildLiveViewUnavailablePayload,
5
+ renderLiveViewDiagnosticHtml,
6
+ } = await import('../../server/routes/live-view.js');
7
+
8
+ const phpSession = {
9
+ projectName: 'php-demo',
10
+ shareId: '88461d5616c52f954ac9a74b',
11
+ sharePath: '/live/88461d5616c52f954ac9a74b/',
12
+ status: 'error',
13
+ kind: 'process',
14
+ framework: 'PHP',
15
+ label: 'PHP built-in server',
16
+ command: {
17
+ id: 'php-built-in',
18
+ label: 'PHP built-in server',
19
+ displayCommand: 'php -S 127.0.0.1:8123 -t .',
20
+ },
21
+ port: 8123,
22
+ upstreamUrl: 'http://127.0.0.1:8123',
23
+ error: 'process error: spawn php ENOENT',
24
+ log: [
25
+ '$ php -S 127.0.0.1:8123 -t .',
26
+ 'process error: spawn php ENOENT',
27
+ ],
28
+ };
29
+
30
+ const payload = buildLiveViewUnavailablePayload(phpSession, {
31
+ reason: 'session_error',
32
+ });
33
+
34
+ assert.equal(payload.error, 'Live View session is not available.');
35
+ assert.equal(payload.status, 'error');
36
+ assert.equal(payload.framework, 'PHP');
37
+ assert.match(payload.message, /PHP built-in server/i);
38
+ assert.match(payload.errorDetail, /spawn php ENOENT/);
39
+ assert.ok(payload.diagnostics.command.includes('php -S'), 'Payload should include the attempted PHP command.');
40
+ assert.ok(payload.diagnostics.logs.some((line) => line.includes('spawn php ENOENT')), 'Payload should include process logs.');
41
+ assert.ok(
42
+ payload.suggestions.some((suggestion) => /php/i.test(suggestion) && /PATH/i.test(suggestion)),
43
+ 'PHP failures should suggest checking the php executable in PATH.',
44
+ );
45
+ assert.notEqual(payload.error, 'Live View session not found.', 'Existing failed sessions must not be hidden as missing sessions.');
46
+
47
+ const html = renderLiveViewDiagnosticHtml(payload);
48
+ assert.match(html, /Live View/i);
49
+ assert.match(html, /PHP built-in server/i);
50
+ assert.match(html, /spawn php ENOENT/i);
51
+ assert.match(html, /php -S 127\.0\.0\.1:8123 -t \./i);
52
+
53
+ console.log('live view diagnostics smoke passed');
@@ -75,6 +75,18 @@ assert.ok(
75
75
  liveViewPanel.includes('viewportSize.width') && liveViewPanel.includes('viewportSize.height'),
76
76
  'Live View iframe should use the selected preview resolution.',
77
77
  );
78
+ assert.ok(
79
+ liveViewPanel.includes('sessionError') && liveViewPanel.includes('status.session.error'),
80
+ 'Live View panel should show the actual runner error instead of only an error badge.',
81
+ );
82
+ assert.ok(
83
+ liveViewPanel.includes('targetUnavailableReason') && liveViewPanel.includes('liveView.runnerUnavailable'),
84
+ 'Live View panel should show a clear unavailable-runner message before launching a missing runtime.',
85
+ );
86
+ assert.ok(
87
+ liveViewPanel.includes("runAction('restart')"),
88
+ 'Live View panel should expose a restart action for failed process runners.',
89
+ );
78
90
 
79
91
  const serverIndex = await read('server/index.js');
80
92
  assert.ok(
@@ -100,6 +112,7 @@ const workspace = await mkdtemp(path.join(tmpdir(), 'pixcode-live-view-smoke-'))
100
112
  const staticProject = path.join(workspace, 'static');
101
113
  const viteProject = path.join(workspace, 'vite');
102
114
  const djangoProject = path.join(workspace, 'django');
115
+ const phpProject = path.join(workspace, 'php');
103
116
  await writeFile(path.join(staticProject, 'index.html'), '<main>hello</main>', { recursive: true }).catch(async (error) => {
104
117
  if (error.code !== 'ENOENT') throw error;
105
118
  const { mkdir } = await import('node:fs/promises');
@@ -114,6 +127,8 @@ await writeFile(path.join(viteProject, 'package.json'), JSON.stringify({
114
127
  }, null, 2));
115
128
  await mkdir(djangoProject, { recursive: true });
116
129
  await writeFile(path.join(djangoProject, 'manage.py'), '#!/usr/bin/env python\n');
130
+ await mkdir(phpProject, { recursive: true });
131
+ await writeFile(path.join(phpProject, 'index.php'), '<?php echo "hello";');
117
132
 
118
133
  const staticTarget = await detectLiveViewTarget(staticProject);
119
134
  assert.equal(staticTarget.available, true, 'Static HTML projects should be available.');
@@ -127,6 +142,20 @@ const djangoTarget = await detectLiveViewTarget(djangoProject);
127
142
  assert.equal(djangoTarget.available, true, 'Django projects should be detected from manage.py.');
128
143
  assert.equal(djangoTarget.command?.id, 'python-django', 'Django projects should get a runserver command.');
129
144
 
145
+ const phpMissingRuntimeTarget = await detectLiveViewTarget(phpProject, {
146
+ env: {
147
+ ...process.env,
148
+ PATH: '',
149
+ },
150
+ });
151
+ assert.equal(phpMissingRuntimeTarget.available, false, 'PHP projects should not be marked runnable when php is missing from PATH.');
152
+ assert.equal(phpMissingRuntimeTarget.framework, 'PHP', 'Missing PHP runtime diagnostics should keep the detected framework.');
153
+ assert.match(
154
+ phpMissingRuntimeTarget.reason || '',
155
+ /php executable was not found/i,
156
+ 'Missing PHP runtime diagnostics should explain that php is not available.',
157
+ );
158
+
130
159
  const staticSession = await startLiveView('static-smoke', staticProject);
131
160
  assert.equal(staticSession.status, 'running', 'Static Live View should start without a child process.');
132
161
  assert.match(staticSession.sharePath, /^\/live\/[a-f0-9]{24}\/$/, 'Live View should expose a random public share path.');