@pixelbyte-software/pixcode 1.31.0 → 1.31.1

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.
@@ -21,7 +21,11 @@ const STATIC_MODELS_BY_PROVIDER = {
21
21
  qwen: QWEN_MODELS.OPTIONS,
22
22
  };
23
23
  import { AppError, asyncHandler, createApiSuccessResponse } from '../../shared/utils.js';
24
+ import fs from 'node:fs/promises';
24
25
  import http from 'node:http';
26
+ import os from 'node:os';
27
+ import path from 'node:path';
28
+ import { MAX_CONFIG_FILE_SIZE_BYTES, PROVIDER_CONFIG_FILES, } from '../../modules/providers/shared/provider-configs.js';
25
29
  /**
26
30
  * npm-global install command per provider. Used by POST
27
31
  * /api/providers/:p/install to run the install directly from Pixcode so
@@ -464,5 +468,169 @@ router.post('/mcp/servers/global', asyncHandler(async (req, res) => {
464
468
  });
465
469
  res.status(201).json(createApiSuccessResponse({ results }));
466
470
  }));
471
+ // ============================================================================
472
+ // Provider config files — read / edit the per-CLI settings/env files from
473
+ // inside Pixcode rather than making the user open a text editor themselves.
474
+ // The registry at server/modules/providers/shared/provider-configs.ts is the
475
+ // single source of truth for which files exist; the client pulls this list
476
+ // via GET /config-files and then reads/writes individual files by id.
477
+ // ============================================================================
478
+ // Resolve a config descriptor from (provider, fileId). Throws a 404
479
+ // AppError if either isn't registered so the client sees a clear failure
480
+ // instead of a generic 500.
481
+ const resolveConfigFile = (provider, fileId) => {
482
+ const list = PROVIDER_CONFIG_FILES[provider];
483
+ if (!list) {
484
+ throw new AppError(`No config files registered for provider "${provider}"`, {
485
+ code: 'PROVIDER_CONFIG_UNKNOWN_PROVIDER',
486
+ statusCode: 404,
487
+ });
488
+ }
489
+ const descriptor = list.find((entry) => entry.id === fileId);
490
+ if (!descriptor) {
491
+ throw new AppError(`Unknown config file "${fileId}" for provider "${provider}"`, {
492
+ code: 'PROVIDER_CONFIG_UNKNOWN_FILE',
493
+ statusCode: 404,
494
+ });
495
+ }
496
+ // Always resolve relative to the server's os.homedir() — we never trust
497
+ // the client for any part of the path. `path.resolve` then normalises
498
+ // out any `..` segments the registry might accidentally contain.
499
+ const absolutePath = path.resolve(os.homedir(), descriptor.relativePath);
500
+ return { descriptor, absolutePath };
501
+ };
502
+ router.get('/:provider/config-files', asyncHandler(async (req, res) => {
503
+ const provider = String(req.params.provider);
504
+ const list = PROVIDER_CONFIG_FILES[provider];
505
+ if (!list) {
506
+ throw new AppError(`No config files registered for provider "${provider}"`, {
507
+ code: 'PROVIDER_CONFIG_UNKNOWN_PROVIDER',
508
+ statusCode: 404,
509
+ });
510
+ }
511
+ const files = await Promise.all(list.map(async (entry) => {
512
+ const absolutePath = path.resolve(os.homedir(), entry.relativePath);
513
+ let exists = false;
514
+ let size = null;
515
+ let updatedAt = null;
516
+ try {
517
+ const stat = await fs.stat(absolutePath);
518
+ exists = stat.isFile();
519
+ size = stat.size;
520
+ updatedAt = stat.mtime.toISOString();
521
+ }
522
+ catch (err) {
523
+ // ENOENT is the expected path for "user hasn't created this yet".
524
+ // Anything else (EACCES, EISDIR, …) we surface as a hint rather
525
+ // than blow up the whole list response.
526
+ if (err.code !== 'ENOENT') {
527
+ console.warn(`[provider-configs] stat ${absolutePath}:`, err.message);
528
+ }
529
+ }
530
+ return {
531
+ id: entry.id,
532
+ label: entry.label,
533
+ format: entry.format,
534
+ readonly: Boolean(entry.readonly),
535
+ description: entry.description ?? null,
536
+ relativePath: entry.relativePath,
537
+ absolutePath,
538
+ exists,
539
+ size,
540
+ updatedAt,
541
+ };
542
+ }));
543
+ res.json(createApiSuccessResponse({ provider, files }));
544
+ }));
545
+ router.get('/:provider/config-files/:fileId', asyncHandler(async (req, res) => {
546
+ const provider = String(req.params.provider);
547
+ const fileId = String(req.params.fileId);
548
+ const { descriptor, absolutePath } = resolveConfigFile(provider, fileId);
549
+ try {
550
+ const stat = await fs.stat(absolutePath);
551
+ if (!stat.isFile()) {
552
+ throw new AppError(`${absolutePath} is not a regular file`, {
553
+ code: 'PROVIDER_CONFIG_NOT_FILE',
554
+ statusCode: 409,
555
+ });
556
+ }
557
+ if (stat.size > MAX_CONFIG_FILE_SIZE_BYTES) {
558
+ throw new AppError(`Config file is larger than ${MAX_CONFIG_FILE_SIZE_BYTES} bytes — refusing to load`, { code: 'PROVIDER_CONFIG_TOO_LARGE', statusCode: 413 });
559
+ }
560
+ const contents = await fs.readFile(absolutePath, 'utf8');
561
+ res.json(createApiSuccessResponse({
562
+ id: descriptor.id,
563
+ label: descriptor.label,
564
+ format: descriptor.format,
565
+ readonly: Boolean(descriptor.readonly),
566
+ relativePath: descriptor.relativePath,
567
+ absolutePath,
568
+ exists: true,
569
+ size: stat.size,
570
+ updatedAt: stat.mtime.toISOString(),
571
+ contents,
572
+ }));
573
+ }
574
+ catch (err) {
575
+ if (err.code === 'ENOENT') {
576
+ // Report "file doesn't exist yet" with empty contents so the UI can
577
+ // still open an editor and let the user create it with a save.
578
+ res.json(createApiSuccessResponse({
579
+ id: descriptor.id,
580
+ label: descriptor.label,
581
+ format: descriptor.format,
582
+ readonly: Boolean(descriptor.readonly),
583
+ relativePath: descriptor.relativePath,
584
+ absolutePath,
585
+ exists: false,
586
+ size: 0,
587
+ updatedAt: null,
588
+ contents: '',
589
+ }));
590
+ return;
591
+ }
592
+ throw err;
593
+ }
594
+ }));
595
+ router.put('/:provider/config-files/:fileId', asyncHandler(async (req, res) => {
596
+ const provider = String(req.params.provider);
597
+ const fileId = String(req.params.fileId);
598
+ const { descriptor, absolutePath } = resolveConfigFile(provider, fileId);
599
+ if (descriptor.readonly) {
600
+ throw new AppError(`${descriptor.label} is read-only`, {
601
+ code: 'PROVIDER_CONFIG_READONLY',
602
+ statusCode: 403,
603
+ });
604
+ }
605
+ const contents = typeof req.body?.contents === 'string' ? req.body.contents : '';
606
+ if (Buffer.byteLength(contents, 'utf8') > MAX_CONFIG_FILE_SIZE_BYTES) {
607
+ throw new AppError(`Refusing to write: contents exceed ${MAX_CONFIG_FILE_SIZE_BYTES} bytes`, { code: 'PROVIDER_CONFIG_TOO_LARGE', statusCode: 413 });
608
+ }
609
+ // Light format validation — catches "pasted a stray character and now
610
+ // the CLI refuses to start" before we actually save the file. We don't
611
+ // try to be strict about TOML / env formats because a user who's
612
+ // editing these probably knows the grammar better than our regex.
613
+ if (descriptor.format === 'json') {
614
+ try {
615
+ JSON.parse(contents || '{}');
616
+ }
617
+ catch (err) {
618
+ throw new AppError(`Invalid JSON: ${err.message}`, {
619
+ code: 'PROVIDER_CONFIG_INVALID_JSON',
620
+ statusCode: 400,
621
+ });
622
+ }
623
+ }
624
+ await fs.mkdir(path.dirname(absolutePath), { recursive: true });
625
+ await fs.writeFile(absolutePath, contents, 'utf8');
626
+ const stat = await fs.stat(absolutePath);
627
+ res.json(createApiSuccessResponse({
628
+ id: descriptor.id,
629
+ relativePath: descriptor.relativePath,
630
+ absolutePath,
631
+ size: stat.size,
632
+ updatedAt: stat.mtime.toISOString(),
633
+ }));
634
+ }));
467
635
  export default router;
468
636
  //# sourceMappingURL=provider.routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.routes.js","sourceRoot":"","sources":["../../../../server/modules/providers/provider.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.routes.js","sourceRoot":"","sources":["../../../../server/modules/providers/provider.routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Registry of user-editable config files per provider CLI.
3
+ *
4
+ * This is the single source of truth for the Settings → Agents →
5
+ * Configuration tab. Adding a new provider? Append a row here and the
6
+ * UI + API pick it up — no component changes required.
7
+ *
8
+ * Rules:
9
+ * - `relativePath` is relative to the user's home directory.
10
+ * We never accept absolute paths from the client; the server
11
+ * resolves these explicitly so path traversal is impossible.
12
+ * - `format` drives the CodeMirror language extension on the client.
13
+ * - `readonly: true` hides the Save button and the server rejects
14
+ * writes. Use it for files the CLI owns (e.g. OAuth tokens).
15
+ * - `description` is shown as a subtle caption under the editor.
16
+ */
17
+ export const PROVIDER_CONFIG_FILES = {
18
+ claude: [
19
+ {
20
+ id: 'settings',
21
+ label: 'settings.json',
22
+ relativePath: '.claude/settings.json',
23
+ format: 'json',
24
+ description: 'Main Claude Code settings — default model, system prompt, tool policy.',
25
+ },
26
+ {
27
+ id: 'env',
28
+ label: '.env',
29
+ relativePath: '.claude/.env',
30
+ format: 'env',
31
+ description: 'Environment variables loaded when Claude runs (e.g. ANTHROPIC_API_KEY).',
32
+ },
33
+ ],
34
+ codex: [
35
+ {
36
+ id: 'config',
37
+ label: 'config.toml',
38
+ relativePath: '.codex/config.toml',
39
+ format: 'toml',
40
+ description: 'Main Codex CLI config — models, MCP servers, approval policy, sandbox mode.',
41
+ },
42
+ {
43
+ id: 'env',
44
+ label: '.env',
45
+ relativePath: '.codex/.env',
46
+ format: 'env',
47
+ description: 'Environment variables (OPENAI_API_KEY, OPENAI_BASE_URL, …).',
48
+ },
49
+ {
50
+ id: 'auth',
51
+ label: 'auth.json',
52
+ relativePath: '.codex/auth.json',
53
+ format: 'json',
54
+ readonly: true,
55
+ description: 'OAuth tokens managed by `codex login`. Read-only; editing here would corrupt the session.',
56
+ },
57
+ ],
58
+ cursor: [
59
+ {
60
+ id: 'env',
61
+ label: '.env',
62
+ relativePath: '.cursor/.env',
63
+ format: 'env',
64
+ description: 'Cursor CLI environment variables.',
65
+ },
66
+ ],
67
+ gemini: [
68
+ {
69
+ id: 'settings',
70
+ label: 'settings.json',
71
+ relativePath: '.gemini/settings.json',
72
+ format: 'json',
73
+ description: 'Main Gemini CLI settings — selected model, MCP servers, tool approval mode.',
74
+ },
75
+ {
76
+ id: 'env',
77
+ label: '.env',
78
+ relativePath: '.gemini/.env',
79
+ format: 'env',
80
+ description: 'Environment variables (GOOGLE_API_KEY, GEMINI_API_KEY, …).',
81
+ },
82
+ ],
83
+ qwen: [
84
+ {
85
+ id: 'settings',
86
+ label: 'settings.json',
87
+ relativePath: '.qwen/settings.json',
88
+ format: 'json',
89
+ description: 'Main Qwen Code settings — selected model, MCP servers, approval mode.',
90
+ },
91
+ {
92
+ id: 'env',
93
+ label: '.env',
94
+ relativePath: '.qwen/.env',
95
+ format: 'env',
96
+ description: 'Environment variables (DASHSCOPE_API_KEY, OPENAI_API_KEY for OpenAI-compatible routes, …).',
97
+ },
98
+ ],
99
+ };
100
+ export const SUPPORTED_CONFIG_PROVIDERS = Object.keys(PROVIDER_CONFIG_FILES);
101
+ // Hard cap — no config file we care about is remotely this big, but we
102
+ // want to refuse reads and writes that would swell memory. Editing a 1 MB
103
+ // settings.json is already a smell.
104
+ export const MAX_CONFIG_FILE_SIZE_BYTES = 1_048_576; // 1 MB
105
+ //# sourceMappingURL=provider-configs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-configs.js","sourceRoot":"","sources":["../../../../../server/modules/providers/shared/provider-configs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAaH,MAAM,CAAC,MAAM,qBAAqB,GAAyC;IACzE,MAAM,EAAE;QACN;YACE,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,uBAAuB;YACrC,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,wEAAwE;SACtF;QACD;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,cAAc;YAC5B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,yEAAyE;SACvF;KACF;IACD,KAAK,EAAE;QACL;YACE,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,aAAa;YACpB,YAAY,EAAE,oBAAoB;YAClC,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,6EAA6E;SAC3F;QACD;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,aAAa;YAC3B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,6DAA6D;SAC3E;QACD;YACE,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,WAAW;YAClB,YAAY,EAAE,kBAAkB;YAChC,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,2FAA2F;SACzG;KACF;IACD,MAAM,EAAE;QACN;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,cAAc;YAC5B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,mCAAmC;SACjD;KACF;IACD,MAAM,EAAE;QACN;YACE,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,uBAAuB;YACrC,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,6EAA6E;SAC3F;QACD;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,cAAc;YAC5B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,4DAA4D;SAC1E;KACF;IACD,IAAI,EAAE;QACJ;YACE,EAAE,EAAE,UAAU;YACd,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,qBAAqB;YACnC,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,uEAAuE;SACrF;QACD;YACE,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,YAAY;YAC1B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,4FAA4F;SAC1G;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAE7E,uEAAuE;AACvE,0EAA0E;AAC1E,oCAAoC;AACpC,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC,CAAC,OAAO"}
@@ -3,7 +3,7 @@ import { promises as fs } from 'fs';
3
3
  import path from 'path';
