Commit f7d92d3
`serve`'s auto-registration of `@objectstack/service-i18n` ended in a bare
`catch {}`. The tolerance was right — a missing i18n package is a supported
configuration; `@objectstack/core` pre-injects `createMemoryI18n` for the
unprovided `i18n` core service, i18n has no `Serve.CAPABILITY_PROVIDERS`
entry, and `requires: ['i18n']` opens the tier without reaching the fail-fast
branch that makes a missing provider a hard boot error. The SILENCE was not:
the catch threw away the classification `createHostImporter` had already
produced, so an app that declares the package and whose install is pruned,
unbuilt, or published with no loadable entry reached it as the same silence as
an app that never installed it.
The catch now captures the error and prints a diagnosis ahead of behaviour
that does not change — the same shape PR #14042 gave the cluster-driver load
for #13463, at the one site that repair did not reach. Nothing is re-thrown.
Only the kind TOKEN is interpolated here; every word of remedy comes from
`err.message`, which the importer composes per kind. That is what makes the
site correct for all three kinds — `declared-no-loadable-entry` included —
without a two-way branch to go stale, which is exactly what #14270 records at
three other consumers of this classification.
Claude-Session: https://claude.ai/code/session_016yfqQh2dBgPAymYd7xipza
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 5c28b88 commit f7d92d3
3 files changed
Lines changed: 493 additions & 10 deletions
File tree
- .changeset
- packages/cli/src/commands
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
0 commit comments