fix: bootstrap DTO class erasure + wizard failure + port prefill + Pi SDK copy (IUV-M01, #436)
- Bug 1 [CRITICAL]: drop `import type` on BootstrapSetupDto in bootstrap.controller.ts so NestJS preserves the class reference for design:paramtypes; ValidationPipe now correctly validates the DTO instead of 400ing on every field. Add e2e integration test (bootstrap.e2e.spec.ts) via @nestjs/testing + supertest that exercises the real DI/Fastify binding path to guard against regressions. Configure vitest to use unplugin-swc with decoratorMetadata:true. - Bug 2: remove `&& headlessRun` guard in wizard.ts so bootstrap failure (completed:false) aborts with process.exit(1) in both interactive and headless modes — no more silent '✔ Wizard complete' after a 400. - Bug 3: add `initialValue` to WizardPrompter.text() interface, ClackPrompter, and HeadlessPrompter; use it in gateway-config.ts promptPort() so 14242 prefills the input buffer and users can press Enter to accept. Apply same pattern to other gateway config prompts (databaseUrl, valkeyUrl, corsOrigin). - Bug 4: add Pi SDK to the 'What is Mosaic?' intro copy in welcome.ts. - Bump @mosaicstack/mosaic 0.0.25 → 0.0.26. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -144,8 +144,8 @@ export async function runWizard(options: WizardOptions): Promise<void> {
|
||||
host: configResult.host,
|
||||
port: configResult.port,
|
||||
});
|
||||
if (!bootstrapResult.completed && headlessRun) {
|
||||
prompter.warn('Admin bootstrap failed in headless mode — aborting wizard.');
|
||||
if (!bootstrapResult.completed) {
|
||||
prompter.warn('Admin bootstrap failed — aborting wizard.');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user