保持共享库存 v2 与旧版可读普通日志,从真实入口派生启停;隔离扩展日志并保护恢复时的合法后续写入。修复 Windows 库存/日志原子替换及目标锁的短时共享冲突,不删除原数据、不抢占活锁、不重放事务。 补充安全探针诊断与仅公共下载内容的 CI 缓存,Profile 和安装状态仍逐次隔离。准备 CLI 0.3.0 / DSH 0.6.0,npm 发布另行执行。 最终提交的 CLI 三平台、DSH 14 项矩阵及 12 份启停场景摘要均通过。Windows 新 RC 依赖准备仍接近限额,作为 CI 准备稳定性风险保留。 Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
5.8 KiB
Changelog
All notable CLI behavior changes are documented in this file.
0.3.0
Changed
- Retain strict inventory v2 and derive activation from trusted entry files, without a second persisted activation state. Preserve normal published CLI 0.2.0 interoperability.
- Preserve disabled installations across namespace synchronization and doctor reconciliation.
CLI upgrade refuses disabled targets, including with
--force; Suite operations cannot adopt disabled positions. This release does not add CLI enable/disable commands. - Supply the compatible local installation core for DSH
0.6.0, including entry-only enable/disable and recovery. The DSH plugin bundles this core and does not invoke CLI commands.
Upgrade and rollback
- No coordinated CLI upgrade is required for shared inventory. Historical explicit force install/upgrade/sync may overwrite disabled entries; explicit remove may delete them. New readers must reflect the resulting files; default paths must not unintentionally enable.
- Unpublished v3 inventories require validated, locked conversion with original-byte backup. Compatibility implementation and real old-package acceptance are in progress; publication remains blocked until they pass.
- Candidate versions are not a publication claim. Final package integrity, clean installation and migration acceptance must be recorded separately for the published packages.
0.2.0
Added
- Add Skill Suite installation, checking, upgrade planning/execution and removal with exact member versions, shared ownership and local-change protection. Suite commands require a Registry implementing the Suite API; this release does not add that API to an existing server.
- Add OAuth Device Flow to
skillhub loginwhen no API token is supplied, including browser launch,--no-open, bounded polling and non-secret JSON progress. - Add
pi,dshandzcodeagent profiles and their user/project directory detection. - Preserve authored
.skillhub/examples.jsonwith the skill package through publication, installation, synchronization and upgrades. Invalid example declarations remain ordinary files; only installer-owned.skillhub/metadata.jsonis excluded from directory publication.
Changed
- Store installed versions per location in inventory schema v2. User and project copies can have different versions; updates and removals preserve unselected locations and Suite owners.
- Reading v1 inventory does not migrate it. Before the first successful v2 write, preserve a
byte-verified
inventory.v1.<sha256>.backup.jsonalongside the inventory. - Upgrade all CLI clients sharing the inventory to
0.2.0before using DSH plugin0.4.0. Old CLI/new inventory mixed writes are unsupported. Inventory backup alone is not a rollback of skill files, metadata or operation journals changed after migration. - Provide the shared native installation core used by the DSH plugin, with precise target, confirmation, transaction recovery and local-change protection.
Fixed
- Retain Registry URL prefixes when following application-relative download URLs, including install and namespace synchronization.
- Preserve numeric-looking version strings and reject repeated or conflicting version options.
- Preserve authored
.skillhubfiles in fingerprints and packages instead of excluding the whole directory; normalize ZIP directory separators consistently.
Notes retained from 0.1.12 and earlier
Added
- Add the user-level
astudioagent profile, displayed as AStudio, with automatic detection of~/.acode/skillson Linux, macOS, and Windows. - Add repeatable
sync pull --skill <slug>selection for non-interactive and JSON workflows, with interactive multi-select in a TTY. - Add
skillhub upgrade <coordinate...>for bounded, explicit upgrades of already-installed Skills, including side-effect-free--check, structured--json, local-change protection, and target filters.
Fixed
-
Preserve unknown fields in shared
~/.skillhub/config.jsonandcredentials.jsonfiles, and treat a compatible credentials document without first-partytokensas logged out instead of failing. Login and logout now modify only the first-party registry state. -
Return structured JSON from
help --jsonand topic help, report unknown help topics as usage errors, and support--version/-valongside the existingversioncommand. -
Report successful publish and sync push requests as submissions, preserving the registry's raw
SCANNING,UPLOADED,PENDING_REVIEW, orPUBLISHEDstatus without implying final publication. -
Require an explicit non-
globalnamespace for every sync action.sync pull --checkremains a whole-namespace read-only check; mutating pulls now affect only explicitly selected skills. -
Prevent
--forcefrom overwriting an unmanaged or different-source Skill at the same target path. Source ownership is the fullregistry + namespace + slugidentity. -
Reject registry downgrades and partial-target updates that the shared inventory version cannot represent safely.
-
Exclude installer-owned
.skillhub/state when publishing a local Skill directory. -
Resolve
namespace/slug,@namespace/slug, andnamespace--slugcoordinates against their declared namespace instead of silently falling back toglobal. -
Reject a namespaced coordinate combined with a conflicting
--namespacevalue; a matching value remains valid. -
Limit local removal with a namespaced coordinate or explicit
--namespaceto the matching namespace, preventing collateral deletion of same-slug installations in other namespaces. Bare-slug removal retains its existing cross-namespace behavior for compatibility. -
Preserve public registry
msgandrequestIdfields for unsuccessful responses. HTTP 403 without a public message now reports the neutralaccess deniedfallback instead of assuming the token lacks scope.