Skip to content

v0.4.0-alpha1

Pre-release
Pre-release

Choose a tag to compare

@T-Auto T-Auto released this 19 Oct 03:49
· 119 commits to main since this release
34ba06f

中文 | English

作为 0.4.0 系列的首个预览版本,本版本汇总了自 v0.3.2 以来的主要用户和开发者相关变更。

新增功能

  • 新增统一的能力目录与类型化契约:工具名称、归属、呈现方式、并发与 schema 集中在一处,并加入 Outcome、搜索覆盖与结果引用类型以及明确的错误/重试策略。 @Haoming9527
  • Rust 内核拆分为 ops-protocol、ops-files、ops-search、ops-batch、ops-results 与 ops-documents 等 workspace crate,仍按调用启动一次性 worker,并保留原有的权限、元数据、no-follow 与审计规则。 @Haoming9527
  • 一次性 worker 请求升级为带版本的 v1 协议:逐调用 ID、组件来源与执行/输出预算,副作用前拒绝格式错误的信封。 @Haoming9527
  • Native 文件结果改为带物理行号的有界文本:转义后上限 64 KiB,截断时给出恢复提示,非法编码返回 ERR_INVALID_ENCODING。 @Haoming9527
  • 新增 ops_read_many 多文件范围读取(单次 1–32 个 UTF-8 范围,逐文件报告版本与错误)与 ops_edit_many 对单个文件的原子多段编辑(与 ops_edit_file 同语义)。 @Haoming9527
  • 搜索区分扫描覆盖与分页结果,统计跳过原因;存在读取、编码、大小或预算缺口时不再提供全量总数,续取会校验查询、权限与观察到的文件状态。 @Haoming9527
  • 新增会话私有结果引用 ref://session/tool/uuid:单结果 10 MiB、单会话 100 MiB 配额、序列化 LRU 与独立审计,超大输出以可无损重建的分块快照保存。 @Haoming9527
  • Native 文件工具新增引用分页与释放,绑定当前会话目录、权限与可见的生产工具。 @Haoming9527
  • PTC 返回可收窄的完成/部分/失败结果信封,并按需加载由同一份 schema 生成的 dsh-ops/ptc-sdk 类型声明。 @Haoming9527
  • 新增 dsh-ops/discovery 组件与 ops_discover:允许池、单次 1–5 项上限与始终加载选择,高级工具只在下一个模型步骤边界发布。 @Haoming9527
  • 新增有界 CSV/TSV、DOCX 正文段落与经典 PDF 文本页读取,通过 Native 与 PTC 按需暴露,并保留精确的行/页/字节预算与安全前缀。 @Haoming9527
  • bundle 增至七行并新增 discovery 行;提供可选双语浏览器设置页与经校验的持久化表单,覆盖运行时清单、Bash 选择、逐工具替换与发现池。 @Haoming9527
  • ops_bash 改为接入宿主的单次审批与子进程治理,并要求命令描述;Bash 成为可选运行时。 @Haoming9527

体验优化

  • Native 启动只常驻多文件读取器,单文件/hex、搜索、修改与引用分页按需发现,路由只描述已发布的工具。 @Haoming9527
  • 单文件与多文件重读在上一轮请求包含准确正文且逐文件重新验证后省略重复行,压缩、脱敏、权限变化或证据不足时恢复全文。 @Haoming9527
  • 渐进式工具发布在会话提交步骤结束后、宿主捕获下一次供应商 schema 之前完成,避免多延迟一轮。 @Haoming9527
  • 完整返回的 Native 范围使用紧凑行号、共享父目录与逐文件完整版本/续读回执,截断、失败与不确定覆盖仍保留诊断信息。 @Haoming9527
  • 表格读取在文件结束与元数据变化后只报告实际覆盖,解析缺口保留安全前缀且不伪造续取。 @Haoming9527

问题修复

  • 修复 Native 源文本中字面反斜杠与制表符、控制字符、Unicode 分隔符的混淆,紧凑与通用输出共用可逆编码。 @Haoming9527
  • 凭据预检拒绝信息不再返回被拒路径与匹配规则,保留拒绝代码、无副作用状态与禁止重试指引。 @Haoming9527
  • Shell 失败改为诚实的返回值:参数失败返回结构化失败值,运行后的未知副作用禁止自动重试。 @Haoming9527

其他变更

  • 插件源码迁入 src/ 并构建到既有 lib/ 路径,lib/ 成为构建产物,发布包仍只包含 lib/。 @Haoming9527
  • 完成严格 TypeScript 源码迁移并关闭 JavaScript 编译:插件源码全部为 TypeScript/TSX,打包时拒绝未导入的 JavaScript 源码。 @Haoming9527
  • Windows Bash 不再自动安装 npm 载荷,改为状态/安装/删除与 Git/受管理副本选择命令;删除默认预览,只移除带收据的非链接副本。 @Haoming9527
  • PowerShell 交回宿主:移除 PowerShell 载荷依赖与自动执行器覆盖,新增 upgrade-host-pwsh 命令,默认预览、显式执行,并说明取消后的未知副作用与重启要求。 @Haoming9527