4
4
  import { spawn } from 'child_process';
5
5
  import os from 'os';
6
- import { addProjectManually } from '../projects.js';
6
+ import { addProjectManually, extractProjectDirectory } from '../projects.js';
7
7
  const router = express.Router();
8
8
  function sanitizeGitError(message, token) {
9
9
  if (!message || !token)
@@ -211,15 +211,99 @@ export async function validateWorkspacePath(requestedPath) {
211
211
  };
212
212
  }
213
213
  }
214
+ /**
215
+ * Is this `pixcode-project-N` slot already in use? "In use" means the
216
+ * user has sent at least one message under any provider — presence of a
217
+ * session file under ~/.claude/projects/<encoded>/, ~/.codex/sessions/,
218
+ * or ~/.gemini/… is our signal. We keep it best-effort: if we can't
219
+ * probe a provider's session dir (no permissions, path missing), we
220
+ * treat it as "no sessions for this provider" rather than raise.
221
+ *
222
+ * Checking the on-disk workspace dir for files is NOT a reliable signal
223
+ * — providers store their history outside the workspace, so a project
224
+ * that has had 20 messages still has an empty folder.
225
+ */
226
+ async function projectHasAnySessions(workspacePath) {
227
+ const home = os.homedir();
228
+ // encodeProjectName strips drive separators (C:\ → -C--…) and dots so
229
+ // `extractProjectDirectory` can round-trip. Using the same encoder as
230
+ // the rest of projects.js keeps us aligned with however Claude's CLI
231
+ // computes its per-project directory name.
232
+ const slug = workspacePath.replace(/[\\/:]/g, '-').replace(/\./g, '-');
233
+ const probes = [
234
+ // Claude Code: JSONL-per-session files under a per-project subdir.
235
+ path.join(home, '.claude', 'projects', slug),
236
+ // Codex writes session logs under ~/.codex/sessions — they're cross-project
237
+ // so we can't cheaply attribute them to a specific slot; skip.
238
+ // Gemini: same layout as Claude.
239
+ path.join(home, '.gemini', 'projects', slug),
240
+ // Qwen Code (Gemini fork): same layout.
241
+ path.join(home, '.qwen', 'projects', slug),
242
+ ];
243
+ for (const dir of probes) {
244
+ try {
245
+ const entries = await fs.readdir(dir);
246
+ if (entries.some((name) => name.endsWith('.jsonl') || name.endsWith('.json'))) {
247
+ return true;
248
+ }
249
+ }
250
+ catch {
251
+ // Missing / unreadable dir just means "no sessions here", not fatal.
252
+ }
253
+ }
254
+ return false;
255
+ }
256
+ /**
257
+ * GET /api/projects/:projectName/dir-status
258
+ *
259
+ * Lightweight "does the workspace still exist on disk?" check used by
260
+ * the chat composer to detect deleted-directory sessions. We decode the
261
+ * project name back to an absolute path and stat it — a slug alone isn't
262
+ * useful because the user may have deleted the workspace while the
263
+ * session metadata still lives under ~/.<provider>/projects/.
264
+ *
265
+ * Returns `{ exists, path, isDirectory }` so the UI can lock the
266
+ * composer and surface a "directory deleted" warning instead of letting
267
+ * the user fire prompts into a void.
268
+ */
269
+ router.get('/:projectName/dir-status', async (req, res) => {
270
+ const { projectName } = req.params;
271
+ try {
272
+ const actualPath = await extractProjectDirectory(projectName);
273
+ if (!actualPath) {
274
+ return res.json({ exists: false, path: null, isDirectory: false });
275
+ }
276
+ try {
277
+ const stat = await fs.stat(actualPath);
278
+ return res.json({
279
+ exists: true,
280
+ path: actualPath,
281
+ isDirectory: stat.isDirectory(),
282
+ });
283
+ }
284
+ catch (err) {
285
+ // ENOENT is the typical "user rm -rf'd the workspace" path.
286
+ if (err.code === 'ENOENT') {
287
+ return res.json({ exists: false, path: actualPath, isDirectory: false });
288
+ }
289
+ throw err;
290
+ }
291
+ }
292
+ catch (error) {
293
+ console.error(`[projects] dir-status ${projectName}:`, error);
294
+ res.status(500).json({ error: error.message || 'Failed to check project directory' });
295
+ }
296
+ });
214
297
  /**
215
298
  * POST /api/projects/quick-start
216
299
  *
217
- * Zero-config project creation: picks the next available
218
- * `pixcode-project-N` slot under WORKSPACES_BASE, creates the directory,
219
- * registers it, and returns the project record. Used by the "start
220
- * chatting without setting up a project first" landing flow we want
221
- * the user to type + send a message and have a real workspace appear
222
- * underneath them without prompting for a name or path up front.
300
+ * Zero-config project creation: **reuses** the first unused
301
+ * `pixcode-project-N` slot if one exists, otherwise creates the next
302
+ * free index. "Unused" = no session files on disk for any provider.
303
+ * Without reuse, clicking "New chat" rapidly stacks up pixcode-project-1
304
+ * through pixcode-project-N and litters the workspace the UX we want
305
+ * matches ChatGPT's "New chat" which reuses the empty canvas until the
306
+ * user actually commits a message.
223
307
  */
