Restore missing dsh-netxops host bridge after dirty reinstalls (0.1.53).

Preset-only self-heal left tools waiting forever when the bundle host row was dropped; insert the full host block into cordis.patch.yml and require one restart.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-10-10 17:00:38 +08:00
parent e2e65b0324
commit 777589b702
12 changed files with 1623 additions and 73 deletions

View file

@ -27,7 +27,7 @@ import { homedir } from 'node:os'
import { dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
import type { Context } from '@deepseek-ai/cordis'
import { healNetxopsProfileEntries } from './netx/heal-profile-entry.ts'
import { ensureNetxopsHostInProfilePatches } from './netx/heal-profile-entry.ts'
export const NETXOPS_PRESET_ID = 'netxops'
@ -612,10 +612,10 @@ export function ensureAgentPresetInstalled(logger: Context['logger']): void {
logger.error('netxops: failed to sync declarative preset into profile patch: %s', error)
}
try {
// Plugin Manager often leaves `- id: netxops` / `disabled: false` with no
// config; DSH 0.2 replaces the whole Config → capability/public flags never
// apply. Expand missing keys from package defaults on every Host apply.
healNetxopsProfileEntries(logger)
// (1) Sparse `- id: netxops` from Plugin Manager → expand missing config keys.
// (2) Missing host row after dirty reinstall (preset channel self-healed,
// bundle host insert lost) → insert full `name: dsh-netxops` block.
ensureNetxopsHostInProfilePatches(logger)
} catch (error) {
logger.error('netxops: failed to heal host profile entry: %s', error)
}