trevato/exact-templates pull #2 deploy: $ cd softwear/app && bun server.ts then failed: start: exited with code 127 before answering — /bin/sh: 1: exec: cd: not found.
Cause: src/apps/process.ts:565 builds exec ${manifest.run}. That only works for a simple command. exec cd x && y execs cd. The same pattern is at src/apps/tty.ts:203.
Acceptance:
A run with shell operators (&&, ||, ;, |, newline) starts as written. Use exec only for a simple command, or run the compound in sh -c and still stop the whole tree.
Or add a dir field to forge.json for a subfolder app, and have the builder brief prefer it. Either way, the original string works.
The start-failure line names the fix when the shell says exec: X: not found.
Tests cover a compound run starting and answering, and being stopped cleanly.
This matters for migrations: imported repos often keep the app in a subfolder.
trevato/exact-templates pull #2 deploy:
$ cd softwear/app && bun server.tsthenfailed: start: exited with code 127 before answering — /bin/sh: 1: exec: cd: not found.Cause:
src/apps/process.ts:565buildsexec ${manifest.run}. That only works for a simple command.exec cd x && yexecscd. The same pattern is atsrc/apps/tty.ts:203.Acceptance:
&&,||,;,|, newline) starts as written. Useexeconly for a simple command, or run the compound insh -cand still stop the whole tree.dirfield to forge.json for a subfolder app, and have the builder brief prefer it. Either way, the original string works.exec: X: not found.This matters for migrations: imported repos often keep the app in a subfolder.