diff --git a/docs/development/README.md b/docs/development/README.md index a7f7dc9..4325744 100644 --- a/docs/development/README.md +++ b/docs/development/README.md @@ -30,11 +30,15 @@ for access and recovery details. Create a disposable fixture without connecting game hosts: ```sh +npx svelte-kit sync fixture_parent=$(mktemp -d "${TMPDIR:-/tmp}/ec-ui.XXXXXX") npm run seed:fixture -- --db "$fixture_parent/preview/cherry.db" --watch ``` -The command prints the generated paths. Leave that terminal open to refresh +The sync step generates the SvelteKit TypeScript configuration that the seeder +needs in a fresh checkout. + +The seeder prints the generated paths. Leave that terminal open to refresh synthetic observations every 15 seconds. In a second terminal, load the printed environment file and start the controller on localhost: @@ -120,6 +124,18 @@ and test commands compile those workers automatically. Restart `npm run dev` after changing agent or worker code, or run `npm run agent:package` to refresh only the downloadable agent assets while the development server is running. +To run the production build locally, run these commands from the repository root +with the controller environment configured as above: + +```sh +npm run build +NODE_ENV=production node build +``` + +`NODE_ENV=production` makes the report and launch workers load from `build/reports` +and `build/launch`. Without it, they look under `.svelte-kit/`, where the production +build does not create worker bundles. The Docker image sets this variable already. + Automated tests simulate Docker and game hosts. Real Debian installation and T5/T6 server validation use the [host acceptance checklist](../guides/native-hosts.md#development-and-validation).