Changelog - 2026-09-03
Deprecated boot API removed
Breaking ChangeIn one line. The deprecated runtime boot shims - boot(), bootOptions, IBootReport, IBootableApplication, BindingNamespaces.BOOTERS - are gone; nothing in the framework calls or exports them anymore.
The problem it solves
boot() became a no-op on 2026-09-02: every call still compiled and warned once, but did nothing. A shim that never fails hides the exact moment a caller should have switched to configs.artifacts. Removing it turns that silent no-op into a compile error, which is the point where a caller actually notices.
// Compiled and warned once, but did nothing, since 2026-09-02
await application.boot();
await application.start();What changed
BaseApplication.boot()is removed, along with the privatehasWarnedBootDeprecatedflag it used to warn once per process. Callapplication.start()alone.BaseApplicationno longer implementsIBootableApplication- onlyIRestApplication.IApplicationConfigs.bootOptionsis removed, in@venizia/ignisand in the kernel's structural mirror (IApplicationBootOptions,IApplicationArtifactOptions).@venizia/ignis-bootno longer exportsIBootOptions,IArtifactOptions,IBootReport,IBootPhaseReport,TBootPhase,BootPhasesorIBootableApplication.packages/boot/src/common/is deleted; the package now exports only the build-time artifact index generator.BindingNamespaces.BOOTERSis removed - nothing has written to it since the runtime booters left on 2026-09-02.- The dead
BaseCrudServiceplaceholder is removed from@venizia/ignis-kernel(base/services/base-crud.tswas an emptyexport {}left over from an earlier rename).
Who is affected
Applications that call
await application.boot(). Delete the line -initialize()andstart()are unchanged.Configs that set
bootOptions. Delete the key; it has been ignored since 2026-09-02.Classes that
implements IBootableApplicationoroverride boot(). Delete both - the interface and the base method no longer exist.Everyone already on
configs.artifacts. No action needed - see the 2026-09-02 changelog if you have not migrated yet.Upgrading nx-seller? Follow the migration guide - it lists every file and the order to fix them.
Known internal call sites and overrides, for coordination (21 across BANA/nx-seller). Every row fails to compile until it's deleted. 3 call
.boot(), 2 setbootOptions, and 16 declareoverride async boot()- none of the 16 callssuper.boot()and every one returns the literal empty report, so the fix is to delete the whole method, not just theoverridekeyword (keeping anoverridewith no base method to override isTS4113):File Line Site packages/search/src/migrations/bootstrap.ts104 await app.boot();packages/core/src/helpers/bootstraps/migration.ts31 await application.boot();packages/core/src/helpers/bootstraps/worker.ts34 await application.boot();packages/core/src/helpers/bootstraps/migration.ts25 bootOptions: {}packages/core/src/common/app-config.ts15 bootOptions: {packages/search/src/migrations/bootstrap.ts61 override async boot()packages/commerce/src/application.ts169 override async boot()packages/finance/src/application.ts47 override async boot()packages/helpdesk/src/application.ts204 override async boot()packages/identity/src/application.ts100 override async boot()packages/inventory/src/application.ts121 override async boot()packages/invoice/src/application.ts113 override async boot()packages/ledger/src/application.ts83 override async boot()packages/licensing/src/application.ts36 override async boot()packages/outreach/src/application.ts20 override async boot()packages/payment/src/application.ts24 override async boot()packages/pricing/src/application.ts66 override async boot()packages/sale/src/application.ts161 override async boot()packages/search/src/application.ts68 override async boot()packages/signal/src/application.ts24 override async boot()packages/taxation/src/application.ts76 override async boot()
Breaking changes
WARNING
Anything that still calls boot(), reads bootOptions, or imports IBootReport, IBootableApplication, IArtifactOptions or IBootOptions from @venizia/ignis-boot no longer compiles.
Before:
// index.ts
await application.boot();
await application.start();
// application.ts
export const configs: IApplicationConfigs = {
path: { base: '/api', isStrict: true },
bootOptions: {},
};
export class Application extends BaseApplication implements IBootableApplication {
override async boot() {
return super.boot();
}
}After:
// index.ts
await application.start();
// application.ts
export const configs: IApplicationConfigs = {
path: { base: '/api', isStrict: true },
artifacts: GeneratedArtifacts,
};
export class Application extends BaseApplication {}Migration:
- Delete every
await application.boot();call -start()already runs the full sequence. - Delete
bootOptionsfrom the config, and anyoverride boot()orimplements IBootableApplication. - If you have not already, set
configs.artifactsto a generated index - see Registering artifacts.
Details
| Symbol | Change | Package |
|---|---|---|
BaseApplication.boot(), hasWarnedBootDeprecated | Removed | core-server |
BaseApplication implements IBootableApplication | Removed | core-server |
IBootOptions, IArtifactOptions, IBootReport, IBootPhaseReport, TBootPhase, BootPhases, IBootableApplication | Removed | boot |
IApplicationConfigs.bootOptions | Removed | kernel |
IApplicationBootOptions, IApplicationArtifactOptions (kernel mirror) | Removed | kernel |
BindingNamespaces.BOOTERS | Removed | kernel |
base/services/base-crud.ts (dead BaseCrudService placeholder) | Removed | kernel |
ArtifactScanner.scan()'s ignore option | Fixed - now merges with DEFAULT_IGNORE instead of replacing it | boot |
ArtifactScanner.scan()'s ignore option merging instead of replacing was a latent bug caught while touching this file - nobody passes --ignore today, in this repo or in BANA, so its blast radius is zero.
- Reference: Artifact Registration. Guide: Registering artifacts. Prior migration: 2026-09-02 changelog.