Skip to content

Releases: Jaylor-Wang/dsh-fast-loop

v0.5.1 - Session Projection Receiver Context & Native Wire Typing Fix / 会话投影注册上下文与类型根治

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 27 Oct 04:13

English

Highlights in v0.5.1

  • Strict sessionProjections.register Receiver Context & Wire Typing: Natively types inboxProjectionDefinition as Required<ProjectionDefinition<"inbox", InboxState>>, enabling direct ctx.sessionProjections.register(inboxProjectionDefinition) invocation without intermediate function extraction or any casts—eliminating this.ctx binding loss and "no agent factory registered" session resume failures.
  • Receiver-Context Regression Guard: Enforces this.ctx receiver verification directly inside the lifecycle test suite's projection registry mock to prevent unbound method regressions.

中文

v0.5.1 版本核心特性

  • 会话投影注册接收者上下文与类型根治:将 inboxProjectionDefinition 导出类型精确收敛为 Required<ProjectionDefinition<"inbox", InboxState>>,直接通过 ctx.sessionProjections.register(inboxProjectionDefinition) 零转型调用,彻底杜绝因方法解构导致 this.ctx 丢失及引发的 no agent factory registered 会话恢复失败。
  • 生命周期测试接收者上下文强校验:在测试套件 Mock 与专项回归用例中强制校验 sessionProjections.register 的 this.ctx 绑定,从测试防线封死同类回归问题。

Full Changelog: v0.5.0...v0.5.1

v0.5.0 - Transient Stream Timeout Auto-Retry & Official Contract Alignment / 瞬态流超时自动重试与官方契约全面对齐

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 26 Oct 17:28

English

Highlights in v0.5.0

  • Built-In Transient Stream Timeout & Network Auto-Retry: Automatically recovers from mid-turn transient stream failures (TIMEOUT, TRANSPORT, UPSTREAM, EMPTY_RESPONSE, STREAM_ERROR) with abort-aware exponential backoff (maxTransientRetries, default 2), rescuing long multi-step turns even when upstream adapters enforce maxRetries: 0.
  • Setup-Window Event Persistence (appendUnstoredSuffix): Durably flushes both constructor seed events and setup() window session events right before publication, preventing delegation policy or setup records from being lost across restarts while leaving zero uncommitted residue on setup failure.
  • Adapter Defaults Stripping (requestProposal): Strips adapter-populated maxTokens and reasoningEffort defaults (adapterDefaults) before proposing subsequent agent/request configs, preventing redundant request/header change logs and cross-model default lock-in.
  • Declarative config.agents Startup & Identity Validation: Supports declarative startup/resume of configured agents, CONFIGURED_AGENT_IDENTITIES_KEY launcher overrides, and upfront identity conflict validation.
  • Sanitized Cancel Causes & Dynamic Host Anchor Resolution: Strips Node fetch/undici error stack pollution from turn/end cancel causes via whitelist shallow copy, and dynamically resolves global DSH host anchors across platforms without hardcoded paths.

中文

v0.5.0 版本核心特性

  • 内置流式超时与瞬态网络错误兜底重试:当上游适配器(如 Antigravity)硬编码 maxRetries: 0 导致官方重试插件失效时,自动对 TIMEOUT、TRANSPORT、UPSTREAM、EMPTY_RESPONSE、STREAM_ERROR 等瞬态中断执行支持信号中断的指数退避重试(maxTransientRetries 默认 2 次),彻底杜绝长任务在最后一步因流超时而功亏一篑。
  • Setup 窗口期事件完整落盘(appendUnstoredSuffix):对齐官方持久化事务边界,在 setup() 钩子提交后、正式发布前统一将构造 seed 与 setup 期间写入的会话事件(如子 Agent 委派策略记录)刷入磁盘,且在 setup 失败回滚时不留任何未提交残余。
  • 适配器默认参数剥离(requestProposal):在发起后续步骤的 agent/request 前自动剥离上次由适配器填充的默认 maxTokens 与 reasoningEffort(adapterDefaults),消除跨轮次多余的 request/header (reason: "change") 记录以及切换模型时的默认参数锁死。
  • 声明式 config.agents 自动拉起与身份校验:完整支持配置文件声明式 Agent 的自动创建/恢复、CONFIGURED_AGENT_IDENTITIES_KEY 启动器身份覆盖及互斥/重复身份前置校验。
  • 取消原因栈污染净化与跨平台宿主动态寻址:对 getCancelCause 执行字段白名单浅拷贝,剥离 Node fetch 注入的 stack 属性污染;移除本地路径硬编码,支持跨平台动态推导全局 DSH 宿主锚点。

