Skip to content

Releases: KunoLu/640-skills

v2.1.0-rc.1

v2.1.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@KunoLu KunoLu released this 17 Oct 09:16
ba2e0cd

Release identity / 发布身份

  • Annotated tag / 标注标签: v2.1.0-rc.1
  • Commit / 提交: ba2e0cd7fa73e3ac3bd66d199a9d9e100add1718
  • Exact-commit CI / 精确提交 CI: https://github.com/KunoLu/640-skills/actions/runs/39011914305 (validation, push to main, attempt 1, success)
  • Native scope verified / 原生范围核验: Linux 2349 distinct tests verified across 3 shards, macOS 687, Windows 505 distinct tests verified across 4 shards; ten jobs successful. R1.4 acceptance report (sbtd-runtime/docs/r1.4-acceptance-report.md) maps the R1-applicable §16.1/§16.2 ACs to named tests; Dashboard, JPEG/PDF, HTTP export jobs, on-disk snapshot retention and CORS are deferred to R2. Real host smoke: omp@18.11.1 pass, codex@0.163.0 unsupported (Cloudflare 403 before any tool call, zero events). / Linux 3 个分片共核验 2349 个不重复测试,macOS 687,Windows 4 个分片共核验 505 个不重复测试;十个 job 全部成功。R1.4 验收报告(sbtd-runtime/docs/r1.4-acceptance-report.md)把 R1 适用的 §16.1/§16.2 AC 映射到具体测试名;Dashboard、JPEG/PDF、HTTP 导出作业、落盘快照保留与 CORS 推迟到 R2。真实宿主 smoke:omp@18.11.1 通过,codex@0.163.0 为 unsupported(任何工具调用前遇 Cloudflare 403,事件数为 0)。

English

Added

  • Optional sbtd-runtime/ R1.0 contracts: data dictionary, event JSON Schema (1.0), metric catalog, loopback OpenAPI draft, capability pins, and golden dataset checks for nouns, denominators and dedup. Metrics outside the core set stay unsupported and are never returned as 0; missing token/cost values stay visible, not 0. /api/v1/exports* is annotated v2.1.0-rc.2 and non-blocking for rc.1.
  • R1.1 runtime facade (sbtd-runtime/facade.py) wrapping TaskStore, TaskRouter, HandoffStore and DeveloperStore, with explicit project registration in SBTD_RUNTIME_HOME/registry.json. With observation off, project-file side effects match the old helpers and no audit store is written; unregistered roots, siblings, symlink roots and fully read-only calls are refused.
  • R1.2a local event store (sbtd-runtime/event_store.py): one SQLite audit.db (WAL) plus durable spool/, written only after a confirmed open with observation enabled. Same source key with same content only confirms; different content conflicts without overwriting. Damaged databases are refused, never replaced with an empty store.
  • R1.2b host source adapters: omp_adapter.py (omp session JSONL) and codex_adapter.py (codex exec --json, occurred_at kept null), a scalar-only 8-key extension contract with a documented drop policy, and structured ingest receipts that are not capability proofs. Capability matrix records omp@18.11.1 smoke as pass and codex@0.163.0 as unsupported.
  • R1.2c history import (sbtd-runtime/history_import.py): caller-named scan plans with a separate explicit approval; task.md status tables and verification envelopes become events without fabricating times (unknown → null occurred_at), done → planned recorded as task.reopened, task.md never rewritten, and a pass recorded only when the validator accepts.
  • R1.3 statistics libraries: stats_query.py (strict QueryScope validation, half-open [from, to) windows, timezone/DST-consistent), report_snapshot.py (immutable snapshots shared by query, timeseries, dataset pages and CSV), csv_export.py (fixed column set, UTF-8 BOM, formula-injection escaping, null cells empty) and history_read.py. No HTTP server, Dashboard, JPEG or PDF.
  • R1.4 acceptance closeout: acceptance scenarios pinned to executable tests (sbtd-runtime/tests/test_r1_acceptance.py, CI wrapper tests/test_sbtd_runtime_r1_acceptance.py) locking version pins, honest rejection of unknown future schema versions and the absence of remote business-control operations; sbtd-runtime/docs/install-and-use.md and sbtd-runtime/docs/r1.4-acceptance-report.md.
  • In-repo bilingual release/annotated-tag notes template at docs/release-notes-template.md, linked from the README Reference table.

