Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[Bug] Local bundle install can advance records without updating existing components

未关闭
#4,434 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
cli, tooling

调研方向

从处理 offline 命令的 bundle 安装路径开始,使用现有的 workflow、扩展和 preset 重现更新。检查 .specify/bundle-records.json 以及 primitive manifest 或 registry 的写入方式;完成的标准是:版本不匹配的组件在推进 record 之前完成更新,失败时保留之前一致的 record,并对共享 registry 的写入进行串行化。

由索引模型根据 Issue 内容生成。

描述

bug-assess bug-fix severity-medium triage-must-have
Spec Kit version

Reproduced with specify 1.0.4 on Windows.

Reproduction
  1. Install a bundle version whose workflow, two extensions, and preset are already present in an initialized project.
  2. Point a clean local release directory at a newer version of the same bundle and components.
  3. Run:
specify bundle install C:\path\to\new-release\bundle.yml --offline --integration codex

The command reports success, for example:

Installed 'program-kit' (0 added, 4 already present).

It advances .specify/bundle-records.json and its contributed-component versions to the new bundle version, but the installed workflow/registry, extension manifests, and preset/registry can remain at the old version. A subsequent component tool can therefore appear current while executing old code.

When components were installed individually before the bundle, the successful local bundle install can instead create a record without the expected contributed-component entries because every primitive is classified as already present.

Expected behavior

Bundle installation/update should be transactional across its record and primitive installations:

  • update every component to the resolved version before advancing the bundle record;
  • validate installed manifests and registries against the resolved bundle before returning success;
  • retain the previous coherent record or fail if a primitive update fails; and
  • serialize writes when multiple extensions share registry/configuration files.

At minimum, an existing component with a different version must not be treated as satisfied solely because its ID is present.

Impact

The project records a coherent new bundle version while continuing to execute old extension code. In the observed consumer, managed synchronization misleadingly reported all files unchanged until each workflow, extension, and preset was explicitly reinstalled in sequence.

主要语言
Python
星标
138k
派生
12.4k
平均合并
3 天 4 小时
30 天内合并 PR
154

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

github/spec-kit 的其他 Issue

查看 github/spec-kit 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。