fflate is already bundled into lib/index.js; keep it as a pack-time/devDependency so field machines that cannot reach registry.npmjs.org still finish plugin add.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Subscribe to live settings events so opening/closing publish-to-other-presets remounts host tools and skills immediately without restarting Desktop.
Co-authored-by: Cursor <cursoragent@cursor.com>
Plugin Manager often leaves a bare netxops enable stub that wipes Config on DSH 0.2; expand missing keys on Host apply, default groupOpsPublic on, and persist false explicitly so other installs get tools without hand-editing patches.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop waiting on removed settingsScope so the host can publish a connection, harden skill frontmatter for CRLF, and auto-save capability public toggles so other presets actually get netx__* tools (0.1.50).
Co-authored-by: Cursor <cursoragent@cursor.com>
0.2 web no longer lists ~/.dsh/.agent-presets; without a cordis.patch.yml insert the preset never appears in Settings.
Co-authored-by: Cursor <cursoragent@cursor.com>
Compose from host standard for web directories and sync a correctly indented declarative insert into the desktop profile patch (0.1.48).
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the declarative @deepseek-ai/dsh-agent-preset patch (and the huge flat standard copy) so web/CLI boot no longer needs that package; install copies shipped standard then overlays persona/tools/skills.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prefer shared schemastery 3.18.2 peers (Desktop 3.18.4 alone breaks Config), and register settings.section eagerly with a deferred form scope so the Settings nav appears without waiting on configForms.
Co-authored-by: Cursor <cursoragent@cursor.com>
Register settings.section eagerly (like im-ops) with multi-namespace configForms candidates so Desktop Settings shows Netx Ops; package.json had been overwritten to @deepseek-ai/dsh-desktop which broke local-path installs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ship a declarative @deepseek-ai/dsh-agent-preset patch (directory discovery is dead) and register the settings card on plugins.item via configForms.whileServed while keeping settings.section for older shells.
Co-authored-by: Cursor <cursoragent@cursor.com>
Soft-inject configForms/settingsScope and mark Config fields volatile so desktop 0.2.0 no longer waits forever on the removed settingsScope service.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add netx__getNeExecJob, route execManagedNe async to /exec-jobs, and document getManagedNe.capability for agents.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose getBizMonitor* / getBizCollect* on the Ops preset with skill netx-biz-monitor; keep tooling in netxops instead of netx-mcp.
Co-authored-by: Cursor <cursoragent@cursor.com>
connection.rpc.handle no longer registers custom channels when webServer is not on the connection ctx, which left the KB settings badge stuck on unconfigured.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reload Host kbRoot after browse/save so the status badge tracks the live package instead of a stale snapshot.
Co-authored-by: Cursor <cursoragent@cursor.com>
Site writes device profiles/inventory via kbWriteRef; persona and kb-context require read-then-write refs plus memories for reusable experience.
Co-authored-by: Cursor <cursoragent@cursor.com>
Run session and WhatsApp/IM sinks in parallel so a failing or slow sticky session no longer skips proactive IM delivery (0.1.34).
Co-authored-by: Cursor <cursoragent@cursor.com>
Host-side netx__kb* tools jail create/update/delete under paths.local memories/drafts/suggestions; Netx Ops agent.cordis.yml now includes full standard capability rows plus ops tools.
Co-authored-by: Cursor <cursoragent@cursor.com>
Strengthen Host prompt injection with a per-step reply reminder, read live settings, and stop persona from forcing follow-user language.
Co-authored-by: Cursor <cursoragent@cursor.com>
Inject systemPrompt sections from Netx Ops settings so every preset can switch CoT and final-reply language without changing API/alarm lang.
Co-authored-by: Cursor <cursoragent@cursor.com>
Parse packaging-generated paths and load each local_skills/*/SKILL.md with the same hasSkills toggles and provider as shared packs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Browse no longer fails silently, falls back to Host directoryPicker RPC, and resolve treats a MANIFEST.json file path as its parent package root.
Co-authored-by: Cursor <cursoragent@cursor.com>
Locate and validate MANIFEST under kbRoot, show anti-mixup status in settings, and inject KB_* env plus kb-context so sessions degrade to pure netx when unset.
Co-authored-by: Cursor <cursoragent@cursor.com>
Localize alarm prompts and UI reason codes for zh/en, and restyle the settings page like uds-auth as its own settings.section.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop host packages from peerDependencies, set auto-install-peers=false, so pnpm install no longer pulls dsh-api-remotes → dsh-type-meta from the public registry.
Ignore hub alarms before auth-ok, stop reconnecting after auth-fail, serialize sticky delivery with dispose on reset, and sanitize ZIP entry names against path traversal.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ops can download every Host session as a ZIP for HQ analysis, fan key alarms to multiple WhatsApp targets, and the Plugins card copy stays short.
Co-authored-by: Cursor <cursoragent@cursor.com>
Profile pnpm rejects exotic subdependencies; install netxops + dsh-im-ops + dsh-ops-cron as one direct add line instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
Declare dsh-im-ops and dsh-ops-cron as dependencies and mount them from the netxops patch so one plugin add covers alarm delivery and schedules.
Co-authored-by: Cursor <cursoragent@cursor.com>
One capability group now ships netx-ops (alarms + managed CLI + paths); keep tools-nms/common as aliases.
Co-authored-by: Cursor <cursoragent@cursor.com>
Settings choose DSH session and/or WhatsApp via botId+targetId; onAlarm soft-calls ctx.dshIm.send when im is installed.
Co-authored-by: Cursor <cursoragent@cursor.com>