Changed

  • CSV export appends reasoning_tokens as the last fixed column (a subset of output_tokens, never added to it; empty when not reported, never 0); existing column order is unchanged and export_schema_version becomes 1.1.
  • ADR 0001 Q6 host table now states a pass condition: a pinned host that yields no structured Skill/Tool call in real smoke is marked unsupported alone; the other host and the metric category stay unchanged.
  • The Runtime API / Local Dashboard PRD is revised to v0.2, with event extensions made scalar-only; ADR 0001 records the R1.0 runtime decisions.

Fixed

  • Event-store extension names are rejected when they match a secret term after case-insensitive -, _ and camelCase normalization (github_token, x-api-key, authToken, client_secret); token_count, input_tokens and tokens stay. Already stored events are not rewritten.
  • Extension values are scalar-only: nested objects and arrays reject the whole event as schema-rejected before the spool write, and cookies/set_cookies are rejected.

简体中文

新增

  • 可选的 sbtd-runtime/ R1.0 契约:数据字典、事件 JSON Schema(1.0)、指标目录、loopback OpenAPI 草案、capability pin,以及检查名词、分母和去重的 golden dataset。核心集合之外的指标保持 unsupported,绝不返回 0;缺失的 token/费用可见且不填 0。/api/v1/exports* 标为 v2.1.0-rc.2,不阻塞 rc.1。
  • R1.1 runtime facade(sbtd-runtime/facade.py)包装 TaskStore、TaskRouter、HandoffStore 与 DeveloperStore,并把项目显式注册到 SBTD_RUNTIME_HOME/registry.json。观察关闭时项目文件副作用与旧 helper 一致且不写审计库;未注册根、相邻目录、symlink 根和完全只读调用被拒绝。
  • R1.2a 本地事件库(sbtd-runtime/event_store.py):一个 SQLite audit.db(WAL)加持久 spool/,仅在观察开启且确认打开后写入。同来源键同内容只确认;内容不同则冲突且不覆盖。损坏的数据库被拒绝,绝不换成空库。
  • R1.2b 宿主来源适配器:omp_adapter.py(omp 会话 JSONL)与 codex_adapter.py(codex exec --json,occurred_at 保持 null)、只含标量且最多 8 键的扩展契约及文档化丢弃策略,以及不等同能力证明的结构化接收回执。capability matrix 记录 omp@18.11.1 smoke 通过、codex@0.163.0 为 unsupported。
  • R1.2c 历史导入(sbtd-runtime/history_import.py):只记录调用方点名的扫描计划,批准是独立显式动作;task.md 状态表与验证 envelope 转为事件且不伪造时间(unknown → null occurred_at),done → planned 记为 task.reopened,task.md 绝不改写,仅在校验器接受时记为通过。
  • R1.3 统计库:stats_query.py(严格校验 QueryScope、半开 [from, to) 窗口、时区/DST 一致)、report_snapshot.py(query、timeseries、dataset 分页与 CSV 共享的不可变快照)、csv_export.py(固定列、UTF-8 BOM、公式注入转义、null 单元格留空)与 history_read.py。无 HTTP 服务、Dashboard、JPEG 或 PDF。
  • R1.4 验收收口:验收场景钉到可执行测试(sbtd-runtime/tests/test_r1_acceptance.py,CI 包装 tests/test_sbtd_runtime_r1_acceptance.py),锁定版本针、如实拒绝未知未来 schema 版本以及无远程业务控制操作;新增 sbtd-runtime/docs/install-and-use.md 与 sbtd-runtime/docs/r1.4-acceptance-report.md。
  • 仓库内双语发布/annotated-tag 说明模板 docs/release-notes-template.md,并在 README 参考表中链接。

