Breaking
LightRunClientnow requires@enixcode/light-run >= 0.2.0. The wire body usesrunanddetached(renamed upstream fromsetupandasync). Older runners will reject the body via Zod. SDK surface is unchanged:Node.setupis still the field authors write.
Features
- New
src/env.tsmodule:findEnvFile(parent walk, max 5 levels),parseEnvFile,readEnvFile,pickFromEnvFile,serializeEnvFile. One place to own .env parsing. light run/light servestream container logs in near-realtime (500 ms poll) and surfacestderr+result.errorper failed node.light node devgenerates.devcontainer/devcontainer.jsonand opens VS Code in the same image used in production. Declared env vars are picked from the nearest.envand injected at create time (no on-disk sidecar).light cleanupstops orphanlight-runner-*containers;light serveauto-evicts them on boot.LightRunClientseeds input as/app/.lp-input.jsoninstead of the wireinputfield (workaround for a light-runner attach/demux bug).lp.js/lp.pyauto-load.node.jsonand install crash handlers so unhandled errors surface viastate.error.- Generated
lp.d.tsexportsconfig,outputSchema,inputSchemafor editor autocomplete. light node helpersnow regenerateslp.js/lp.pytoo, not justlp.d.ts.- Zero-config local dev:
light servespawnslight-runas a child on a free port with a generated token whenLIGHT_RUN_URLis unset. - Claude Code plugin shipped with 5 skills via the
enixmarketplace.
Chores
DEFAULT_IGNOREwidened to drop.lp-input.json,.lp-output.json,.devcontainerfrom the files map.node-devprompt simplified to open / quit.- Prod and staging deploys serialized via a single concurrency group.
Upgrade notes
Operators upgrading from 0.5.x must also upgrade @enixcode/light-run on the runner host:
npm i -g @enixcode/light-run@latest # >= 0.2.0
Otherwise every POST /run will fail with a Zod 400 on setup / async.
Full Changelog: v0.5.1...v0.6.0
build with cc