on main help sign in
fix(ui): don't show disabled skills
7a6149dBruno Krugel
internal/ui/model/skills.go+15
@@ -58,6 +58,15 @@ func (m *UI) skillStatusItems() []skillStatusItem {
58 var items []skillStatusItem
58 var items []skillStatusItem
59 stateNames := make(map[string]struct{}, len(m.skillStates))
59 stateNames := make(map[string]struct{}, len(m.skillStates))
60
60
61+ disabledSet := make(map[string]bool)
62+ if m.com != nil && m.com.Workspace != nil {
63+ if cfg := m.com.Config(); cfg != nil {
64+ for _, name := range cfg.Options.DisabledSkills {
65+ disabledSet[name] = true
66+ }
67+ }
68+ }
69+
61 states := slices.Clone(m.skillStates)
70 states := slices.Clone(m.skillStates)
62 slices.SortStableFunc(states, func(a, b *skills.SkillState) int {
71 slices.SortStableFunc(states, func(a, b *skills.SkillState) int {
63 return strings.Compare(a.Path, b.Path)
72 return strings.Compare(a.Path, b.Path)
@@ -67,6 +76,9 @@ func (m *UI) skillStatusItems() []skillStatusItem {
67 if name == "" {
76 if name == "" {
68 name = filepath.Base(filepath.Dir(state.Path))
77 name = filepath.Base(filepath.Dir(state.Path))
69 }
78 }
79+ if disabledSet[name] {
80+ continue
81+ }
70 stateNames[name] = struct{}{}
82 stateNames[name] = struct{}{}
71 icon := t.Resource.OnlineIcon.String()
83 icon := t.Resource.OnlineIcon.String()
72 if state.State == skills.StateError {
84 if state.State == skills.StateError {
@@ -87,6 +99,9 @@ func (m *UI) skillStatusItems() []skillStatusItem {
87 if _, ok := stateNames[skill.Name]; ok {
99 if _, ok := stateNames[skill.Name]; ok {
88 continue
100 continue
89 }
101 }
102+ if disabledSet[skill.Name] {
103+ continue
104+ }
90 items = append(items, skillStatusItem{
105 items = append(items, skillStatusItem{
91 icon: t.Resource.OnlineIcon.String(),
106 icon: t.Resource.OnlineIcon.String(),
92 name: skill.Name,
107 name: skill.Name,