变更

  • CSV 导出在固定列末尾追加 reasoning_tokens(output_tokens 的子集,不再相加;未报告时留空,绝不填 0);既有列顺序不变,export_schema_version 变为 1.1。
  • ADR 0001 Q6 宿主表改为通过条件:门禁宿主在真实 smoke 中没有结构化 Skill/Tool 调用时,只将该宿主标为 unsupported;另一宿主与指标类别不变。
  • Runtime API/Local Dashboard PRD 修订为 v0.2,事件扩展改为只含标量;ADR 0001 记录 R1.0 运行时决策。

修复

  • 事件库扩展名经大小写不敏感及 -、_、驼峰规范化后匹配敏感词即拒绝(github_token、x-api-key、authToken、client_secret);token_count、input_tokens 与 tokens 仍保留。已存事件不回写。
  • 扩展值只接受标量:嵌套对象与数组在写入 spool 前以 schema-rejected 整条拒绝,cookies/set_cookies 被拒绝。

Deployment boundary / 部署边界

This is a source prerelease. It does not perform local installation, workflow sync, project migration, live host reload, or backup disposal, and it does not enable observation on any existing host: sbtd-runtime/ is optional and off by default, and no HTTP server, Dashboard, or background collector is started. Enabling it requires explicit project registration and observation opt-in per sbtd-runtime/docs/install-and-use.md; snapshots are in-process only and are not retained on disk.

本版本为源码预发布。不执行本机安装、工作流同步、项目迁移、现有宿主重载或备份销毁,也不在任何现有宿主上开启观察:sbtd-runtime/ 为可选且默认关闭,不启动 HTTP 服务、Dashboard 或后台采集器。启用须按 sbtd-runtime/docs/install-and-use.md 显式注册项目并开启观察;快照仅存在于进程内,不落盘保留。

Full comparison / 完整对比: v2.0.2...v2.1.0-rc.1

v2.0.2

Choose a tag to compare

@KunoLu KunoLu released this 15 Oct 23:12
1d82494

Release identity / 发布身份

  • Annotated tag / 标注标签: v2.0.2
  • Commit / 提交: 1d82494d74f6df9bca7dccef2da409f87091883e
  • Exact-commit CI / 精确提交 CI: https://github.com/KunoLu/640-skills/actions/runs/38758808131 (attempt 2)
  • Native scope verified / 原生范围核验: Linux 2142, macOS 687, Windows 505; ten jobs successful. The first macOS attempt did not acquire a hosted runner; its cancellation is retained, not counted as a test pass.

English

Changed

  • Promote the managed Graft pin from @nanonets/graft@0.21.1 to @nanonets/graft@0.22.0. The npm bin is now dist/bin/graft.js; registry gitHead is absent, so the pin keeps the tarball URL and integrity and no longer stores a git SHA. openai and @anthropic-ai/sdk are bundled but not default-enabled. Managed install still requires explicit confirmation, blocks shell shims, and keeps telemetry off. Old stamps and old MCP bindings are rejected under the new pin and require a managed graph rebuild and redeployment.
  • Keep generated bindings on the package's canonical dist/cli.js. Managed children scrub inherited TRAIL_*, force Graft branding, disable Trail fetch/switch behavior, and validate the newly consumed project .trail tree before startup and each MCP request, rejecting linked or special-file notes instead of reading outside the selected repository. The build-policy digest is updated with its pinned asset.

Fixed

  • Keep both errors visible when releasing an operation-local removal holder fails during an already failing managed directory removal: a retained holder is reported as RetainedObjectError with its retained_refs, chained from the original error; any other release failure is attached as a note to the original error, which still propagates. Release still only uses rmdir on the same empty holder; no recursive deletion is introduced.