Full Changelog: v0.4.6...v0.5.0

v0.4.6 - Native Web GUI Settings Card & Dynamic Volatile Sampling / 原生 Web 设置卡片与 Volatile 响应式采样

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 26 Oct 14:21

English

Highlights in v0.4.6

  • Native Web GUI Settings Card: Seamlessly registers an interactive settings card in DSH General Settings (通用设置), offering a visual slider (1–32) and quick presets for maxParallelToolCalls without modifying DSH core code.
  • Dynamic Volatile Store Sampling: Concurrency limits dynamically resolve reactive state from client volatile stores or functions in real time without restarting the web service or refreshing the page.
  • DSH Client Plugin Web Manifest: Fully exports ./client conforming to DSH client specifications, declaring dsh.client for the web platform with clean locale and settings dependencies.
  • Dual CLI Switcher Guidance: Streamlined CLI instructions in README supporting both direct dsh-fast-loop enable and zero-install npx dsh-fast-loop enable.

中文

v0.4.6 版本核心特性

  • Web 界面原生设置卡片:在 DSH 设置(通用设置)中无缝集成 dsh-fast-loop 配置卡片,提供最大工具并发数(maxParallelToolCalls,范围 1~32)可视化滑块与预设按钮,完全无需修改 DSH 核心源码。
  • 动态 Volatile 响应式采样:运行时动态采样配置支持函数与 Volatile 存储,在前端拖动滑块时即刻响应生效,无需刷新页面或重启服务。
  • 标准化 Client Plugin 导出规范:遵循 DSH 客户端规范导出 ./client,声明 dsh.client 与 web 平台依赖注入,保证零侵入式无缝装载。
  • 完善双重 CLI 切换指引:优化文档指引,兼顾已安装用户的 dsh-fast-loop enable 与免全局安装的 npx dsh-fast-loop enable 切换模式。

Full Changelog: v0.4.5...v0.4.6

v0.4.5 - Monotonic Stream Revisions & Phase Wake Latching / 流式修订号单调连续性与执行态唤醒锁存

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 25 Oct 19:37

English

Highlights in v0.4.5

  • Strict Monotonic Stream Revisions & Terminal Guard: Enforces monotonic assistant stream revisions with a terminal guard (push, settle, abandon), eliminating duplicate frames and preventing RemoteStreamCarrierError: session assistant stream skipped revision in DSH Web UI.
  • Active Phase Wake Latching (Steering Guarantee): Latches phase.wakeRequested = true when messages arrive during active execution (phase.kind === "running"), automatically waking the driver upon turn completion so mid-turn user inputs are never dropped.
  • Clean Turn Settlement & Signal Reset: Resets AbortController and step counters per turn, ensuring turns end with clean { kind: "completed" } statuses and eliminating spurious UI "处理失败" error markers.
  • Event-Sourced V4 Protocol Compliance: Correctly sets producer-owned source kinds on synthetic recovery messages to satisfy strict DSH Session V4 formatting contracts.
  • Comprehensive Front-End Contract Test Suite: Ships with dedicated mock tests covering stream monotonicity, idempotent abandonment, V4 source compliance, and phase wake latching.

中文

v0.4.5 版本核心特性

  • 流式帧号严格单调递增与终止守卫:引入 AssistantStreamAttempt 状态机终结守卫,杜绝重复发射帧与跳号,彻底消除前端因 RemoteStreamCarrierError: session assistant stream skipped revision 导致的白屏断流。
  • 活跃阶段输入唤醒锁存(用户中途追问保障):当驱动处于执行态(running)接收用户消息时,硬件级强制锁存 phase.wakeRequested = true 并在轮次结算后自动唤醒驱动,根治“正在分析请求卡死、消息被吞”。
  • 纯净轮次结算与信号隔离:严格按轮次重新分配全新的 AbortController 并重置步骤计数,结算始终返回标准 { kind: "completed" },彻底根除前端 UI 虚假弹出的红字“处理失败”。
  • 对齐 DSH 会话 V4 事件溯源规范:合成自愈消息均携带生产者所有权标识(source: { kind: "fast-loop" }),100% 满足会话事件规范校验。
  • 全套前端洁癖契约回归测试:内置 4 项针对前端挑剔时序的专属 Mock 契约测试,保障版本迭代稳定不破约。