As the first preview of the 0.4.0 series, this version summarizes the major user- and developer-facing changes since v0.3.2.

New Features

  • Add a unified capability catalogue and typed contracts: tool names, ownership, presentation, concurrency and schemas live in one place, with Outcome, search-coverage and result-reference types plus explicit error and retry policies. by @Haoming9527
  • Split the Rust kernel into ops-protocol, ops-files, ops-search, ops-batch, ops-results and ops-documents workspace crates, keeping the one-shot worker and the existing authority, metadata, no-follow and audit rules. by @Haoming9527
  • Version the one-shot worker request as a strict v1 protocol with per-call IDs, component provenance and execution/output budgets, rejecting malformed envelopes before any effect. by @Haoming9527
  • Render Native file results as bounded text with physical line numbers: content is capped at 64 KiB after escaping, clipping carries recovery guidance, and invalid encodings return ERR_INVALID_ENCODING. by @Haoming9527
  • Add ops_read_many multi-range reads (1–32 UTF-8 ranges per call, with per-file revisions and errors) and ops_edit_many atomic multi-range edits within a single file (the same semantics as ops_edit_file). by @Haoming9527
  • Report search scan coverage separately from page delivery and count skip reasons; totals are withheld when reads, encodings, sizes or budgets leave gaps, and continuations revalidate the query, authority and observed filesystem state. by @Haoming9527
  • Add private session result references (ref://session/tool/uuid) with a 10 MiB per-result and 100 MiB per-session quota, a serialized LRU and separate durable audits, storing oversized output as losslessly reconstructable chunks. by @Haoming9527
  • Add reference paging and release to the Native file tools, bound to the current session directory, authority and the visible producing tool. by @Haoming9527
  • PTC returns discriminated completed/partial/failure outcome envelopes and loads dsh-ops/ptc-sdk type declarations generated from the same schemas on demand. by @Haoming9527
  • Add the dsh-ops/discovery component and ops_discover with an allowed pool, a 1–5 per-call cap and always-loaded selections; advanced tools publish only at the next model-step boundary. by @Haoming9527
  • Add bounded CSV/TSV, DOCX main-body paragraph and classic PDF text-page readers, exposed on demand through Native and PTC with exact row, page and byte budgets and safe prefixes. by @Haoming9527
  • Grow the bundle to seven rows with a new discovery row, and add optional bilingual browser settings pages plus validated persistent forms covering runtime inventory, Bash selection, per-tool replacements and discovery pools. by @Haoming9527
  • Make ops_bash use host per-call approvals and subprocess governance, require a command description, and treat Bash as an optional runtime. by @Haoming9527

Improvements

  • Keep the Native startup surface to the multi-file reader; the single-file/hex reader, search, mutations and reference paging become discoverable, and routing describes only published tools. by @Haoming9527
  • Omit repeated line bodies on single- and multi-file re-reads when the latest completed request carries the exact prior text and every file revalidates, restoring full output after compaction, redaction, authority changes or uncertain evidence. by @Haoming9527
  • Publish progressive tools after the session commits a step and before the host captures the next provider schema, avoiding an extra delayed round. by @Haoming9527
  • Show fully returned Native ranges with compact line numbers, shared parent paths and one per-file revision/continuation receipt, while clipped, failed and uncertain coverage keeps its diagnostics. by @Haoming9527
  • Report only actual table coverage beyond EOF and after metadata changes, keeping safe prefixes beside parse gaps without inventing continuations. by @Haoming9527

Bug Fixes

  • Fix confusion between literal backslashes and tabs, control characters or Unicode separators in Native source text by sharing one reversible encoder across compact and general output. by @Haoming9527
  • Stop credential preflight refusals from exposing denied paths or matching policy roots, while retaining rejection codes, effect-free state and no-retry guidance. by @Haoming9527
  • Make shell failures honest: invalid arguments return structured failure values, and an unknown effect after a running command forbids automatic replay. by @Haoming9527

Chores

  • Move plugin sources to src/ and build into the existing lib/ paths; lib/ becomes a build product, and published packages still ship lib/ only. by @Haoming9527
  • Complete the strict TypeScript source migration and disable JavaScript compilation, so the plugin sources are all TypeScript/TSX and packaging rejects unimported JavaScript sources. by @Haoming9527
  • Stop installing the Windows Bash npm payload automatically and add status/install/remove commands with Git or managed-copy selection; removal previews by default and only removes receipt-marked, non-linked copies. by @Haoming9527
  • Return PowerShell to the host: remove the PowerShell payload dependency and the automatic executor overlay, and add an upgrade-host-pwsh command that previews by default and documents unknown effects and restart requirements when cancelled. by @Haoming9527

Full Changelog: v0.3.2...v0.4.0-alpha1