Repository navigation
Releases: Ck-epsilon/Aura
Release list
aura-basetools 1.0.4
aura-basetools 1.0.4
DSH apply contract修复版。
- 修复
applied[].note、convertbom、多目标aborted与rebased的 DSH output schema。 - DSH apply 支持纯
targets批量调用,并拒绝file_path+targets双形状。 - CLI/MCP/DSH 共用同一套 apply op 推断。
- 单目标 DSH
retry接入共享重定位引擎并返回rebased。 - 新增 29 条 apply contract 接口回归。
npm: aura-basetools@1.0.4 / aura-basetools-dsh@1.0.4
aura-basetools 1.0.2
Writes may only replace lines that were actually delivered to the caller.
PATCH_UNSEEN_REGION: a whole-file write or whole-region replacement that touches lines never delivered (probe/map/digest reads, or afullcut at the content budget) is refused with zero write and the missing range named.old/anchor/handle/ full-rangeexpectare content proof;allow_unobserved: truestays the explicit blind-write escape (receipt saysunverified_region).- Entity
replace-bodyfollows the same rule: a body clipped by the budget records zero delivered lines. CONVERT_FROM_REQUIRED: convert no longer guesses a non-UTF-8, non-BOM source encoding (single-byte probes can be wrong and still report high confidence).- Observation stores (memory and on-disk) now record delivered ranges per version; same-version re-reads keep the union.
- Gate: 57 suites, split package 75/75, src<->dist 34 files byte-identical, entity-apply 63/63, DSH load 99/99.
aura-basetools 1.0.1
1.0.1
- Line-number writes require
expect:apply op=patchwithlines/start_line+end_line, single hunk or batch. Missing =>PATCH_LINES_NEED_EXPECT, nothing written.dry_runis exempt. anchoris a whole-line address: a fragment anchor is refused (PATCH_ANCHOR_FRAGMENT); useoldfor an in-line change.- Multi-target flat elements are expanded through the same
flatHunkpath; they are no longer silently dropped. line(singular) remains a handle-relative key; alone it still reportsPATCH_NO_ADDRESS.
Gate: release-check exit 0 (57 suites + split 75/75 + src↔dist 33 files); entity-apply 51/51.
npm: aura-basetools@1.0.1, aura-basetools-dsh@1.0.1.
aura-basetools 1.0.0
aura-basetools 1.0.0
- npm:
aura-basetools@1.0.0,aura-basetools-dsh@1.0.0 - Public surface:
aura_basetools_read+aura_basetools_apply(MCP/DSH) - read: text views, entity (definition + references + evidence), repository grep, image metadata/content
- apply: replace-body/rename + patch/write/convert/tx; evidence-guarded, atomic, read-back verified
- tests: interface/integration/system only; unit layer archived; 57-suite gate green
- source: monorepo
aura-basetools/
aura-basetools v0.23.0
0.23.0:结构地址 / 结构句柄 / 双重编码修复 / convert 全面
- 结构地址(
edit的structure字段):symbol:<名字>/section:<标题>/key:<点号路径>。
按结构定位而不是坐标:行号漂移、整段正文被外部改写后仍指得到;歧义/找不到 ⇒
PATCH_STRUCTURE_AMBIGUOUS/PATCH_STRUCTURE_NOT_FOUND,零写入。符号解析复用resolveTarget
(支持function:foo、Outer/Inner、#n),节/键走doc-structure的索引。 - 结构句柄:
read --structure-handle在窗口恰好覆盖一个符号时发s<id><fp>:symbol=<name>;
解析时按符号重定位并比对指纹(内容变了照常改,因为地址是路径而不是字节)。
与行号句柄同族:身份标签不符 ⇒PATCH_HANDLE_IDENTITY_MISMATCH。 - 双重编码检测/修复:
diagnose报doubleEncoding;convert --repair-double-encoding还原
“UTF-8 字节被当 Latin-1/GBK 又存了一次”的可逆损坏;锟斤拷这类不可逆的明确拒绝。 - convert 上 MCP 与 DSH 面:MCP 新增
aura_basetools_convert(全编码);DSH 新增同名工具,
受宿主writeText只能写 UTF-8 的契约限制,目标只支持 utf-8(其余走 CLI)。 - 工具数:MCP 5(read/edit/write/convert/tx);DSH 4(read/edit/write/convert)。
- 判据:
structure-test16;encoding-test61;public-surface/capabilities随工具面更新;
全量闸 exit 0。
aura-basetools v0.21.0
0.21.0:多编码 / 文档结构 / probe
- 非 UTF-8 读写:自动探测 UTF-8(含 BOM)/ UTF-16LE/BE / GB18030(GBK,含补充平面 4 字节)/
Shift_JIS / EUC-KR / Big5 / Windows-1252;写回沿用读时那次探测的编码,未改动的行逐字节保留;
不可逆或猜不准时拒绝写(ENCODING_NOT_ROUNDTRIP_SAFE/ENCODING_AMBIGUOUS),
目标编码表示不了的字符 ⇒ENCODING_UNREPRESENTABLE,零写入。 - 逐调用
encoding(CLI--encoding/ MCPencoding)+ 文件级记忆:显式指定过一次后记住,
文件被外部改动(大小/mtime 变化)则记忆自动失效、回到探测。 - 文档 / 配置结构:
map对.md/.markdown/.mdx(ATX + setext;多行段落、YAML front matter、
围栏代码块正确消歧)、.json/.jsonc/.json5(键路径含a[0].b;无引号键 / 单引号 / 注释 / 尾逗号)、
.yaml/.yml、.toml给出行号区间目录;digest对文档返回同一张目录。 probe模式:行数/字节/行尾/编码/语言/文档类型/结构规模,一行摘要、不发正文;
支持targets批量;auto不会自动选它;不写“已交付”账本(probe 之后full仍给正文)。- 参数安全:MCP 与 DSH 两个面的编辑说明都改为“单处修改用平铺形式、
hunks只用于多处”,
降低长嵌套 JSON 触发MALFORMED_RESPONSE的概率。根因在 provider 的流式解析(工具看不到那段字节),
要归零需宿主开启 strict 模式——aura basetools doctor会打印配方与转换器路径。 - 判据:encoding 34 条、doc-map 45 条、probe 21 条;全量闸
node build/release-check.mjsexit 0。 - 已发布:npm
aura-basetools@0.21.0/aura-basetools-dsh@0.21.0(registry.npmjs.org);
GitHub Releaseaura-basetools-v0.21.0(monorepoCk-epsilon/Aura,源码提交2c28beb)。
aura-basetools v0.20.0
aura-basetools v0.20.0 — MCP instructions / 反向提示
中文
0.20.0 加 MCP 标准的服务器侧提示位,并清理客户端旧工具名:
- MCP
initialize.instructions明确请求客户端优先aura_basetools_*,跨调用改动用aura_basetools_tx。 - 客户端是否采用
instructions由客户端决定;它不强制覆盖内置 Read/Edit/Write。 - 清理 DSH/Codex/ZCode/Hermes 的
aura_basetools_undo/transactions旧名,改为tx。 - 修复 Windows 观测缓存并发丢失:
observations.jsonrename 遇 EPERM/EBUSY 重试,6 并发读不再丢条目。 - 本地 90 套件 exit 0;Windows / Ubuntu / macOS 15 / macOS 26 full-gate 四格全绿。
English
0.20.0 adds the standard MCP server-side hint and removes stale client tool names:
initialize.instructionsasks the client to preferaura_basetools_*and to useaura_basetools_txfor multi-call changes.- Whether a client honors
instructionsis up to that client; it does not override built-in Read/Edit/Write. - DSH/Codex/ZCode/Hermes instructions now use
txinstead of the removedundo/transactions. - Fixed lost concurrent observations on Windows: retry
observations.jsonrename on EPERM/EBUSY, so six concurrent reads no longer drop an entry. - Local 90 suites exit 0; full gate green on Windows / Ubuntu / macOS 15 / macOS 26.
npm i -g aura-basetools@0.20.0aura-basetools v0.19.0
aura-basetools v0.19.0 — Windows/Ubuntu runner parity / 三平台全量闸
中文
0.19.0 把 full gate 从“macOS 绿、Windows/Ubuntu 红”修到 Windows / Ubuntu / macOS 15 / macOS 26 四格全绿。
.gitattributes固定源码与夹具 LF(唯一例外:故意 CRLF 的golden-target-crlf-bom.mjs),
消除 Windows checkout 把字节级黄金集/冻结夹具整体改成 CRLF 的假红。- 源码探针先归一 CRLF;
encoding-refusal同时认 8.3 短路径与 realpath 长路径。 observation-store-identity在大小写敏感文件系统上跳过“同一文件两种写法”分支。atomic-publish在 POSIX 不再要求 inode 不复用(CAS 靠含 ctime 的版本令牌)。index-cache的地板标定上界封顶在绝对上界 100 ms,慢 runner 不再把门槛抬高。- 本地 90 套件 exit 0;GitHub Actions run 40082103753 四格全绿。
English
0.19.0 takes the full gate from "macOS green, Windows/Ubuntu red" to
green on Windows, Ubuntu, macOS 15 and macOS 26.
.gitattributespins source and fixtures to LF (except the intentionally CRLF
golden-target-crlf-bom.mjs), so a Windows checkout no longer turns byte-level goldens
and the frozen fixture into CRLF false reds.- Source probes normalize CRLF;
encoding-refusalaccepts both 8.3 short paths and realpath long paths. observation-store-identityskips the "two spellings of one file" branch on case-sensitive filesystems.atomic-publishno longer requires inode non-reuse on POSIX (CAS relies on the ctime-bearing version token).index-cachecaps the floor-calibrated bound at the absolute 100 ms bound, so a slow runner cannot raise the gate.- Local 90 suites exit 0; GitHub Actions run 40082103753 is green in all four jobs.
npm i -g aura-basetools@0.19.0aura-basetools v0.18.0
aura-basetools v0.18.0 — concurrent merge / 并发合并
中文
0.18.0 让跨调用事务在提交时合并外部并发改动:
tx commit遇到事务写过的文件被外部改过时,用三方合并处理非重叠改动。- 合并基于行级 diff +
git merge-file;不在同一区域的双方改动都会保留。 - 同一区域冲突 / 非 UTF-8 / Git 不可用 ⇒
TX_CONFLICT,一个字节都不写。 - 合并后
verify失败 ⇒ 回滚到“外部当前内容”,不会把外部改动一起抹掉。 tx-session24 项(CLI / MCP / 并发合并);本地全量闸 90 套件 exit 0;macOS 15/26 绿。
English
0.18.0 makes cross-call transactions merge concurrent external edits at commit:
tx committhree-way-merges non-overlapping external changes to files the transaction wrote.- Line-level diff +
git merge-file; both sides' disjoint edits are kept. - Overlap / non-UTF-8 / Git unavailable ⇒
TX_CONFLICTwith zero bytes written. - If
verifyfails after a merge, rollback restores the external current content, not the old base. tx-session24 checks (CLI / MCP / merge); local full gate 90 suites exit 0; macOS 15/26 green.
npm i -g aura-basetools@0.18.0aura-basetools v0.17.0
aura-basetools v0.17.0 — MCP transactions / MCP 事务面
中文
0.17.0 把 0.16.0 的跨调用事务接到 MCP:
- 新增
aura_basetools_tx:action=begin/commit/rollback/status。 aura_basetools_edit/aura_basetools_write新增transaction:把本次修改追加到tx begin返回的事务。- commit 前 afterVersion 校验(
TX_STALE)、可选verify、失败整事务回滚;与 CLI 共用同一份transaction-store。 tx-session增 MCP 段:18/18。- 本地全量闸 90 套件 exit 0;macOS 15/26 full-gate job 绿。
English
0.17.0 exposes the 0.16.0 cross-call transaction over MCP:
- New
aura_basetools_tx:action=begin/commit/rollback/status. aura_basetools_edit/aura_basetools_writeaccepttransaction: append this change to the id returned bytx begin.- Commit checks afterVersion (
TX_STALE), optionalverify, whole-transaction rollback on failure; sametransaction-storeas the CLI. tx-sessiongains an MCP section: 18/18.- Local full gate: 90 suites, exit 0; macOS 15/26 full-gate jobs green.
npm i -g aura-basetools@0.17.0