v0.4.4 - Cross-Instance Tool Scheduler Dynamic Resolution / 跨实例工具调度器动态解析与双包Symbol隔离穿透

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 25 Oct 18:43

English

Highlights in v0.4.4

  • Cross-Instance Tool Scheduler Dynamic Resolution: Implemented a robust multi-tier fallback resolver (resolveToolScheduler) to dynamically match TOOL_RUNTIME_SCHEDULER across Dual-Package Symbol boundaries (Cordis service injection vs isolated package instances).
  • Symbol Isolation Penetration: Supports cross-package Symbol description probing (TOOL_RUNTIME_SCHEDULER, dsh-tools.scheduler) and duck-typing method fallback (prepareScheduledExecution / dispatchScheduledExecution), completely eliminating Cannot read properties of undefined (reading 'prepare') when executing tool calls in DSH Web / Electron runtimes.
  • Dynamic Host Tools Bridge: Extends host services inspection to resolve and export runtime symbols directly from the active DSH installation anchor.

中文

v0.4.4 版本核心特性

  • 跨实例工具调度器动态解析与双包 Symbol 隔离穿透:针对跨包安装环境引发的 Symbol("@deepseek-ai/dsh-tools.scheduler") 双重实例不匹配问题,实现多级动态解析链 resolveToolScheduler,彻底解决工具调用执行时报错 TypeError: Cannot read properties of undefined (reading 'prepare')。
  • 全链路多级回退兼容:
    1. 优先匹配宿主与本地精确 Symbol 引用;
    2. 自动探测并跨包识别 Symbol 描述符(兼容 dsh-tools.scheduler 与 TOOL_RUNTIME_SCHEDULER);
    3. 支持实例级方法鸭子类型回退(prepareScheduledExecution / dispatchScheduledExecution / finalizeScheduledExecution);
    4. 支持标准属性 scheduler 探测。
  • 宿主工具服务动态桥接(src/host.ts):在宿主环境探测中追加对 @deepseek-ai/dsh-tools 调度器标识的动态提取与注入,保障 Cordis 服务总线与 FastLoop 驱动之间的无缝通信。

v0.4.3 - Dynamic Host Scope Resolution & Zero-Symbol Drift / 动态宿主Scope桥接与零Symbol漂移

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 25 Oct 18:16

English

Highlights in v0.4.3

  • Dynamic Host Scope Resolution & Zero-Symbol Drift: Seamlessly resolves host @deepseek-ai/dsh-scope and @deepseek-ai/dsh-agent instances across heterogeneous installation boundaries. Eliminates Agent preset binding requires a scoped context errors when creating or resuming sessions in DSH Web / Desktop.
  • Bi-directional Scope Tagging: Dual-tags Agent contexts with both the host and local Symbol("dsh.scope"), ensuring 100% interoperability with standing preset registries and custom plugins.
  • Robust Method Context Preservation: Fixed unbound method tearing on session projection registrations, guaranteeing error-free plugin activation under Cordis.
  • Defensive Steer Soft-Interrupt Guards: Added safe optional-chaining guards across loop context event listeners and inbox pending checks.

中文

v0.4.3 版本核心特性

  • 动态宿主 Scope 桥接与零 Symbol 漂移:彻底解决跨包安装环境下的 Symbol("dsh.scope") 私有副本隔离问题,通过宿主 installAnchor 动态绑定宿主作用域服务,完美契合 dsh-agent-preset-registry 与 dsh-tools 的上下文校验,根治新建会话与恢复会话时的 Agent preset binding requires a scoped context 报错。
  • 双向 Symbol 兼容保障(Bi-directional Dual-Tagging):在 Agent Context 上同时附加宿主与本地作用域标识,实现宿主服务与第三方扩展的 100% 双向契约互认。
  • 投影注册上下文绑定修复:修复 Session Projection 注册时的 this 指针解构脱落 Bug,杜绝 Cordis 插件激活警告。
  • Steer 协作式软打断防御性加固:全面强化对未初始化 inbox 及外部 Mock 上下文的防御性空值校验。

v0.4.2 - Global CLI Switcher & Zero-Risk Patch Management / 内置一键切换 CLI 与零风险补丁管理

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 25 Oct 17:06

English

