feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot
The four near-twin helpers the two published bins carried — loadEnv,
installFailLoud, assertEntriesLoaded, boot — live once in
packages/ui/app-boot, parameterized by the bin's diagnostic prefix and
injectable at their side-effect seams (warn sink, process slice), so
every branch sits under the per-file 100% coverage gate: the unit suite
drives boot() in-process against the real Loader (relative-specifier
configs) through both the settled-tree path and the fiber-less-entry
rejection, and exercises the ENOENT/unloadable .env split, the
Error/non-Error/stackless fail-loud arms, and the disabled-entry
exclusion. resolveConfigPath (snapshot-aware) becomes the single path
resolver for both bins.
Each bin.ts is now a thin self-executing composition plus its
app-specific lifecycle (acp: replay env-skip + stdin-EOF dispose;
stdio: nothing extra), exports nothing, and stays coverage-excluded;
the built-bin smokes still prove both artifacts under plain node in the
node_modules-shaped temp dir (now symlinking ui/app-boot), including
the missing-config non-zero exit.
Implements docs/rfc/implemented/simplification/2026-07-04-share-app-bin-boot-glue.md
(moved from proposed/ and amended); the extract-example-app-packages
RFC's bin-ownership facts are amended in the same change.
2026-07-04 16:43:06 +08:00
|
|
|
{
|
|
|
|
|
"extends": "../../../tsconfig.base.json",
|
|
|
|
|
"compilerOptions": {
|
|
|
|
|
"rootDir": "src",
|
|
|
|
|
"outDir": "lib/types"
|
|
|
|
|
},
|
|
|
|
|
"include": [
|
|
|
|
|
"src"
|
|
|
|
|
],
|
|
|
|
|
"references": [
|
|
|
|
|
{
|
|
|
|
|
"path": "../../../vendor/cordis"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"path": "../../../vendor/loader"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"path": "../../../vendor/include"
|
2026-07-19 22:13:50 +08:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"path": "../../support/invariants"
|
2026-07-22 10:55:18 +08:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"path": "../../core/system-prompt"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"path": "../../util/paths"
|
feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot
The four near-twin helpers the two published bins carried — loadEnv,
installFailLoud, assertEntriesLoaded, boot — live once in
packages/ui/app-boot, parameterized by the bin's diagnostic prefix and
injectable at their side-effect seams (warn sink, process slice), so
every branch sits under the per-file 100% coverage gate: the unit suite
drives boot() in-process against the real Loader (relative-specifier
configs) through both the settled-tree path and the fiber-less-entry
rejection, and exercises the ENOENT/unloadable .env split, the
Error/non-Error/stackless fail-loud arms, and the disabled-entry
exclusion. resolveConfigPath (snapshot-aware) becomes the single path
resolver for both bins.
Each bin.ts is now a thin self-executing composition plus its
app-specific lifecycle (acp: replay env-skip + stdin-EOF dispose;
stdio: nothing extra), exports nothing, and stays coverage-excluded;
the built-bin smokes still prove both artifacts under plain node in the
node_modules-shaped temp dir (now symlinking ui/app-boot), including
the missing-config non-zero exit.
Implements docs/rfc/implemented/simplification/2026-07-04-share-app-bin-boot-glue.md
(moved from proposed/ and amended); the extract-example-app-packages
RFC's bin-ownership facts are amended in the same change.
2026-07-04 16:43:06 +08:00
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|