@@ -152,7 +152,7 @@ func (m *Manager) installComponent(comp profile.ComponentInfo, forceInstall bool
152152 // Check if component needs install work
153153 needsInstall := forceInstall || ! m .stateManager .IsComponentInstalled (comp ) || m .stateManager .HasInstallChanged (comp , comp .Component .Install )
154154 hasLinks := len (comp .Component .Link ) > 0
155- needsLinking := hasLinks && ( forceInstall || ! m . stateManager . IsComponentInstalled ( comp ) || m . stateManager . HasChangedSince ( comp , comp . Component . Link ))
155+ // Links always need to be processed - they're fast and ensure files are properly linked
156156
157157 // Check if defaults need updating (only on macOS)
158158 hasDefaults := len (comp .Component .Defaults ) > 0 && system .IsMacOS ()
@@ -176,8 +176,8 @@ func (m *Manager) installComponent(comp profile.ComponentInfo, forceInstall bool
176176 }
177177 }
178178
179- // If no install needed and no linking needed and no defaults needed, mark as skipped
180- if ! needsInstall && ! needsLinking && ! needsDefaults {
179+ // If no install needed and no links and no defaults needed, mark as skipped
180+ if ! needsInstall && ! hasLinks && ! needsDefaults {
181181 result .Skipped = true
182182 return result
183183 }
@@ -213,8 +213,8 @@ func (m *Manager) installComponent(comp profile.ComponentInfo, forceInstall bool
213213 }
214214 }
215215
216- // Create links only if linking is needed
217- if needsLinking {
216+ // Create links if component has any links (always run - it's fast and ensures proper linking)
217+ if hasLinks {
218218 linkResults , err := m .linkManager .CreateLinks (comp .Component .Link )
219219 result .LinkResults = linkResults
220220
@@ -292,7 +292,7 @@ func (m *Manager) installComponentWithProgress(comp profile.ComponentInfo, force
292292 // Check if component needs install work
293293 needsInstall := forceInstall || ! m .stateManager .IsComponentInstalled (comp ) || m .stateManager .HasInstallChanged (comp , comp .Component .Install )
294294 hasLinks := len (comp .Component .Link ) > 0
295- needsLinking := hasLinks && ( forceInstall || ! m . stateManager . IsComponentInstalled ( comp ) || m . stateManager . HasChangedSince ( comp , comp . Component . Link ))
295+ // Links always need to be processed - they're fast and ensure files are properly linked
296296
297297 // Check if defaults need updating (only on macOS)
298298 hasDefaults := len (comp .Component .Defaults ) > 0 && system .IsMacOS ()
@@ -316,8 +316,8 @@ func (m *Manager) installComponentWithProgress(comp profile.ComponentInfo, force
316316 }
317317 }
318318
319- // If no install needed and no linking needed and no defaults needed, mark as skipped
320- if ! needsInstall && ! needsLinking && ! needsDefaults {
319+ // If no install needed and no links and no defaults needed, mark as skipped
320+ if ! needsInstall && ! hasLinks && ! needsDefaults {
321321 result .Skipped = true
322322 progress .CompleteSuccess ()
323323 return result
@@ -354,8 +354,8 @@ func (m *Manager) installComponentWithProgress(comp profile.ComponentInfo, force
354354 }
355355 }
356356
357- // Create links only if linking is needed
358- if needsLinking {
357+ // Create links if component has any links (always run - it's fast and ensures proper linking)
358+ if hasLinks {
359359 progress .StartLinking ()
360360 linkResults , err := m .linkManager .CreateLinks (comp .Component .Link )
361361 result .LinkResults = linkResults
0 commit comments