Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Opening one project retires another project's imported skills

Đang mở
#1,456 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
75/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
go
Lĩnh vực
cli, tooling

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area:session area:tools bug sev:serious

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 chat windows sharing one home retain both projects' /skill entries 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.
Ngôn ngữ chính
Go
Star
115
Fork
14
Merge trung bình
9 giờ 38 phút
Pull request đã merge (30 ngày)
730

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Agent-Field/CodeAF

Tất cả issue của Agent-Field/CodeAF

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.