224
308
  router.post('/quick-start', async (req, res) => {
225
309
  try {
@@ -229,25 +313,63 @@ router.post('/quick-start', async (req, res) => {
229
313
  entries = await fs.readdir(WORKSPACES_BASE, { withFileTypes: true });
230
314
  }
231
315
  catch { /* empty is fine */ }
232
- const taken = new Set(entries.filter((e) => e.isDirectory()).map((e) => e.name.toLowerCase()));
233
- let nextIndex = 1;
234
- let name = '';
235
- // eslint-disable-next-line no-constant-condition
236
- while (true) {
237
- const candidate = `pixcode-project-${nextIndex}`;
238
- if (!taken.has(candidate.toLowerCase())) {
239
- name = candidate;
240
- break;
316
+ // Pixcode-owned slots, sorted by numeric index so reuse is deterministic
317
+ // and picks the lowest idle slot (pixcode-project-1 before -3).
318
+ const existingSlots = entries
319
+ .filter((e) => e.isDirectory() && /^pixcode-project-\d+$/i.test(e.name))
320
+ .map((e) => ({
321
+ name: e.name,
322
+ index: parseInt(e.name.split('-').pop(), 10) || 0,
323
+ }))
324
+ .sort((a, b) => a.index - b.index);
325
+ // 1. First pass: reuse the lowest-indexed slot that has no sessions.
326
+ for (const slot of existingSlots) {
327
+ const absolutePath = path.join(WORKSPACES_BASE, slot.name);
328
+ const used = await projectHasAnySessions(absolutePath);
329
+ if (!used) {
330
+ let project;
331
+ try {
332
+ project = await addProjectManually(absolutePath);
333
+ }
334
+ catch (err) {
335
+ // addProjectManually throws when the project is already
336
+ // registered. That's fine — look it up via its encoded name
337
+ // instead of creating a duplicate.
338
+ const msg = err?.message || '';
339
+ if (!/already configured/i.test(msg))
340
+ throw err;
341
+ project = {
342
+ name: absolutePath.replace(/[\\/:]/g, '-').replace(/\./g, '-'),
343
+ path: absolutePath,
344
+ fullPath: absolutePath,
345
+ displayName: slot.name,
346
+ isManuallyAdded: true,
347
+ sessions: [],
348
+ cursorSessions: [],
349
+ };
350
+ }
351
+ return res.json({
352
+ success: true,
353
+ project,
354
+ suggestedName: slot.name,
355
+ reused: true,
356
+ });
241
357
  }
358
+ }
359
+ // 2. No idle slot — create the next free index above what exists.
360
+ const takenIndices = new Set(existingSlots.map((s) => s.index));
361
+ let nextIndex = 1;
362
+ while (takenIndices.has(nextIndex)) {
242
363
  nextIndex += 1;
243
364
  if (nextIndex > 9999) {
244
365
  return res.status(500).json({ error: 'No free pixcode-project slot (exhausted 1..9999)' });
245
366
  }
246
367
  }
368
+ const name = `pixcode-project-${nextIndex}`;
247
369
  const absolutePath = path.join(WORKSPACES_BASE, name);
248
370
  await fs.mkdir(absolutePath, { recursive: true });
249
371
  const project = await addProjectManually(absolutePath);
250
- res.json({ success: true, project, suggestedName: name });
372
+ res.json({ success: true, project, suggestedName: name, reused: false });
251
373
  }
252
374
  catch (error) {
253
375
  console.error('[projects] quick-start failed:', error);