简体中文

变更

  • 受管 Graft pin 从 @nanonets/graft@0.21.1 晋升到 @nanonets/graft@0.22.0。npm bin 现为 dist/bin/graft.js;registry gitHead 缺失,因此 pin 只保留 tarball URL 与 integrity,不再保存 git SHA。openai 与 @anthropic-ai/sdk 随包提供但不默认启用。受管安装仍须显式确认,拒绝 shell shim,并保持遥测关闭。旧 stamp 与旧 MCP 绑定在新 pin 下拒绝,须受管重建图并重部署。
  • 生成的绑定继续使用包内 canonical dist/cli.js。受管子进程清除继承的 TRAIL_*、固定 Graft 品牌、禁用 Trail fetch/自动切换,并在启动及每次 MCP 请求前校验新增消费的项目 .trail 树;拒绝链接或特殊文件笔记,避免读取选定仓库之外的内容。构图策略摘要随固定资产同步更新。

修复

  • 受管目录删除已失败时若释放本次操作的删除holder也失败,两个错误均保留可见:holder被保留时以携带 retained_refs 的 RetainedObjectError 报告,并以原始错误为其原因链;其他释放失败仅作为附注附加到原始错误,仍抛出原始错误。释放仍只对同一空holder使用 rmdir,不引入递归删除。

Deployment boundary / 部署边界

Source publication does not perform local installation, workflow sync, project migration, live host reload, or backup disposal. Upgrading existing environments requires the matching managed launcher, pinned CLI, and rebuilt project stamp/graph; preserve recovery originals and confirm each deployment scope.

源码发布不执行本机安装、工作流同步、项目迁移、现有宿主重载或备份销毁。已有环境升级须匹配受管 launcher、固定 CLI 与重建的项目 stamp/图;保留恢复原件,并分别确认部署范围。

Full comparison / 完整对比: v2.0.1...v2.0.2

v2.0.1

Choose a tag to compare

@KunoLu KunoLu released this 14 Oct 15:25
0aec5d3

v2.0.1

变更

  • Windows私有目录ACL改用进程内Win32安全API,不再逐次启动PowerShell;权限证明每次重新获取,保留差分对照、失败关闭及可信单controller父目录边界。
  • Windows四分片、Linux三分片、macOS单job;按原生逐例实测耗时调度,保持类/模块fixture生命周期。权重刷新拒绝歧义、不完整或跨修订证据。
  • 完成覆盖与行为冗余审查,按用户决定保留全部用例,不增加排除规则。

修复

  • 升级恢复按父目录复用空私有holder,减少重复ACL设置;逐文件身份、权限、空目录和内容检查仍保留,不放宽900秒子进程限制。
  • 固定Agent中文Markdown执行报告章节和结果表,Web UI覆盖率评分作为附录,不改写历史报告或冒充新运行。

发布证据

  • 精确main提交:0aec5d3c9493a2010ad2a52b4894ccf7e0869224。
  • 三平台main CI:十job通过,八份原生分片完整互斥且SHA一致。
  • Windows509项、Linux2139项、macOS686项;原生skip事件33/50/20。Windows最慢测试job2分44秒,完整升级/重试/恢复58.094秒;跨runner耗时是观察值,不是固定性能承诺。
  • English changelog / 中文变更日志。

源码发布不执行本机安装、真实项目迁移、宿主接线、workflow sync或备份处置。v2.0.0 tag保持不变。

SBTD Workflow v2.0.0

Choose a tag to compare

@KunoLu KunoLu released this 14 Oct 03:30
8f6c469

SBTD Workflow v2.0.0

正式版累计包含 rc.1—rc.4 与稳定版变更清单;详细历史见 English CHANGELOG。

中文变更日志与英文版逐项对应;初始化、v1迁移、init/reset/upgrade提示词见双语README。

