Skip to content

fix(cli)!: os generate refuses a name whose barrel alias no consumer could import by name #24150

fix(cli)!: os generate refuses a name whose barrel alias no consumer could import by name

fix(cli)!: os generate refuses a name whose barrel alias no consumer could import by name #24150

Triggered via pull request September 11, 2026 11:54
Status Success
Total duration 53s
Artifacts

pr-automation.yml

on: pull_request
Check PR Size
Check PR Size
Check Changeset
48s
Check Changeset
Auto Label
Auto Label
Fit to window
Zoom out
Zoom in

Annotations

1 notice
Check Changeset: .changeset/17410-generate-reserved-word-barrel-refusal.md#L0
ADR-0087 exemption (no-migration-prescription): Nothing authorable or stored moves. No `packages/spec` key, no Zod schema, no authored metadata property and no stored `sys_metadata` shape changes its spelling, type or legality — this layer mints no vocabulary at all, it asks TypeScript whether an identifier it already derives can appear in an import clause — so `objectstack migrate meta` has nothing to visit, `spec-changes.json` has nothing to project and the upgrade guide has no row to gain. What moves is which ARGUMENT a scaffolding command accepts at authoring time, and a name it now refuses could never produce an importable barrel entry in the first place, so no metadata written from an accepted name needs conversion and files already scaffolded from a refused name are untouched. The remedy is to type a name whose alias can be imported, delivered by the command's own loud refusal at the terminal and by this changelog — the source-code / invocation-side audience the ledger explicitly does not serve (ADR-0087 D8). The other four categories are closed on facts: `@objectstack/cli` publishes to npm, declares no `private` and ships `dist` in `files[]` (not `unpublished`); no ADR-0087 id is minted in this diff (not `registered`) and none pre-dates the base that would cover it (not `already-registered`); no exported declaration changes shape — the new module is absent from every entry in the package's `exports` map and `src/index.ts` re-exports nothing from `src/utils/`, and the command module's own signature is untouched — so neither `runtime-interface-only` nor `type-surface-only` has a subject.