@@ -34,6 +34,8 @@ const (
3434 StatusSuccess
3535 // StatusFailed indicates the command failed.
3636 StatusFailed
37+ // StatusSkipped indicates the command was skipped.
38+ StatusSkipped
3739)
3840
3941const (
@@ -188,6 +190,7 @@ type Styles struct {
188190 Pending lipgloss.Style
189191 Running lipgloss.Style
190192 Success lipgloss.Style
193+ Skipped lipgloss.Style
191194 Failed lipgloss.Style
192195 Output lipgloss.Style
193196 Error lipgloss.Style
@@ -211,6 +214,9 @@ func NewStyles() *Styles {
211214 Bold (true ),
212215 Success : lipgloss .NewStyle ().
213216 Foreground (lipgloss .Color ("10" )),
217+ Skipped : lipgloss .NewStyle ().
218+ Foreground (lipgloss .Color ("14" )).
219+ Italic (true ),
214220 Failed : lipgloss .NewStyle ().
215221 Foreground (lipgloss .Color ("9" )),
216222 Output : lipgloss .NewStyle ().
@@ -396,10 +402,23 @@ func (m *Model) processProgressEvent(event progress.Event) tea.Cmd {
396402
397403 case progress .EventSkipped :
398404 node := m .getOrCreateNode (event .CommandPath , commandName )
399- node .UpdateStatus (StatusPending ) // Keep as pending for skipped commands
405+ node .UpdateStatus (StatusSkipped )
406+
407+ if event .Data .OutputLine != "" {
408+ node .UpdateOutput (event .Data .OutputLine )
409+ }
410+
411+ // Set error message from either stderr output or error message (for skip reasons)
412+ if event .Data .OutputLine != "" {
413+ // Prefer stderr output line if available
414+ node .UpdateError (event .Data .OutputLine )
415+ } else if event .Data .Error != nil {
416+ // Fall back to error message if no stderr output
417+ node .UpdateError (event .Data .Error .Error ())
418+ }
400419 }
401420
402- // Trigger immediate UI update on failure
421+ // Trigger immediate UI update
403422 return tea .Tick (teaTickInterval , func (_ time.Time ) tea.Msg {
404423 return tea.WindowSizeMsg {Width : m .width , Height : m .height }
405424 })
@@ -586,7 +605,7 @@ func (m *Model) updateNodeErrorsFromResults(basePath []string, results runbatch.
586605 pathKey := pathToString (commandPath )
587606 if node , exists := m .nodeMap [pathKey ]; exists {
588607 // Update error message if this result has a specific error
589- if result .Error != nil && result .Status == runbatch .ResultStatusError {
608+ if result .Error != nil && ( result .Status == runbatch .ResultStatusError ) {
590609 // Only update if we have a more specific error than the generic one
591610 if ! errors .Is (result .Error , runbatch .ErrResultChildrenHasError ) {
592611 node .UpdateError (result .Error .Error ())
0 commit comments