Monorepo for Aesthetic.Computer aesthetic.computer

oskiewar: arm the tuner nightly, and stop the lab lying about failure master

Two bugs found by trying to run the lab where cron actually runs it, in the sparse automation checkout. `process.exit(0)` in the CLI's `finally` ran before a rejection could be reported, so a lab that never got the page open printed nothing and exited 0 -- a broken run and a clean run produced identical output. It now catches, prints the stack, and exits non-zero, because a sweep's silence has to mean "no summits", not "no simulation". The main-module guard compared `resolve(argv[1])` against `fileURLToPath(import.meta.url)`. `import.meta.url` reports the REAL path while argv[1] keeps whatever the caller typed, so any symlinked component -- /tmp against /private/tmp on a Mac -- silently decided "imported" and the command line did nothing at all. Uses `import.meta.main` where node offers it, real paths otherwise. What the lab was actually failing on: the automation checkout's sparse cone carried the marketing tools but none of the modules `shell.mjs` serves out of system/public, so the page 404'd and never booted. Those four paths are now in the cone. `oskiewar-clockwork tune` runs the proposer, and only the proposer: it has no ledger to publish and no figures to post, so it stops before both. Claude-Session: https://claude.ai/code/session_01X62vT9M1iQXjNTF1jMcpN5


+45 -5
2 changed files