Highlights in v0.4.2

  • Built-in Global CLI Switcher (dsh-fast-loop): Ships the out-of-the-box command-line tool allowing users to effortlessly toggle between Fast Loop and the official Agent Loop from any terminal (dsh-fast-loop enable, dsh-fast-loop disable, dsh-fast-loop status).
  • Surgical, Non-Destructive YAML Patching: The switcher surgically toggles the disabled state in ~/.dsh/profiles/web/cordis.patch.yml while strictly preserving all existing comments, other plugin configurations, and !!js expressions, completely eliminating YAML indentation and corruption risks.
  • Immediate Live HMR Integration: Seamlessly cooperates with DSH's live patch reload mechanism, applying loop switches without needing manual text editor intervention.
  • Full P0/P1/P2 Capabilities: Integrates Path-Aware Barrier, ToolCallRecovery crash resilience, cooperative soft-interruption for wait tools, and DeepSeek DSML protocol leak auto-healing.

中文 (Chinese)

v0.4.2 核心更新

  • 内置全局一键开关 CLI(dsh-fast-loop):引入原生命令行工具,支持在任意终端直接运行 dsh-fast-loop enable、dsh-fast-loop disable 与 dsh-fast-loop status,实现高性能内核与官方原生内核之间的无缝秒级切换。
  • 外科手术式非破坏性 YAML 补丁:自动定位 ~/.dsh/profiles/web/cordis.patch.yml,精准切换目标服务的 disabled 状态,100% 完整保留原有文件的所有注释、其他插件配置与 !!js 表达式,彻底消除手写 YAML 缩进错误风险。
  • 无缝对接 DSH Live HMR:与 DSH 官方热重载机制完美融合,执行命令后系统即刻平滑热重载生效。
  • P0/P1/P2 全量就绪:整合路径级读写并发屏障、断点自动补齐兜底、Steer 零延迟软打断及 DSML 自愈 Nudge。

v0.4.1 - One-Click CLI Switcher & Zero-Risk Patch Management / 内置一键切换 CLI 与零风险补丁管理

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 25 Oct 16:58

English

Highlights in v0.4.1

  • Built-in Global CLI Switcher (dsh-fast-loop): Added an out-of-the-box command-line tool allowing users to effortlessly toggle between Fast Loop and the official Agent Loop (dsh-fast-loop enable, dsh-fast-loop disable, dsh-fast-loop status).
  • Surgical, Non-Destructive YAML Patching: The switcher surgically toggles the disabled state in cordis.patch.yml while strictly preserving all existing comments, other plugin configurations, and !!js expressions, completely eliminating YAML indentation and corruption risks.
  • Immediate Live HMR Integration: Seamlessly cooperates with DSH's live patch reload mechanism, applying loop switches without needing manual text editor intervention.

中文 (Chinese)

v0.4.1 核心更新

  • 内置全局一键开关 CLI(dsh-fast-loop):引入原生命令行工具,支持在任意终端直接运行 dsh-fast-loop enable、dsh-fast-loop disable 与 dsh-fast-loop status,实现高性能内核与官方原生内核之间的无缝秒级切换。
  • 外科手术式非破坏性 YAML 补丁:自动定位 ~/.dsh/profiles/web/cordis.patch.yml,精准切换目标服务的 disabled 状态,100% 完整保留原有文件的所有注释、其他插件配置与 !!js 表达式,彻底消除手写 YAML 缩进错误风险。
  • 无缝对接 DSH Live HMR:与 DSH 官方热重载机制完美融合,执行命令后系统即刻平滑热重载生效。

v0.4.0 - Path-Aware Barrier, ToolCallRecovery & Steering Soft-Interrupt / 路径级并发屏障、断点自动兜底与协作式软打断

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 25 Oct 16:25

English

Highlights in v0.4.0

  • Path-Aware Barrier (Argument-Aware Concurrency): Overcomes DSH's unary tool classification. Disjoint file editing operations (edit, write, read) run concurrently up to the hardware boundary (maxParallelToolCalls), while operations targeting identical file paths are safely serialized to prevent race conditions. Global barrier tools (bash, commands) execute exclusively.
  • Durable Crash & Failure Recovery (ToolCallRecovery): Integrates session-level ToolCallRecovery observation. If an execution turn aborts, crashes, or is interrupted mid-step, unclosed tool/call events are automatically paired with synthetic tool/result records, completely eliminating orphan calls that trigger 400 Bad Request on resumption.
  • Collaborative Soft-Interruption for Wait Tools (Zero-Latency Steering): Actively monitors inbox.hasPending during tool execution. Interruptible wait tools (wait, sleep, ask_user) are gracefully aborted with TOOL_INTERRUPT_ABORT_REASON upon incoming user steer messages, allowing the agent to yield immediately with zero latency.
  • Model Protocol Leak & Self-Healing Nudge (DSML & ID Healer): Strips leaked raw <|tool_calls|> tags from visible assistant text. If a model leaks tags without emitting structured tool calls, automatically injects a self-healing corrective nudge into inbox.nextStep to prompt proper re-execution within the same turn. Tool-call IDs are validated and deduplicated across the session.
  • Official Error Waterfall & Telemetry Alignment: Fully restores the agent/request-error waterfall and agent/error event emission, enabling seamless integration with official DSH retry policies (exponential backoff, 429 rate limit delays) and telemetry UIs.

