Skip to content

Commit 7fdac91

Browse files
wesmclaude
andcommitted
Simplify TUI selection: always follow job by ID
Removed the 20+ batch threshold - always maintain selection on the same job regardless of how many jobs are added. Only fall back to clamping when the selected job is removed from the list. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 727bc6f commit 7fdac91

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

cmd/roborev/tui.go

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -448,38 +448,31 @@ func (m tuiModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
448448
return m, tea.Batch(m.tick(), m.fetchJobs(), m.fetchStatus())
449449

450450
case tuiJobsMsg:
451-
oldLen := len(m.jobs)
452451
m.jobs = msg
453452

454453
if len(m.jobs) == 0 {
455454
m.selectedIdx = 0
456455
m.selectedJobID = 0
457456
} else if m.selectedJobID > 0 {
458457
// Try to find the previously selected job by ID
459-
newIdx := -1
458+
found := false
460459
for i, job := range m.jobs {
461460
if job.ID == m.selectedJobID {
462-
newIdx = i
461+
m.selectedIdx = i
462+
found = true
463463
break
464464
}
465465
}
466466

467-
// If too many new jobs added at once (20+), just keep current index
468-
newJobs := len(m.jobs) - oldLen
469-
if newIdx >= 0 && newJobs < 20 {
470-
m.selectedIdx = newIdx
471-
} else {
472-
// Job not found or large batch - clamp to valid range
467+
if !found {
468+
// Job was removed - clamp index to valid range
473469
m.selectedIdx = max(0, min(len(m.jobs)-1, m.selectedIdx))
474-
}
475-
// Update selectedJobID to match current selection
476-
m.selectedJobID = m.jobs[m.selectedIdx].ID
477-
} else {
478-
// No job was selected yet, just clamp
479-
m.selectedIdx = max(0, min(len(m.jobs)-1, m.selectedIdx))
480-
if len(m.jobs) > 0 {
481470
m.selectedJobID = m.jobs[m.selectedIdx].ID
482471
}
472+
} else {
473+
// No job was selected yet, select first job
474+
m.selectedIdx = 0
475+
m.selectedJobID = m.jobs[0].ID
483476
}
484477

485478
case tuiStatusMsg:

0 commit comments

Comments
 (0)