Opening one project retires another project's imported skills
还没有人认领这个 Issue。
评估
调研方向
Start in internal/resident/skills.go at ReconcileImportedSkills, especially the scan around lines 655 and 739, then run the provided TestTwoProjectsKeepTheirSkills test in internal/resident. Confirm that skills from both projects remain active while deleting A's folder retires A's fact on an appropriate scan. Also check the skills manual and invalidates metadata for the requested documentation updates.
由索引模型根据 Issue 内容生成。
描述
Found on santos/dev2 at 008363c98 (#1410). It reaches dev when #1410 merges.
What happened
With memory on, project A's imported skill is active after A opens, then is superseded when project B opens using the same home store. B's scan cannot see A's folder but treats its absence from that scan as deletion. A's attachment chip can remain while its next turn silently omits the skill.
Replication
Deterministic (no model). Save this test as internal/resident/two_project_skill_test.go and run go test ./internal/resident -run TestTwoProjectsKeepTheirSkills -count=1:
package resident
import (
"path/filepath"
"testing"
)
func TestTwoProjectsKeepTheirSkills(t *testing.T) {
home, a, b := t.TempDir(), t.TempDir(), t.TempDir()
alpha := filepath.Join(a, ".agents", "skills", "alpha")
beta := filepath.Join(b, ".agents", "skills", "beta")
writeImportedSkill(t, alpha, "alpha", "Drafts project A reports")
writeImportedSkill(t, beta, "beta", "Drafts project B reports")
graph := openStore(t)
ReconcileImportedSkills(graph, a, home)
ReconcileImportedSkills(graph, b, home)
if _, ok := importedFactByArtifact(t, graph, alpha); !ok { t.Fatal("project A skill retired") }
}
Today it fails with project A skill retired.
Where
internal/resident/skills.go:655, ReconcileImportedSkills, scans one project; at :739 it supersedes every imported active fact missing from that scan.
The fix
Reconcile only facts owned by the scanned project and shared home. Retire another project's fact only after checking its own artifact has actually disappeared.
Acceptance
- e2e: two
codeaf chatwindows sharing one home retain both projects'/skillentries after either launches. - Unit: the inlined test passes; deleting A's folder still retires A's fact on an appropriate scan.
- Update the skills manual and state the former cross-project retirement in
invalidates.
- 主要语言
- Go
- 星标
- 115
- 派生
- 14
- 平均合并
- 9 小时 38 分钟
- 30 天内合并 PR
- 730
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Agent-Field/CodeAF 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
Agent-Field/CodeAF#1489 ·
-
area:chat bug good first issue sev:papercut
难度 2/5 1-3 小时 新手友好度 78/100
Agent-Field/CodeAF#1470 ·
-
area:chat bug good first issue sev:papercut
难度 2/5 1-3 小时 新手友好度 85/100
Agent-Field/CodeAF#1469 ·
-
area:chat bug sev:papercut
难度 2/5 1-3 小时 新手友好度 88/100
Agent-Field/CodeAF#1468 ·
-
area:tests bug hygiene sev:papercut
难度 2/5 1-3 小时 新手友好度 84/100
Agent-Field/CodeAF#1460 ·
查看 Agent-Field/CodeAF 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
bazel-contrib/rules_go#4726 · 1 条评论 ·
-
area/auto-scaling area/monitoring area/ops-productivity kind/enhancement
难度 2/5 1-3 小时 新手友好度 74/100
-
难度 2/5 1-3 小时 新手友好度 78/100
-
Type/Improvement
难度 1/5 1-3 小时 新手友好度 90/100
OpenNSW/nsw-srilanka#522 ·
-
难度 2/5 1-3 小时 新手友好度 92/100