中文 (Chinese)

v0.4.0 核心更新

  • 路径级读写并发屏障(Path-Aware Barrier):打破 DSH 原生“一元独占”调度枷锁。跨文件读写编辑(edit、write、read)并发度拉满至物理极限(maxParallelToolCalls),同文件操作自动安全串行互斥;全局副作用工具(bash)自动升格为隔离屏障。
  • 崩溃断点自动兜底防崩(ToolCallRecovery):无缝对齐 DSH 会话事件溯源要求,在 Step 意外崩溃或中断时自动补齐未成对的 tool/result,彻底杜绝孤儿调用导致下一次恢复报 400 Bad Request。
  • 耗时等待与 Steer 协作式软打断(零延迟响应):工具批次执行期间实时监听 inbox,在用户发送指导信息的瞬间触发局部软打断(TOOL_INTERRUPT_ABORT_REASON),耗时等待工具(wait、sleep、ask)即刻让出控制权,交互响应零延迟。
  • DeepSeek 畸变拦截与 Nudge 自愈机制:清洗文本中泄漏的裸 <|tool_calls|> 标签;当模型纯文本泄漏而无结构化调用时,自动注入自愈 Nudge 推动模型步入下一步正确调用;对重复与空 ID 自动规整为会话唯一 ID。
  • 官方错误重试瀑布流与遥测对齐:完整还原 agent/request-error 瀑布流并分发 agent/error 事件,与官方指数退避、429 限流重试插件 100% 契约兼容。

v0.3.2 - Clean Host Dependency Boundary / 规范宿主依赖边界,杜绝模块重复加载

Choose a tag to compare

@Jaylor-Wang Jaylor-Wang released this 24 Oct 16:38

English | 中文

English

What's Changed in v0.3.2

  • Clean Host Dependency Boundary: Completely removed all @deepseek-ai/* packages from runtime peerDependencies. DeepSeek Harness provides all @deepseek-ai/* and @deepseek-ai/cordis modules globally at runtime. Retaining them strictly in devDependencies ensures local type-checking and testing pass while preventing profile package managers (pnpm/npm) from hoisting duplicate Cordis or Session module trees into user profiles.
  • Unified Cordis Service Resolution: Guarantees that fast-loop instances always register against the host's unified Cordis Context and prototype chain, resolving the startup freeze where core services like sessions, agents, tools, and sessionProjections failed to register.
  • High Concurrency & Lifecycle Resilience: Retains the transactional write lock release, WebSocket disconnect cleanup, and ~8x tool scheduler speedup validated across all 11 test suites.

Installation

# Via DSH Plugin CLI (Recommended)
dsh plugin --profile web add dsh-fast-loop

# Via npm / pnpm
npm install dsh-fast-loop
pnpm add dsh-fast-loop

Jump to Chinese / 跳转至中文


中文

v0.3.2 版本更新日志

  • 规范宿主依赖边界:从运行时 peerDependencies 中完全移除 @deepseek-ai/* 相关模块。DeepSeek Harness 宿主会在运行时全局统一提供 @deepseek-ai/* 与 @deepseek-ai/cordis,将其严格限制在 devDependencies(仅供源码构建与本地测试使用),彻底杜绝包管理器向 profile 目录下载重复的 Cordis / Session 副本。
  • 保障统一 Cordis 服务注册:确保 fast-loop 实例始终注册在宿主统一的 Cordis Context 与原型链上,杜绝因双实例导致 sessions、agents、tools、sessionProjections 服务丢失。
  • 延续高并发与会话容错优势:全套继承 v0.3.0 的写锁安全释放、会话销毁资源自动回收机制,经 11 项全链路自动化测试与高并发基准测试验证。

安装与使用

# 通过 DSH 插件命令安装(推荐)
dsh plugin --profile web add dsh-fast-loop

# 通过 npm / pnpm 安装
npm install dsh-fast-loop
pnpm add dsh-fast-loop

Back to English / 返回英文