fix(cli): preserve overlays without session registration

This commit is contained in:
Turtle
2026-07-29 21:15:42 +08:00
parent 8f2f6ef0ac
commit c1324ee896
5 files changed
+179 -31

No files matched your search

+10 -2
View File
@@ -7,9 +7,12 @@
*/
import { fileURLToPath } from 'node:url'
import { resolveConfigPath } from '@deepseek-ai/dsh-app-boot'
import { AppCLIEntry } from './app-cli-entry.ts'
const CONFIG_PATH = fileURLToPath(new URL('../cordis.yml', import.meta.url))
// The shared core every `dsh` surface mounts, plus this surface's overlay over it.
const BASE_CONFIG = fileURLToPath(new URL('../base.cordis.yml', import.meta.url))
const WEB_OVERLAY = fileURLToPath(new URL('../web.cordis.yml', import.meta.url))
// Display-only mirror of the webserver schema's loopback host: the address the
// local URL always prints. Not a source of truth — the schema is.
@@ -23,6 +26,8 @@ const LOOPBACK_HOST = '127.0.0.1'
* @param dev - mount the client HMR driver and watch plugin bundles for rebuilds.
* @param workspaceRoot - parent directory for name-created workspaces, or `undefined` for the gateway's cwd fallback.
* @param trustedHosts - extra authorities for the /api browser-trust fence, or `undefined` for the derived LAN literals alone.
* @param config - an overlay of loader patches applied over the shipped web
* composition, or `undefined` for none; already parsed from `--config`.
*/
export async function runWeb(
host: string | undefined,
@@ -30,9 +35,12 @@ export async function runWeb(
dev: boolean,
workspaceRoot: string | undefined,
trustedHosts: string[] | undefined,
config?: string,
): Promise<void> {
const entry = new AppCLIEntry({
configPath: CONFIG_PATH,
configPath: BASE_CONFIG,
overlayPath: WEB_OVERLAY,
...config !== undefined && { extraOverlayPath: resolveConfigPath(config, undefined) },
dev,
...host !== undefined && { host },
...port !== undefined && { port },