create-walle 0.9.23 → 0.9.24

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-walle",
3
- "version": "0.9.23",
3
+ "version": "0.9.24",
4
4
  "description": "CTM + Wall-E \u2014 AI coding dashboard and personal digital twin agent. Multi-agent terminal for Claude Code, Codex, Gemini, Aider, OpenCode, and more, plus prompt editor, task queue, remote phone and tablet access, code/doc review, and an agent that learns from Slack, email & calendar.",
5
5
  "bin": {
6
6
  "create-walle": "bin/create-walle.js"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "walle",
3
- "version": "0.9.23",
3
+ "version": "0.9.24",
4
4
  "private": true,
5
5
  "description": "Wall-E — your personal digital twin",
6
6
  "scripts": {
@@ -1,21 +1,42 @@
1
1
  process.env.WALL_E_PROCESS_ROLE = process.env.WALL_E_PROCESS_ROLE || 'walle-daemon';
2
+
3
+ function loadOptionalCtmLib(name) {
4
+ const request = `../claude-task-manager/lib/${name}`;
5
+ try {
6
+ return require(request);
7
+ } catch (err) {
8
+ if (err && err.code === 'MODULE_NOT_FOUND' && String(err.message || '').includes(request)) {
9
+ return null;
10
+ }
11
+ throw err;
12
+ }
13
+ }
14
+
2
15
  // Refuse to boot under a Node major that mismatches the pinned one BEFORE brain
3
- // (and its native better-sqlite3) loads. No-op in shipped installs.
4
- require('../claude-task-manager/lib/node-pin-guard').assertPinnedNode();
16
+ // (and its native better-sqlite3) loads. No-op in shipped installs and cloud
17
+ // builds where the CTM sibling app is not present.
18
+ const nodePinGuard = loadOptionalCtmLib('node-pin-guard');
19
+ if (nodePinGuard) nodePinGuard.assertPinnedNode();
5
20
  try {
6
21
  if (process.env.WALL_E_STORAGE_MIGRATION_BYPASS !== '1' && process.env.CTM_STORAGE_MIGRATION_BYPASS !== '1') {
7
- const guard = require('../claude-task-manager/lib/storage-migration').startupGuard('Wall-E', process.env);
8
- if (!guard.ok) {
9
- console.error('[storage-migration] Wall-E startup paused while storage migration is active.');
10
- process.exit(75);
11
- } else if (guard.stale) {
12
- console.warn('[storage-migration] Ignoring stale storage migration lock.');
22
+ const storageMigration = loadOptionalCtmLib('storage-migration');
23
+ if (storageMigration) {
24
+ const guard = storageMigration.startupGuard('Wall-E', process.env);
25
+ if (!guard.ok) {
26
+ console.error('[storage-migration] Wall-E startup paused while storage migration is active.');
27
+ process.exit(75);
28
+ } else if (guard.stale) {
29
+ console.warn('[storage-migration] Ignoring stale storage migration lock.');
30
+ }
13
31
  }
14
32
  }
15
33
  } catch (e) {
16
34
  console.warn('[storage-migration] Startup guard failed open:', e.message);
17
35
  }
18
- const { processTitle: formatProcessTitle } = require('../claude-task-manager/lib/process-title');
36
+ const processTitleLib = loadOptionalCtmLib('process-title');
37
+ const formatProcessTitle = processTitleLib
38
+ ? processTitleLib.processTitle
39
+ : ((role, tag) => `Wall-E ${role}${tag ? `-${tag}` : ''}`);
19
40
 
20
41
  const brain = require('./brain'); // brain.js loads .env from project root
21
42
  const ingest = require('./loops/ingest');