Opening one project retires another project's imported skills
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 75/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Go
- Estrellas
- 115
- Forks
- 14
- Merge medio
- 9 h 38 min
- PR fusionados (30 d)
- 730
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Agent-Field/CodeAF
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Agent-Field/CodeAF#1489 ·
-
area:chat bug good first issue sev:papercut
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Agent-Field/CodeAF#1470 ·
-
area:chat bug good first issue sev:papercut
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Agent-Field/CodeAF#1469 ·
-
area:chat bug sev:papercut
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Agent-Field/CodeAF#1468 ·
-
area:tests bug hygiene sev:papercut
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Agent-Field/CodeAF#1460 ·
Todos los issues de Agent-Field/CodeAF
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
bazel-contrib/rules_go#4726 · 1 comentario ·
-
area/auto-scaling area/monitoring area/ops-productivity kind/enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Type/Improvement
Dificultad 1/5 1-3 horas Aptitud para principiantes 90/100
OpenNSW/nsw-srilanka#522 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100