@rubytech/create-maxy-lite 0.1.6 → 0.1.8

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/index.mjs CHANGED
@@ -137,7 +137,16 @@ const installDeps = async () => {
137
137
  // err= — the true reason (ABI/NODE_MODULE_VERSION/symbol/ELF), not the swallowed miss.
138
138
  if (runIn(ptyLoadCommand()).code !== 0) {
139
139
  const direct = runIn(ptyDirectLoadCommand())
140
- const cause = direct.stderr.replace(/\s+/g, ' ').trim() || `no stderr; ${PTY_NODE}`
140
+ // proot emits `can't sanitize binding /proc/self/fd/*` lines to stderr on every
141
+ // non-interactive login; they are noise that buries (and truncates) the real
142
+ // dlopen error. Strip them so err= carries only the actual cause.
143
+ const cause =
144
+ direct.stderr
145
+ .split('\n')
146
+ .filter((l) => !/proot warning: can't sanitize binding/.test(l))
147
+ .join(' ')
148
+ .replace(/\s+/g, ' ')
149
+ .trim() || `no stderr; ${PTY_NODE}`
141
150
  throw new Error(`node-pty native module did not load after build: ${cause}`)
142
151
  }
143
152
  }
package/lib/paths.mjs CHANGED
@@ -66,7 +66,15 @@ export function ptyDirectLoadCommand({ ptyNode = PTY_NODE } = {}) {
66
66
  * was the divergence from Q2. The toolchain step guarantees python3/make/g++.
67
67
  */
68
68
  export function webchatInstallCommand({ webchatDir = WEBCHAT_DIR } = {}) {
69
- return `cd ${webchatDir} && npm_config_ignore_scripts=false npm install --omit=dev`
69
+ // Reproduce the spike's working condition VERBATIM, including its freshness: the
70
+ // spike ran `npm install node-pty` in an EMPTY dir (`mkdir ~/pty`), which forced a
71
+ // real source build of pty.node that loaded. On a re-installed device the webchat
72
+ // node_modules already holds a prior (broken) pty.node, so a plain `npm install`
73
+ // reports "up to date" and rebuilds nothing — leaving the bad binary. So clean
74
+ // node_modules first, then install: that recreates the spike's empty-dir build.
75
+ // `npm install node-pty` also resolves package.json (ws). The env prefix forces
76
+ // scripts on to match the spike's environment regardless of ambient ignore-scripts.
77
+ return `cd ${webchatDir} && rm -rf node_modules package-lock.json && npm_config_ignore_scripts=false npm install node-pty`
70
78
  }
71
79
 
72
80
  // The shipped skills, as bundled into the app dir, and the path the on-device
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-lite",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Install maxy-lite on an Android phone: orchestrates proot-distro Ubuntu, glibc Node, claude, the web-chat relay, the vault and its bind-mount — run via npx in bare Termux.",
5
5
  "type": "module",
6
6
  "engines": {