Repository navigation
Releases
v0.1.9 [DSH v0.2.0-rc.2]: Replace dead settings.register with configure and describe
English
Overview
Release v0.1.9 modernizes the host settings integration for DeepSeek Harness 0.2.0+, replacing the non-existent sctx.settings.register method with the canonical settings.configure and settings.describe().find() pattern and introducing VolatileRef unboxing.
Key Changes
- Eliminate Dead Settings Branch (#29): Replaced legacy
sctx.settings.registercall with modernsctx.settings.configure({ auto: false }, ctx.fiber)andsctx.settings.describe().find((row) => row.ns === name). - Volatile Reference Unwrapping: Added
plainConfigandresolveConfighelpers to recursively unwrapVolatileRefboxes, functions, arrays, and nested structures mutated in-place by the DSH loader. - Reactive Document Updates: Subscribed to
settings/document-updatedevent with automatic re-read and proper disposer cleanup viasctx.effect. - Design & Architecture: Added ADR-007 to
docs/design/DESIGN.mdand updatedCHANGELOG.md. - Test Coverage: Added regression tests for
plainConfigunboxing,settings.configure, andsettings.describeintegration (19/19 passing).
Verification
- Unit & regression tests: 19/19 passing (
node --test test/*.test.mjs). - Preflight verification:
FAIL=0 WARN=2viapreflight.sh. - Test contour (MiniPC): Verified on
192.168.1.123viadsh-test-plugin install, live statusDSH_TEST_OK, and cleancleanup.
中文
概述
v0.1.9 版本针对 DeepSeek Harness 0.2.0+ 现代设置架构进行了全面优化,彻底清除了已失效的 sctx.settings.register 分支,升级为规范的 settings.configure 与 settings.describe().find() 模式,并支持 VolatileRef 解包。
主要改动
- 清除已失效的设置注册调用 (#29): 在
lib/index.js中将已废弃的sctx.settings.register替换为现代 DSH 0.2.0+ 推荐的sctx.settings.configure({ auto: false }, ctx.fiber)与sctx.settings.describe().find((row) => row.ns === name)。 - Volatile 动态引用解包: 引入
plainConfig与resolveConfig辅助函数,递归展开 DSH 运行时加载器动态注入的VolatileRef响应式对象、函数及深层嵌套结构。 - 响应式配置热更新: 监听
settings/document-updated事件,动态重新拉取设置,并在sctx.effect中注册清理函数。 - 架构决策与文档: 在
docs/design/DESIGN.md中追加 ADR-007,同步维护CHANGELOG.md。 - 测试覆盖: 新增
plainConfig与设置服务集成单元测试(19/19 全部通过)。
验证情况
- 单元与回归测试:19/19 全部通过 (
node --test test/*.test.mjs)。 - Preflight 机械检查:
FAIL=0 WARN=2。 - 测试环境 (MiniPC):在
192.168.1.123上通过dsh-test-plugin install验证,状态DSH_TEST_OK,并完成完整环境清理。
Русский
Обзор
Релиз v0.1.9 актуализирует механизм интеграции настроек хоста под DeepSeek Harness 0.2.0+, заменяя отсутствующий метод sctx.settings.register на каноническую связку settings.configure и settings.describe().find(), а также обеспечивая прозрачное разворачивание VolatileRef.
Основные изменения
- Устранение мёртвой ветки настроек (#29): В
lib/index.jsудалён устаревший вызовsctx.settings.register. Вместо него задействована официальная связка ядра DSH 0.2.0+:sctx.settings.configure({ auto: false }, ctx.fiber)для регистрации формы иsctx.settings.describe().find((row) => row.ns === name)для считывания живых параметров. - Разворачивание Volatile-значений: Реализованы функции
plainConfigиresolveConfig, рекурсивно извлекающие значения из боксовVolatileRef, функций и вложенных объектов при их горячей модификации загрузчиком DSH. - Реактивная подписка на обновления: Добавлен слушатель события
settings/document-updatedс динамической перезагрузкой конфигурации и регистрацией диспозеров вsctx.effect. - Дизайн-контракт: В
docs/design/DESIGN.mdдобавлен ADR-007, обновлёнCHANGELOG.md. - Покрытие тестами: Добавлены регрессионные тесты для
plainConfigи взаимодействия с сервисом настроек (19/19 успешно пройдены).
Проверки
- Модульные тесты: 19/19 пройдены (
node --test test/*.test.mjs). - Preflight:
FAIL=0 WARN=2черезpreflight.sh. - Тестовый контур (MiniPC): Успешная установка и верификация на
192.168.1.123черезdsh-test-plugin install, статусDSH_TEST_OK, штатныйcleanup.
v0.1.8: Settings adaptation for DSH 0.2.0+ and Desktop
English
Overview
Release v0.1.8 provides full compatibility and hardening for DeepSeek Harness 0.2.0+ and DSH Desktop runtime environments, resolving startup exceptions and modernizing the settings architecture.
Key Changes
- Fix DSH Desktop Startup Exception (#26): In
lib/index.js, changed settings registration namespace from scoped package name@goodandready/dsh-session-searchto short identifierdsh-session-searchmatching/^[a-z][a-z0-9-]*$/, guarded withtry / catchfallback to prevent host crash if the settings service is missing or fails. - Modern configForms Migration (#21, #23): In
lib/client.js, modernized settings card to resolve scope viactx.configForms.get('dsh-session-search')with fallback to legacyctx.settingsScope, subscribing to live snapshots and displaying explicit diagnostic errors when scope is unavailable instead of misleading "Saved" status. - Service Injection Declaration (#21): Declared
configFormsin client inject (exports.inject = ['slots', 'locale', 'configForms']). - Volatile Configuration Updates (#22): Added listener for
loader/volatile-updateevents in host runtime to seamlessly reflect runtime setting adjustments. - Style Isolation Attribute (#25): Normalized
data-dsh-pluginattribute on injected<style>tag to shortdsh-session-search. - Packaging & Changelog (#24): Added standard
CHANGELOG.mdfollowing Keep a Changelog format and included it inpackage.json.files. - Architecture & Design: Updated
docs/design/DESIGN.mdwith ADR-006.
Verification
- Unit & regression tests: 17/17 passing (
node --test test/*.test.mjs). - Preflight verification:
FAIL=0 WARN=2viapreflight.sh. - Test contour (MiniPC): Verified on
192.168.1.123viadsh-test-plugin install, live statusDSH_TEST_OK, and cleancleanup. - Production contour: Validated against DSH 0.2.0+ Web & Desktop runtime contracts.
中文
概述
v0.1.8 版本针对 DeepSeek Harness 0.2.0+ 与 DSH 桌面端 (Desktop) 运行环境提供了全面的适配与加固,解决了启动异常并升级了设置卡片架构。
主要改动
- 修复 DSH 桌面端启动异常 (#26): 在
lib/index.js中将设置命名空间从带作用域的包名@goodandready/dsh-session-search替换为符合/^[a-z][a-z0-9-]*$/规范的短标识符dsh-session-search,并增加try / catch防御与日志警告,防止设置服务缺失或失败时导致主程序崩溃。 - 迁移至现代 configForms 架构 (#21, #23): 在
lib/client.js中重构设置卡片,优先通过ctx.configForms.get('dsh-session-search')获取作用域并兼容旧版ctx.settingsScope,订阅快照更新,并在作用域不可用时明确显示错误诊断,杜绝虚假“已保存”提示。 - 显式服务注入 (#21): 在客户端注入声明中追加
configForms(exports.inject = ['slots', 'locale', 'configForms'])。 - 动态配置热更新 (#22): 宿主运行时监听
loader/volatile-update事件,支持运行时参数热同步。 - 样式属性规范化 (#25): 注入的
<style>标签上的data-dsh-plugin属性统一使用短标识符dsh-session-search。 - 变更日志与打包规范 (#24): 遵循 Keep a Changelog 标准建立根目录
CHANGELOG.md并纳入package.json.files白名单。 - 架构决策记录: 更新
docs/design/DESIGN.md并追加 ADR-006。
验证情况
- 单元及回归测试:17/17 通过 (
node --test test/*.test.mjs)。 - Preflight 机械检查:
FAIL=0 WARN=2。 - 测试环境 (MiniPC):在
192.168.1.123上通过dsh-test-plugin install验证,状态DSH_TEST_OK,并完成完整环境清理。 - 生产环境:完全符合 DSH 0.2.0+ Web 与桌面端运行规范。
Русский
Обзор
Релиз v0.1.8 обеспечивает полную совместимость и отказоустойчивость плагина в средах DeepSeek Harness 0.2.0+ и DSH Desktop, устраняя сбои при запуске и модернизируя архитектуру настроек.
Основные изменения
- Исправление сбоя запуска в DSH Desktop (#26): В
lib/index.jsпространство имен настроек переведено со scoped-имени@goodandready/dsh-session-searchна короткий идентификаторdsh-session-search, строго удовлетворяющий регулярному выражению/^[a-z][a-z0-9-]*$/. Регистрация обернута в защитную конструкциюtry / catchс предупреждением в лог, исключая падение хоста при сбое сервиса настроек. - Миграция на configForms (#21, #23): В
lib/client.jsкарточка настроек переведена на сервисctx.configForms.get('dsh-session-search')с обратной совместимостью сctx.settingsScope, подпиской на обновления снимка и выводом четкой диагностики ошибки при недоступности скоупа вместо ложного статуса «Сохранено». - Декларация инжекта сервисов (#21): В клиентский экспорт
exports.injectдобавлен сервисconfigForms(['slots', 'locale', 'configForms']). - Синхронизация динамических настроек (#22): В хост-модуле добавлена подписка на событие
loader/volatile-updateдля корректной реакции на обновление конфигурации без перезагрузки. - Изоляция стилей (#25): Атрибут
data-dsh-pluginна теге<style>унифицирован до короткого идентификатораdsh-session-search. - CHANGELOG.md и комплект поставки (#24): Создан
CHANGELOG.mdпо стандарту Keep a Changelog и добавлен вpackage.json.files. - Дизайн-контракт: В
docs/design/DESIGN.mdдобавлен ADR-006.
Проверки
- Модульные тесты: 17/17 пройдены (
node --test test/*.test.mjs). - Preflight:
FAIL=0 WARN=2черезpreflight.sh. - Тестовый контур (MiniPC): Успешная установка и верификация на
192.168.1.123черезdsh-test-plugin install, статусDSH_TEST_OK, штатныйcleanup. - Боевой контур: Полная совместимость с контрактами DSH 0.2.0+ Web и Desktop.
v0.1.7: Cordis client inject declarations and lifecycle hardening
English
Overview
Release v0.1.7 resolves a critical client runtime dependency issue where the browser module interacted with locale and slots services without declaring explicit Cordis service injections (exports.inject = ['slots', 'locale']). This could lead to out-of-order activation or loading failures, causing cascading delays in dependent Web UI services (such as dsh-client-ui-conversation).
Key Changes
- Cordis Service Injection: Declared
exports.inject = ['slots', 'locale'](andmodule.exports.inject) inlib/client.js. - Resilient Registration: Wrapped
ctx.locale.registerand slot registrations withtypeof ctx.effect === 'function'detection and fallback to direct execution. - Regression Testing: Added automated test assertion in
test/identity.test.mjsverifying clientinjectexport integrity. - Architecture & Design: Updated
docs/design/DESIGN.mdwith ADR-005.
Verification
- Unit & regression tests: 15/15 passing (
node --test test/*.test.mjs). - Preflight verification:
FAIL=0 WARN=2viapreflight.sh. - Test contour (MiniPC): Verified on
192.168.1.123viadsh-test-plugin install, live HTTP inspection, and cleancleanup. - Production contour (MiniAI): Verified runtime bootstrap and live module loading.
中文
概述
v0.1.7 版本修复了客户端模块的一个关键运行时依赖问题:浏览器模块在调用 locale 和 slots 服务时未向 Cordis 显式声明服务注入 (exports.inject = ['slots', 'locale'])。这可能导致插件在依赖服务尚未准备就绪时提前激活,引发 Web UI 依赖服务(如 dsh-client-ui-conversation)出现级联等待或启动失败。
主要改动
- Cordis 服务注入: 在
lib/client.js中显式声明并导出exports.inject = ['slots', 'locale']与module.exports.inject。 - 高可用注册流程: 检查
ctx.effect存在性,在缺少 effector 时自动回退至直接注册,增强宿主兼容性。 - 回归测试: 在
test/identity.test.mjs中添加针对客户端inject导出的自动化测试。 - 架构决策记录: 更新
docs/design/DESIGN.md并追加 ADR-005。
验证情况
- 单元及回归测试:15/15 通过 (
node --test test/*.test.mjs)。 - Preflight 机械检查:
FAIL=0 WARN=2。 - 测试环境 (MiniPC):在
192.168.1.123上通过dsh-test-plugin install完成完整生命周期验证与清理。 - 生产环境 (MiniAI):验证运行时启动和客户端模块正常加载。
Русский
Обзор
Релиз v0.1.7 устраняет критический сбой в клиентском модуле плагина: браузерный бандл обращался к сервисам locale и slots, не объявляя явный Cordis-инжект (exports.inject = ['slots', 'locale']). Вследствие этого модуль мог активироваться до готовности сервисов, вызывая сбой инициализации и каскадный перевод зависимых UI-компонентов (включая dsh-client-ui-conversation и чат) в состояние pending.
Основные изменения
- Cordis inject клиентского модуля: В
lib/client.jsявно объявлен и экспортированexports.inject = ['slots', 'locale'](иmodule.exports.inject). - Отказоустойчивая регистрация: Вызовы регистрации локалей и слотов снабжены проверкой
typeof ctx.effect === 'function'с корректным fallback-вызовом при отсутствии эффектора. - Регрессионное тестирование: В
test/identity.test.mjsдобавлен обязательный тест, контролирующий экспортinjectв клиентском коде. - Дизайн-контракт: В
docs/design/DESIGN.mdдобавлен ADR-005.
Проверки
- Модульные тесты: 15/15 пройдены (
node --test test/*.test.mjs). - Preflight:
FAIL=0 WARN=2черезpreflight.sh. - Тестовый контур (MiniPC): Успешная установка и проверка на
192.168.1.123черезdsh-test-plugin install, статусDSH_TEST_OK, штатныйcleanup. - Боевой контур (MiniAI): Проверена работоспособность и корректная отдача бандла сервисом
dsh-web.service.
v0.1.6 - DSH Settings Surface & Product Allowlist
What's Changed
- DSH Settings Surface (#16): Native client settings module (
lib/client.js) registering interactive configuration cards inplugins.row.config,settings.plugin.item, andplugins.item. Users can configuremaxResults,snippetLength, andtimeoutMsdirectly within the Web UI with live validation. - Product-Only Artifact (#15): Restrict package
filesfield strictly to production deliverables (lib/,cordis.patch.yml,README*,LICENSE), excluding tests and internal design notes from the published npm package. - Updater & Maintenance Policy (#17): Explicitly declared updater policy in documentation and settings card — updates are cleanly managed via the DSH CLI (
dsh plugin --profile web add @goodandready/dsh-session-search@latest). - Dynamic Host Settings Integration: Host
apply()connects to Cordissettingsservice for dynamic runtime configuration synchronization.
Full Changelog: v0.1.5...v0.1.6
v0.1.5 - Lifecycle Hardening and Temporal Search Enrichment
What's Changed
- Lifecycle Hardening: Enclosed ctx.tools.register inside Cordis ctx.effect to ensure clean resource disposal on plugin reload / shutdown.
- Defensive Execution: Configured imeoutMs: 30000 to prevent hanging search operations and marked the tool with isConcurrencySafe: () => true for safe parallel LLM invocations.
- Strict Input Validation: Pre-validates query string early to reject empty or whitespace-only queries with clear feedback before querying the SQLite FTS engine.
- Date & Snippet Enhancements: Added session creation/update dates (YYYY-MM-DD) to search results and made snippetLength configurable (default: 200).
- Comprehensive Test Suite: 12/12 unit tests verifying disposal, timeout, validation, date formatting, and error handling.
Full Changelog: v0.1.4...v0.1.5
v0.1.4
What's Changed in v0.1.4
- Initial Public Release: Public package release under the
@goodandreadyscope on npmjs. - Model-Facing Search Tool: Exposes native
session_searchtool for DeepSeek Harness autonomous agents (Dee / Ди). - Zero Overhead & SQLite FTS5: Leverages core
@deepseek-ai/dsh-session-query-sqliteengine without decompressing.jsonl.zstdarchives into RAM. - Canonical Language: Canonical English tool schema, parameter descriptions, and runtime notices.
- Comprehensive Documentation: Detailed documentation across English (
README.md), Chinese (README.zh.md), and Russian (README.ru.md). - Regression Tested: 100% test pass rate covering limits, signals, whitespace normalization, cursor hints, and error handling.