主要能力

  • Codex / OMP 主线,default、lite、strict 三种任务模式;任务文档拥有唯一模式与状态,保留恢复、分支裁决及真实完成历史。
  • 自包含 Onboard Skill,14 个 bundled Skills、19 个 required external Skills;公开 bootstrap 与实际安装/接线分开授权。
  • 固定 Graft 0.21.1:每个有效宿主配置域一条通用 MCP,按实际cwd定位仓库/worktree,保持DNT、路径隔离及失败关闭。
  • 显式升级与迁移链:plan、apply、verify、reconcile、cleanup,以及独立恢复;来源/授权/回执和原件绑定,漂移与未知写入不自动接受。
  • 当前状态调和、精确Skill链接探测授权、旧批次cleanup依赖分层和一次原生升级续接;保留既有计划与版本拒绝边界。

验证与版本

  • 发布提交:8f6c46993e7546b68f949bd52ede806d9b1afa61。
  • 发布提交三平台 validation;候选PR #120。
  • 原生平台报告分别保留用例、skip与必需检查结果;跳过不算通过,CI也不替代实际宿主方法证据。
  • 独立readiness复核、精确候选fresh-clone CLI/Bash smoke及观察问题验证记录均保留。

使用与升级边界

  • 从选定版本安装Onboard后,先查看plan,再明确确认具体安装、升级、接线或项目范围;发布本身不执行本机同步或生产部署。
  • Onboard文档纳入整包upgrade baseline,旧升级计划不能静默授权不同包;本次文档变更不单独改变迁移runtime代码指纹或放宽签名血统。
  • 恢复保证限于有绑定回执的受管数据/配置,不承诺已退役Trellis可写回退。cleanup、恢复成功、任务完成和本次发布均不授权销毁备份。
  • 三模式计量按声明tokenizer和实际日志可复算,不宣称跨任务/模型节省比例或全部常驻仅2k。宿主证据包括自然任务及受控真实场景,不扩大为所有模型可靠性或五个独立自然业务样本。
  • 私有原件、报告、历史失败和必要运行时材料继续保留;正常备份处置仍需发布后14天保留门及独立精确授权。

完整安装、迁移、恢复与授权说明见 README 和 中文入口。

v2.0.0-rc.4

v2.0.0-rc.4 Pre-release
Pre-release

Choose a tag to compare

@KunoLu KunoLu released this 12 Oct 10:58
34767ae

v2.0.0-rc.4

SBTD 2.0 预发布候选;正式版尚未发布。

修复

  • 清理按实际依赖和 vendor 足迹判断历史部署发现输入漂移,不要求用户恢复无关 OMP 配置;工具、profile、目标、保留资产、原件与路径安全仍严格验证。
  • 清理在 vendor 备份之后、实际卸载之前,以及回执发布之前复核证据、保留资产和项目版本。晚期失败保留实测结果,不丢失累计回执。
  • 保留既有 followup 所有权证明和缺失历史签名的错误语义;Windows 集成夹具使用原生私有 ACL 与明确 UTF-8。

新增

  • migration --phase cleanup --upgrade-plan ... --upgrade-receipt ...:一个完整原生 Onboard 替换可承接已完成旧批次的清理,无需新建本机 lineage 签名;旧包仅供读取验证,不执行其代码。
  • 此续接仅限清理,不能授权 followup、部署、未完成迁移或普通迁移恢复。备份和旧证据不删除。

验证

  • PR #117 精确最终 head:Linux 全量 2,129 项、macOS 原生 687 项、Windows 原生 503 项通过;原生 skip 事件分别为48、20、33,保留平台与子场景边界。
  • 本机受影响完整范围254项通过;真实已安装副本 CLI、原生升级与真实 vendor 卸载的隔离 smoke 通过。历史部署报告为契约夹具,不冒充真实宿主验收。
  • 两路独立源码复核发现均已修正。早期失败记录保留。
  • 发布提交与最终 main CI 以 tag 注释和运行链接为准;源码发布不等于本机或四项目已经完成升级。